鸡西大学单片机课程设计报告Word下载.docx
《鸡西大学单片机课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《鸡西大学单片机课程设计报告Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
⑵VSS-接地端;
注:
用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。
但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。
⒉时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
⒊控制线:
控制线共有4根,
⑴ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵PSEN:
外ROM读选通信号。
⑶RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
⑷EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)
三、具体要求:
该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。
用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为XXYY(自己计算)。
形成定时时间为50ms。
用片内RAM的7BH单元对50ms计数,计20次产生秒计数器78H单元加1,秒计数器加到60则分计数器79H单元加1,分计数器加到60则时计数器7AH单元加1,时计数器加到24则时计数器清0。
然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。
在处理过程中加上了按键判断程序,能对按键处理
四、MCS-51单片机内部定时器/计数器、中断系统简介
定时/计数器是单片机中重要的功能模块之一,在检测,控制和智能仪器等设备中经常用它来定时。
MCS-51系列中51子系列有2个16位的可编程定时/计数器:
T0和T1;
每个定时计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。
T0有4种工作方式,T1有3种工作方式,T2有3种工作方式,可通过编程设定。
每个定时/计数器计数事件到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。
2.中断系统简介
MCS-51单片机提供5个硬件中断源:
2个外部中断源INT0(P3.2)和INT1(P3.3),2个定时/计数器T0和T1的溢出中断TF0和TF1;
1个串行口发送TI和接收RI中断。
T0中断服务程序流程图如图11.3。
五、基本原理
1.定时器/计数器T0
定时器/计数器T0用于时间计时。
选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;
分单元加到60则对时单元加1,同时分单元清0;
时单元加到24则对时单元清0,标志一天时间计满。
在对各单元计数的同时,把它们的值放到存储单元的指定位置。
。
六.硬件电路
七、软件程序流程及代码
1.T0中断服务程序流程图
2.主程序流程图
3.程序代码
ORG0000H
LJMPSTART
ORG000BH;
定时器/计数器T0中断程序入口
LJMPINTT0
;
主程序
START:
MOVR0,#70H
MOVR7,#0CH
INIT:
MOV@R0,#00H
INCR0
DJNZR7,INIT
MOV72H,#10
MOV75H,#10
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTH0,#03CH
SETBEA
SETBET0
SETBTR0
START1:
LCALLSCAN
LCALLKEYSCAN
SJMPSTART1
延时1MS子程序
DL1MS:
MOVR6,#14H
DL1:
MOVR7,#19H
DL2:
DJNZR7,DL2
DJNZR6,DL1
RET
延时20MS子程序
DL20MS:
ACALLSCAN
ACALLSCAN
RET
数码管显示程序
SCAN:
MOVA,78H;
时间存入显示缓冲区相应位置
MOVB,#0AH
DIVAB
MOV71H,A
MOV70H,B
MOVA,79H
MOV74H,A
MOV73H,B
MOVA,7AH
MOV77H,A
MOV76H,B
MOVR1,#70H;
循环扫描显示
MOVR5,#80H
MOVR3,#08H
SCAN1:
MOVA,R5
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
MOVA,R5
LCALLDL1MS
INCR1
RRA
MOVR5,A
DJNZR3,SCAN1
MOVP2,#00H
MOVP0,#0FFH
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
;
“0~9”,“-”的共阳极字段码
定时器/计数器T0中断服务程序
INTT0:
PUSHACC
PUSHPSW
CLRET0
CLRTR0
INC7BH
MOVA,7BH
CJNEA,#14H,OUTT0
MOV7BH,#00
INC78H
MOVA,78H
CJNEA,#3CH,OUTT0
MOV78H,#00
INC79H
MOVA,79H
MOV79H,#00
INC7AH
CJNEA,#18H,OUTT0
MOV7AH,#00
OUTT0:
SETBET0
POPPSW
POPACC
RETI
按键处理程序
KEYSCAN:
CLREA
JNBP1.0,KEYSCAN0
JNBP1.1,KEYSCAN1
JNBP1.2,KEYSCAN2
KEYOUT:
SETBEA
RET
KEYSCAN0:
LCALLDL20MS
JBP1.0,KEYOUT
WAIT0:
JNBP1.0,WAIT0
INC7CH
MOVA,7CH
CJNEA,#03H,KEYOUT
MOV7CH,#00
SJMPKEYOUT
KEYSCAN1:
JBP1.1,KEYOUT
WAIT1:
JNBP1.1,WAIT1
CJNEA,#02H,KSCAN11
INC79H
CJNEA,#3CH,KEYOUT
SJMPKEYOUT
KSCAN11:
CJNEA,#18H,KEYOUT
KEYSCAN2:
JBP1.2,KEYOUT
WAIT2:
JNBP1.2,WAIT2
CJNEA,#02H,KSCAN21
DEC79H
CJNEA,#0FFH,KEYOUT
MOV79H,#3BH
KSCAN21:
DEC7AH
MOV7AH,#17H
END
八.总结
通过两周的单片机课程设计,在小组成员的协同努力下,最终完成电子钟的设计;
在设计中综合运用所学的知识,理论与实际相结合,提出并论证设计方案,然后进行软、硬件调试,最后获得正确的结果。
以此加深了对所学理论知识的巩固,加强了建立计算机应用系统整体概念,初步掌握了单片机软、硬件开发方法,为以后进行实际的单片机软、硬件应用开发奠定了良好的基础。
与此同时,也加强了我们对问题的分析解决能力。