我的单片机设计的数字钟实验报告Word文档格式.docx
- 文档编号:5114630
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:23
- 大小:91.17KB
我的单片机设计的数字钟实验报告Word文档格式.docx
《我的单片机设计的数字钟实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《我的单片机设计的数字钟实验报告Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
主程序流程图如图2.3所示,定时器T0中断服务程序流程图如2.4所示。
图2.4中断服务程序流程图
四.51单片机系统的硬件连接
1.硬件电路的设计,硬件电路图如图2.2所示
图2.2硬件电路图
该电路采用AT89C51单片机最小化应用,采用共阴7段LED数码管显示器,P2.4~P2.7口作为列扫描输出,P0口输出段码数据,P1.2,P1.1口接2个按钮开关,用于调时及功能误差,采用12Mhz晶振,可提高秒计时的精确度。
采用动态扫描法实现LED数码管显示。
共阴7段LED显示器显示原理:
引脚
数字显示
.P0.7
h
P0.6
g
P0.5
f
P0.4
e
P0.3
d
P0.2
c
P0.1
b
P0.0
a
数码显示
1
3FH
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
6FH
10μf电容作用:
上电复位;
7407作用:
同相缓冲器,驱动数码管;
12M晶振和两个电容组成晶体振荡器。
五.程序设计
1主程序
MAIN:
MOVHOUR,#00;
时,分,秒,标记清零
MOVMIN,#00H
MOVSEC,#00H
MOVBUFF,#00H
MOVSP,#0EFH;
设堆栈指针
MOVTH0,#0ECH;
定时器赋初值
MOVTL0,#78H
MOV40H,#100;
设循环次数
MOV41H,#2
MOVTMOD,#1;
写TMOD
MOVIP,#2;
写IP
MOVIE,#82H
MOVR5,#0;
利用R5进行硬件延时
;
开中断
SETBTR0;
启动定时器
采用定时器T0中断完成一次主程序循环,调用显示子程序和查键子程序,当端口有开关按下时,输入相应的功能程序。
2中断服务子程序
PTF0:
MOVTH0,#0ECH
MOVTL0,#78H
INCR5
MOVR6,BUFF
CJNER6,#00H,BB
MOVDPTR,#TAB1
LJMPLOOP0
BB:
MOVDPTR,#TAB
LOOP0:
CJNER5,#1,LOOP1
ACALLLOP0
AJMPJK
LOOP1:
CJNER5,#2,LOOP2
ACALLLOP1
LOOP2:
CJNER5,#3,LOOP3
ACALLLOP2
LOOP3:
ACALLLOP3
MOVR5,#0
JK:
DJNZ40H,PTFOR
XRLBUFF,#0FFH
MOV40H,#100
JNBP1.1,JF
JNBP1.2,JS
MOVR7,41H
CJNER7,#1,AA
AA:
DJNZ41H,PTFOR
MOV41H,#2
MOVA,SEC;
秒加1
ADDA,#1
DAA
MOVSEC,A
CJNEA,#60H,PTFOR
MOVSEC,#0;
秒清零
JF:
MOVA,MIN;
分加1
ADDA,#1
MOVMIN,A
CJNEA,#60H,PTFOR
MOVMIN,#0;
分清零
ACALLLED
JS:
MOVA,HOUR
ADDA,#1
MOVHOUR,A;
时加1
CJNEA,#24H,PTFOR;
时加到24时否?
是,清零
MOVHOUR,#0
PTFOR:
RETI
定时器T0用于时间计时,定时溢出中断周期为5ms,中断进入后,先进行定时中断初值校正,当中断累计200次(即5ms*200=1S)时,对秒计数单元进行加1操作,计时单元中采用24进位。
晶振频率fosc=12MHZ,T0工作于方式0,产生5ms中断,则T0的初始值计算公式为:
T=
(216-a)μs
得:
a=216-
*T
=216-5000
=60536
化为16进制数:
a=0EC78H
3显示子程序
LOP0:
显示分钟的个位
ANLA,#0FH
MOVCA,@A+DPTR
MOVP0,A
MOVP2,#0F0H
CLRP2.4
CLRP0.4
RET
LOP1:
显示分钟的十位
SWAPA
MOVP0,A
MOVP2,#0F0H
CLRP2.5
LOP2:
MOVA,HOUR;
显示时钟的个位
CLRP2.6
RET
LOP3:
显示时钟的十位
SWAPA
CLRP2.7
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;
不带小数点的字型码
TAB1:
DB,0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH;
带小数点的字型码
时间显示子程序每次显示4个连续单元的十进制BCD数码,首地址在调用显示子程序时需要先指定.由于采用7段共阴LED数码观动态扫描实现数据显示,所以显示用十进制BCD码数据的对应段码存放在ROM中。
显示时,先取出内存地址中的数据,然后查得对应的显示用段码从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。
4.总的程序清单
HOUREQU3AH;
赋值伪指令
MINEQU3BH
SECEQU3CH
BUFFEQU3DH
ORG0000H
AJMPMAIN
ORG000BH;
主程序入口
AJMPPTF0
ORG0033H;
跳转到标号PTF0执行
;
**************************************************************
主程序
MOVHOUR,#00H;
SETBP1.2
TAB1:
DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH;
END
六系统调试及结果分析
6.1硬件调试
硬件电路板中器件连接好后,先用万用表测试电路中有无虚焊短接之处,测试无误后,将板子通电,进行静态调试。
取好两跟短的导线,一根导线的其中一端接地,另一端接P2.4~P2.7口中的一个口,若数码管亮,再用另一根导线,其中异端接地,另一端与P0.0~P0.7依次接触,看数码管各段的亮灭情况,从而判断每个数码管各段的好坏及电路的是否正确。
6.2软件调试
在LCA51编译器下进行汇编程序的编写,以子程序为单位调试,一段一段的编译与访真,最后结合电路板,进行整机联调。
6.3结果分析
由于中断中对堆栈的处理需要花费时间,所以为了减小误差,实现数字钟的走时精度,应当在编程时尽量使中断次数比较少。
七.注意事项
1.在焊接电路板之前,应事先画好硬件原理图,把每一根精确排布,合理布局好各类元器件。
2.焊接时要注意焊接工艺,由于是通用板,质量不是太高,如果不注意,上面的小铜片很容易损坏,容易导致虚焊。
3.电路板及访真机接电源操作时,要注意正负极,并且严格的操作要求进行操作,以免造成元器件和仿真机的损坏。
4.在进行程序的编写时,应该熟悉所使用的每一条指令和程序的各项要求。
5焊接器件时,应该先焊接小器件,再焊接大器件,先焊接低器件,再焊接高器件。
6安装芯片时,应该注意1号脚的位置,如果安装错误,会造成芯片的损坏。
7焊接完一个模块都要用万用表检测电源和地是否出现短接,如果出现短路,需要检测出现短路的地方。
8在保证焊接准确度的前提下,应该尽可能考虑美观程度。
八.心得体会
基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数。
从而,使数字钟的精度仅仅取决于单片机的产生周期电路和定时器T0硬件电路的精确度;
另外,程序较为简洁,具有可靠性较好的可读性和较好的可读性。
如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。
我在这次的数字钟设计过程中很是受益匪浅。
通过对自己大学三年时间所学的知识的回顾,并充分发挥对所学知识的理解和对设计内容思考和书面表达能力,最终顺利完成了。
这为自己今后进一步深化学习,积累了一点的宝贵经验。
撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或者实际问题,把知识转化为能力的实际训练。
培养了我运用所学知识解决实际问题的能力。
通过这次的课程设计我发现,只有理论水平提高了,才能够把理论和实际内容相结合,我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题。
九.参考文献:
清华大学出版社田丰单片机原理及应用
哈尔滨工业大学张毅刚新编单片机应用设计
中国电力出版社窦振中基于单片机的嵌入式系统工程设计
复旦大学张友德单片微型机原理应用与实验
满足上面要求的程序:
ORG0000H
LJMPSTART
ORG000BH
LJMPPTF0
ORG0033H
START:
MOVSP,#0EFH
MOV36H,#2
MOV37H,#90
MOV3CH,#00H
MOV22H,#00H
MOV23H,#00H
MOVIP,#02H
MOVIE,#82H
MOVTMOD,#01H
MOVTH0,#0EBH
MOVTL0,#0DFH
SETBTR0
LCALLLOP0;
调用显示子程序;
LCALLLOP1
LCALLLOP2
LCALLLOP3
JNBP1.1,JF;
判断调时,调分按键是否按下;
AJMPMAIN
CLRTR0;
调分按键
MOVA,22H
MOV22H,A
LCALLDELAY1
CJNEA,#60H,FS
MOV22H,#0
MOV3CH,#0
FS:
LJMPMAIN
调时按键
MOVA,23H
MOV23H,A
CJNEA,#12H,SS
MOV23H,#0
SS:
LJMPMAIN
MOVTH0,#0EBH
MOVTL0,#0DFH
DJNZ37H,PTFOR
MOVDPTR,#TAB1
DJNZ36H,PTFOR
MOVDPTR,#TAB
MOV36H,#2
MOVA,3CH;
秒自加一,判断是否等于60秒
DAA
MOV3CH,A
CJNEA,#60H,PTFOR
MOVA,22H;
分自加一,判断是否等于60分
MOV22H,A
MOV22H,#00H
MOVA,23H;
时自加一,判断是否等于12时
MOV23H,A
CJNEA,#12H,PTFOR
PTFOR:
显示分的个位
CLRP0.7
LCALLDELAY
MOVA,22H;
显示分的十位
CLRP0.7
MOVA,23H;
显示时的个位
LCALLDELAY
显示时的十位
DELAY:
MOVR6,#20;
显示延时
DEL0:
MOVR5,#5
DEL1:
MOVR4,#2
DJNZR4,$
DJNZR5,DEL1
DJNZR6,DEL0
DELAY1:
MOVR6,#100;
按键延时
DE0:
MOVR5,#20
DE1:
MOVR4,#50
DJNZR5,DE1
DJNZR6,DE0
DB7EH,48H,3DH,6DH,4BH,67H,77H,4CH,7FH,6FH
DB0FEH,0C8H,0BDH,0EDH,0CBH,0E7H,0F7H,0CCH,0FFH,0EFH;
带小数点的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 设计 数字 实验 报告