当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

单片机 C语言程序

更新:03-03 整理:39baobao.com
字体:

[单片机的学习心得谁知道?]实训报告总结~ 高职高专教育培养的是技术应用型人才,学校为了培养我们学生的创新精神和和工程实践能力,提高我们的综合素质,故在底13周带领全校学生进行为期一周的实训,在时间中...+阅读

P1=1<

改为这样就可以了

#include #include typedef unsigned int uint16; typedef unsigned char uint8; #define uchar unsigned char uchar temp; void main() { temp=0xfe; while(1) { uint16 i; uint8 j; //---------------------------- P0=temp; temp=_crol_(temp,1); //P0=0xfe<

单片机C语言编程高手请进

首先,PB0只是一个普通IO,它只能判断高低电平,要是换成C口(AD转换口)倒是可以,另外,PC4也不是PWM口,MEGA48和MEGA8基本上一样,都只有3路PWM。当然,你可以把PB0接一个按键,每按一次,占空比对应变化一个值。给你一个小程序,希望你能用的上: #include #include #define uchar unsigned char #define uint unsigned int #define key1 (PINB&0x01) #define key2 (PINB&0x02) #define beep_on PORTD|=0x02 #define beep_off PORTD&=0xfd #define xtal 8 void beep_three(void); char t=0; void delay_1ms(void) { uint i; for(i=0;i<(xtal*143-2);i++) { NOP(); } } void delay_ms(uint k) { uint i=0; while(i

delay_ms(200); //防止按压按键时间稍长而导致连加 } } } else //if(t>=244) { if(key1==0) {delay_ms(20); if(key1==0) { t=255; OCR2=t; beep_three(); delay_ms(200); } } } } void scan_s2(void) { if(t>4) {if(key2==0); { if(key2==0) { beep_on; delay_ms(100); beep_off; t=t-5; OCR2=t; delay_ms(200); } } } else //if(t==0) { if(key2==0) {delay_ms(20); if(key2==0) { OCR2=0; beep_three(); delay_ms(200); } } } } void beep_three(void) { beep_on; delay_ms(95); beep_off; delay_ms(95); beep_on; delay_ms(95); beep_off; delay_ms(95); beep_on; delay_ms(95); beep_off; } void scan_key(void) { scan_s1(); scan_s2(); } void timer2_init(void) { TCCR2 = 0x00; //停止定时器 ASSR = 0x00; //异步时钟模式 TCNT2 = 0x00; //初始值 TIMSK |= 0x00; //中断允许 TCCR2 = 0x61; //启动定时器 } void init_devices(void) { CLI(); //禁止所有中断 MCUCR = 0x00; MCUCSR = 0x80; //禁止JTAG GICR = 0x00; port_init(); timer2_init(); SEI(); //开全局中断 } void main(void) { init_devices(); while(1) { scan_key(); } }

单片机C语言

#include

这是调用库函数的命令,头文件intrins.h是一个做移位的一个头文件

你用记事本打开这个文件就能看到其具体的代码含义,下面转过来部分内容进行说明:

内部函数 描述

_crol_ 字符循环左移

_cror_ 字符循环右移

_irol_ 整数循环左移

_iror_ 整数循环右移

_lrol_ 长整数循环左移

_lror_ 长整数循环右移

_nop_ 空操作8051 NOP 指令

_testbit_ 测试并清零位8051 JBC 指令函数名: _crol_,_irol_,_lrol_

原 型: unsigned char _crol_(unsigned char val,unsigned char n);

unsigned int _irol_(unsigned int val,unsigned char n);

unsigned int _lrol_(unsigned int val,unsigned char n);

举例:

_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回

_testbit_: 相当于JBC bitvar测试该位变量并跳转同时清除。

_chkfloat_: 测试并返回源点数状态。

就是汇编中的子函数。

_crol_,_cror_:如果二进制数为01010101 那么_crol_(1) 左移1位后将高位补低位。

结果10101010。

功 能:_crol_,_irol_,_lrol_以位形式将val 左移n 位,该函数与8051“RLA”指令相关,上面几个函数不同于参数类型。

详细解释及实例说明,你可以看看这篇文章,内容太长这里发不下:

《头文件INTRINS.H的作用》:

本文地址:https://www.39baobao.com/show/29_47452.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

单片机的毕业论文怎么写一、毕业设计题目及要求 (2个) 1、基于单片机控制的电动机Y-△启动的设计 要求:1)控制器为单片机,电动机为三相异步电动机;2)启动时间为3秒;3)由按键设置电动机Y-△运行、停止。 2、...

单片机实验分别用汇编语言和单片机c语言编写制作一电子秒表: 程序源代码 主程序: push ds ;保存数据段 mov ax,0000 mov ds,ax ;数据段清零 mov ax,offset irq7 ;取中断程序入口地址 add ax,2000 ;加装时IP=2000地址 mov si,...

怎么用MS51单片机语言编写跑马灯程序要用单片机语言不是汇编单片机语言??汇编的:;p1口八个灯作跑马灯。 org 0000h ajmp start org 0030hstart: mov a,#0ffh ; clr c ; mov r2,#08h ;循环八次。 loop: rlc a ;带进位左移。 mov p2,a ;输出到P...

单片机实时收发数据看你的图片,你电脑上的下载线用是USB转串口线吧,就是说你电脑上是没有串口的。 那问题是,你在别人电脑上测试能通,那别人的电脑上有串口吗,还是也用的USB转串口线?是有区别的。 用...

如何设计单片机常用通信协议论文常用的通信协议 一般包括 开头检验 + 地址 +功能码+数据 + 校验 下面一一介绍,介绍步骤根据单片机收到数据后的 判断流程进行; 1. 校验。接收到一帧数据之后,首先要根据校验的...

单片机汇编语言编程这个是用P1口接发光管的汇编程序 ORG 0000H INITIA: LJMP 0200H ORG 0800H DELAY: MOV R7,#10 DEL1: MOV R6,#125 DEL2: MOV R5,#200 DJNZ R5,$ DJNZ R6,DEL2 DJNZ R7,DEL1...

关于51单片机汇编语言程序ORG 0000H LJMP MAIN ORG 000BH LCALL TIMER0 ORG 1000H MAIN: LCALL INIT WAIT : CJNE R0,#10,WAIT MOV R0,#0 RRC A MOV P1,A SJMP WAIT INIT MOV TMOD,#01H MOV TH0,#3CH...

单片机计数程序汇编语言ORG 0H AJMP START ORG 100H START:MOV SP,#60H MOV P1,#0FFH MOV R5,#0 LOOP:JNB P3.1,LOOP0 JB P3.1,LOOP LOOP0:JNB P3.1,LOOP0 INC R5 CJNE R5,#1,LOOP1 CLR P1.0 LOOP1...

单片机汇编语言求助ORG 0000H ;汇编标志,伪指令,就是单片机不执行 ;的,表示汇编时从程序地址0000H开始 RESET:AJMP MAIN ;跳转到MAIN ORG 000BH ;同上,从000BH开始 AJMP ITOP ;跳转到ITOP,不要用LCALL OR...