1、128个用户位寻址空间。21个字节特殊功能寄存器。4个8位的并行I/O接口:P0、P1、P2、P3。2个16位定时器/计数器2个优先级别的5个中断源。1个全双工的串行I/O接口,可多机通信。111条指令,含乘法指令和除法指令。片内采用单总线结构。有较强的位处理能力。采用单一+5V电源。图一、MCS-51系列单片机的内部结构五、MCS-51单片机内部定时器/计数器中断系统简介定时/计数器的主要特性:1MCS-51系列中51子系列有两个16位的可编程定时/计数器:定时/计数器T0和定时/计数器T1,52子系列有三个,还有一个定时/计数器T2。2每个定时/计数器既可以对系统时钟计数实现定时,也可以对
2、外部信号计数实现计数功能,通过编程设定来实现。-3-3每个定时/计数器都有多种工作方式,其中T0有四种工作方式;T1有三种工作方式,T2有三种工作方式。通过编程可设定工作于某种方式。4每一个定时/计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。图二、定时/计数器T0、T1的结构及工作原理定时/计数器的工作方式:方式0是13位的定时/计数方式,因而最大计数值(满值)为2的13次幂,等于8192。如计数值为N,则置入的初值X为: X=8192-N 方式1的结构与方式0结构相同,只是把13位变成16位, 16位的加法计数器被全部用上。由于是16位的定时/计数方式,因
3、而最大计数值(满值)为2的16次幂,等于65536。 X=65536-N方式2下,16位的计数器只用了8位来计数,用的是TL0(或TL1)的8位来进行计数,而TH0(或TH1)用于保存初值。当TL0(或TL1)计满时则溢出,一方面使TF0(或TF1)置位,另一方面溢出信号又会触发图6.5上的三态门,使三态门导通,TH0(或TH1)的值就自动装入TL0(或TL1)。由于是8位的定时/计数方式,因而最大计数值(满值)为2的8次幂,等于256。 X=256-N方式3只有定时/计数器T0才有,当M1M0两位为11时,定时/计数器T0工作于方式3。方式3下,定时/计数器T0被分为两个部分TL0和TH0,
4、其中,TL0可作为定时/计数器使用,占用T0的全部控制位:GATE、C/T、TR0和TF0;而TH0固定只能作定时器使用,对机器周期进行计数,这时它占用定时/计数器T1的TR1位、TF1位和T1的中断资源。-4-六、键盘简介1、键盘的工作原理键盘实际上是一组按键开关的集合,平时按键开关总是处于断开状态,当按下键时它才闭合。它的结构和产生的波形如图所示。图三、键盘开关及波形示意图2、键盘抖动的消除消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。图四、硬件消抖电路硬件消抖可以采用RS触发器或单稳态电路。软件消抖是利用延时来跳过抖动过程 3、键盘的结构形式键盘的结构形式一般有两种:独立式键盘与矩阵
5、式键盘。 独立式键盘就是各按键相互独立,每个按键各接一根I/O口线,每根I/O口线上的按键都不会影响其它的I/O口线。-5-矩阵式键盘又叫行列式键盘。用I/O口线组成行、列结构,键位设置在行列的交点上。例如44的行、列结构可组成16个键的键盘,比一个键位用一根I/O口线的独立式键盘少了一半的I/O口线。七、LED数码管显示器简介图五、LED显示器的结构LED数码管的显示方式:LED静态显示时,其公共端直接接地(共阴极)或接电源(共阳极),各段选线分别与I/O口线相连。要显示字符,直接在I/O线送相应的字段码。LED动态显示是将所有的数码管的段选线并接在一起,用一个I/O口控制,公共端不是直接接
6、地(共阴极)或电源(共阳极),而是通过相应的I/O口线控制。LED显示器从译码方式上有硬件译码方式和软件译码方式。从显示方式上有静态显示方式和动态显示方式。在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,则通常用软件译码动态显示。仿真电路图:程序代码:ORG 0000H AJMP MAIN ORG 0003H AJMP KEY_SELECTTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,00H,90H,0FFHDELAY_1MS: MOV R5,#14H DL1:MOV R4,#19H DL
7、2:DJNZ R4,DL2 DJNZ R5,DL1 RET MAIN: MOV 30H,#03 ;黄灯3秒 MOV 31H,#30 ;南北红灯 MOV 32H,#30 ;东西红灯 MOV 33H,#0EEH MOV 34H,#0DEH MOV 35H,#0FEH MOV 36H,#0F5H MOV 37H,#0F3H MOV 38H,#0F7H MOV 50H,#0 MOV 61H,#0 MOV 71H,#0 MOV 72H,#0 MOV 75H,#0 MOV 76H,#0 MOV 77H,#0 MOV DPTR,#TABLE SETB EX0 SETB EA LOOP: MOV 50H,#0
8、 MOV 40H,30H MOV 41H,31H MOV 42H,32H MOV 43H,33H MOV 44H,34H MOV 45H,35H MOV 46H,36H MOV 47H,37H MOV 48H,38H MOV A,41H SUBB A,40H MOV 49H,A MOV A,42H MOV 4AH,A ; CLR EA MOV A,50H CJNE A,#0,LOOP MOV R7,49H MOV R3,41H MOV R2,49H MOV A,43H MOV P1,A LOOP1_0: MOV R6,#250LOOP1_1: LCALL LOOP5 DJNZ R6,LOOP1
9、_1 DEC R3 DEC R2 DJNZ R7,LOOP1_0 MOV R7,40H MOV R3,40H MOV R2,40H MOV A,44H MOV P1,ALOOP2_0:LOOP2_1: LCALL LOOP5 CJNE R6,#126,LOOP2_10 MOV A,45HLOOP2_10:CJNE R6,#1,LOOP2_11LOOP2_11:DJNZ R6,LOOP2_1 DJNZ R7,LOOP2_0 MOV R7,4AH MOV R3,4AH MOV R2,42H MOV A,46HLOOP3_0:LOOP3_1: DJNZ R6,LOOP3_1 DJNZ R7,LOOP
10、3_0 CJNE A,#0,LOOP6 MOV R7,40H MOV A,47HLOOP4_0:LOOP4_1: MOV A,R6 CJNE R6,#126,LOOP4_20 MOV A,48HLOOP4_20:CJNE R6,#1,LOOP4_21LOOP4_21:DJNZ R6,LOOP4_1 DJNZ R7,LOOP4_0LOOP6:AJMP LOOPLOOP5: CLR P2.4 CLR P2.5 MOV A,#0FFH MOV P0,A MOV A,R3 MOV B,#0AH DIV AB MOV 52H,A MOV 51H,B MOV A,R2 MOV 54H,A MOV 53H,
11、B MOV 60H,#01H MOV A,60H MOV P2,A RL A MOV 60H,A MOV A,51H MOVC A,A+DPTR LCALL DELAY_1MS MOV A,52H MOV A,53H MOV A,54H MOV 60H,#0KEY_SELECT:WAIT0:JNB P3.2,WAIT0 INC 61H MOV A,#0B6H K1: ACALL LOOP7 JNB P3.5,SELECT_5 JNB P3.6,SELECT_6 JNB P3.7,SELECT_7 JNB P3.2,SELECT_2 JNB P3.4,SELECT_40 SJMP K1SELEC
12、T_40:LJMP SELECT_4 OUT: MOV R7,#5 MOV R2,#5 MOV R3,#5 MOV A,#0F6H MOV 43H,#0F6H MOV 44H,#0F6H MOV 45H,#0F6H MOV 46H,#0F6H MOV 47H,#0F6H MOV 48H,#0F6H MOV 50H,#1 RETISELECT_5: LCALL DELAY_10MS JB P3.5,K1WAIT5:JNB P3.5,WAIT5 MOV A,#0EEHWAIT50:JB P3.5,WAIT50 SJMP OUTSELECT_6: JB P3.6,K1WAIT6:JNB P3.6,W
13、AIT6 MOV A,#0F5HWAIT60:JB P3.6,WAIT60SELECT_7: JB P3.7,K1WAIT7:JNB P3.7,WAIT7 CLR P2.5 WAIT70:JB P3.7,WAIT70 LJMP OUTSELECT_2: JB P3.2,SELECT_211 LCALL DELAY_300MS JB P3.2,Y1WAIT1:MOV A,61H CJNE A,#1,SELECT_20 INC 31H MOV A,31H CJNE A,#94,SELECT_21 MOV 31H,#18 SJMP SELECT_21SELECT_20: INC 32H MOV A,
14、32H MOV 32H,#18SELECT_21: LCALL LOOP8 JNB P3.2,WAIT1SELECT_211:LJMP K1 Y1:INC 61H MOV A,61H CJNE A,#03,SELECT_211SELECT_210:LJMP OUTSELECT_4: JB P3.4,SELECT_210 JB P3.4,W1WAIT2:JNB P3.4,WAIT2 CJNE A,#1,SELECT_4_0 DEC 31H CJNE A,#17,SELECT_211 MOV 31H,#93 AJMP K1SELECT_4_0: DEC 32H CJNE A,#17,SELECT_
15、41 MOV 32H,#93 W1: CJNE A,#1,SELECT_4_1 CJNE A,#94,SELECT_41SELECT_4_1:SELECT_41: LJMP K1DELAY_10MS:DELAY_300MS: MOV R1,#30DELAY:LCALL DELAY_10MS DJNZ R1,DELAYLOOP7: CJNE A,#1,LOOP7_1 MOV 72H,A MOV 71H,B SJMP DISPLOOP7_1: MOV A,#076H DISP:MOV 60H,#10H MOV A,71H MOV 60H,#20H MOV A,72HLOOP8: MOV R0,#1
16、50LOOP8_0: CJNE A,#1,LOOP8_1 SJMP DISP2LOOP8_1:DISP2: DJNZ R0,LOOP8_0 END十一、总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。-11-回顾起此次单片机课程设计,我仍感慨颇多。的确,从拿到课程设计题目后,从理论到实践,在接近一个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1