}
a=(a+1); b=~b; b=(b+1); m=a; a=a>>4; b=b<<4; TMP=(a|b); m=(m&0x0f); TMP_d=m;
EA=1; return(TMP); 结 束 语
通过本次设计使我认识并了解了基本的设计开发过程,在这个过程中,我的老师与同学们给了我很多的启示与帮助,而且我觉得对以前不了解的单片机知识有了一个更高更深的认识。我相信我所学的知识在以后的工作学习中会起到很大的作用。
参 考 文 献
1.李广弟,《单片机基础》。北京航空航天大学出版社,2001年7月。 2.鲍宏亚,《MCS-51系列单片机应用系统》。中国宇航出版社,2005年9月。 3.谷树忠,《Protel 2004实用教程》。电子工业出版社,2005年2月。 4.何桥,《单片机原理及应用》。中国铁道出版社,2008年1月。
附 录
Keil C51的编程语言常用的有2种:一种是汇编语言;另一种是C 语言。用汇编语言写单片机程序时,精确时间延时是相对容易解决的。比如,用的晶振频率为12 MHz的AT89C51,打算延时20 μs,51单片机的指令周期是晶振频率的1/12,即一个机器周期为1 μs,其精度可以达到1 μs。用这种方法可以非常方便地实现512 μs以下时间的延时。如果需要更长的时间,可以使用两层或更多层的嵌套,当然其精度误差会随着嵌套层的增加而成倍增加。 延时函数有下:
void delay1(unsigned char i) { while(i );} 主函数:
void main() { while(1) { delay1(i); } }
使用Keil C51的反汇编功能,延时函数的汇编代码如下: C:0x00E6AE07MOVR6,0x07 C:0x00E81FDECR7 C:0x00E9EEMOVA,R6 C:0x00EA70FAJNZC:00E6 C:0x00EC22RET