东华理工大学单片机课程设计文档格式.docx
- 文档编号:21730807
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:997.46KB
东华理工大学单片机课程设计文档格式.docx
《东华理工大学单片机课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《东华理工大学单片机课程设计文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
按下确定键后程序正常走时。
四、设计方案4.1、计时部分课程设计思路:
该课程设计是利用80C51单片机内部的定时/计数器、中断系统、以及行列键盘,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间、校时、启动控制等。
用定时/计数器T0,工作于定时,采用方式1,对12MHZ的系统时钟进行定时计数,初值设为62500ms(自己计算)。
形成定时时间为62500ms。
用片内RAM的2FH单元对62500ms计数,计16次产生秒计数器34H单元加1,秒计数器加到60则分计数器33H单元加1,分计数器加到60则时计数器32H单元加1,时计数器加到24则时计数器清0。
然后把分、时
、日、月计数器分成分单元和时单元放到4个数码管的显示缓冲区,通过数码管显示出来。
显示格式为小时高位、小时低位---分高位、分低位和显示日期格式为月高位、月低位---日高位、日低位。
4.4资源分配:
按键信息存储单元
50H月单元
30H日单元
31H时单元
32H分单元
33H秒单元
34H计数单元
2FH清零标志位
20H.1时间/日期标志位
20H.0显示的四位BCD码依次放入43H、42H、41H、40H校正指针
21H显示缓冲区
3BH
3AH,4.2、按键判断部分课程设计思路:
当每十六微妙进位一次时,程序就进行一次判断按键是否有按下的(是否有
6
按键功能
切换键,切换日期及时间
校正键
校时键,
确定键校正键按下k2),判断是否及上次按键相同,如果相同直接送入时间缓冲间送出显示,如果不相同就保存按下的按键再进行判断是不是切换键(ACC.5,SET2)
按下,如果是时间时期同时取反,将取反时间送入时间缓冲间送出显示同时将取反日期送入日期缓冲间送出显示。
如果不是,判断是否是校正键按下,如果不是重复将取反时间送入时间缓冲间送出显示同时将取反日期送入日期缓冲间送出显示。
如果是校正键按下就进入校正状态,将校正指针初值设成(00,01、10、11、分别代表分、时日、月)同样判断校正指针(20H.1)中的值进入下面分、时、日、月四个子程序中执行,同时进入每个时间日期子程序中都要进行判断是否有ACC.6
ADD2;
(加法)和ACC.7,SURE;
确定键按下.每次按键任何一个键间日期缓冲间显示。
如下图所示:
4.3、数码管显示部分:
把我们设计好的程序通过查表在数码管上显示出来,数码管上从左到右分别显示月、日/时、分,四个数码管分别显示高位和低位,切换时间显示时,要显示出小数点闪烁.如下图所示:
4.5程序流程图:
4.6子程序流程图:
五、实验程序
ORG0000H
SJMPMAIN
ORG000BH
LJMPITOP
ORG0030H
MAIN:
MOV50H,#0FFH;
按键信息初始化为未按键状态
MOV30H,#1;
月单元
MOV31H,#1;
日单元
MOV32H,#0;
时单元
MOV33H,#0;
分单元
MOV34H,#0;
秒单元
MOV2FH,#16;
2FH为十六分之一秒计数单元
CLR20H.1;
校正状态标志清零,为正常走时状态
SETB20H.0;
时间/日期标志置1
MOVTMOD,#01H;
置T0工作于方式1
MOVTH0,#0BH;
采用12M晶振,定时十六分之一秒
MOVTL0,#0DCH;
装载定时器初值
MOVIE,#82H;
允许中断
SETBTR0;
启动定时器
SJMP$
ITOP:
PUSHPSW;
现场保护
PUSHACC
MOVTH0,#0BH
MOVTL0,#0DCH
DJNZ2FH,KEY;
计数开始
十六分之一秒计数单元
MOVA,34H
ADDA,#01H;
在0~9之间,加01H
DAA;
进行十进制调整
MOV34H,A;
送到秒计数单元
CJNEA,#60H,KEY;
未到六十秒转移到KEY,到了则顺序往下执行
MOV34H,#00H;
秒单元清零
MOVA,33H;
分单元加1,并做十进制调整
ADDA,#01H
DAA
MOV33H,A;
送到分计数单元
未到六十分转移到KEY
MOV33H,#00H;
分单元清零
MOVA,32H;
时单元加1,并做十进制调整
DAA
MOV32H,A;
送到时单元
CJNEA,#24H,KEY;
未到二十四小时转移,到了则顺序往下执行
MOV32H,#00H;
时单元清零
MOVA,31H;
日单元加1,并做十进制调整
ADDA,#01H
MOV31H,A;
送到日单元
CJNEA,#31H,KEY;
未到三十一天转移
MOV31H,#01H;
日单元变为一
MOVA,30H;
月单元加1,并做十进制调整
MOV30H,A;
送到月单元
CJNEA,#12H,KEY;
未到十二个月转移
MOV30H,#01H;
月单元变为一
KEY:
JNB20H.1,ZOUSHI;
判断是否校正状态,不是,则转非校正状态
LJMPJIAOSHI;
是,则转为校正状态
ZOUSHI:
MOVA,P1
CJNEA,50H,KEY1;
判断是否及上次按键相同,不相同则转移到KEY
LJMPNONE1;
相同则不断判键
KEY1:
MOV50H,A;
保存上次按键信息
JNBACC.4,SWITCH1;
是否按下切换键
JNBACC.5,SET1;
是否为校正键
没按及无效键均不作判断
SWITCH1:
CPL20H.0;
时间及日期的转换
NONE1:
JNB20H.0,DATE1;
判断日期及时间的标志
MOV3BH,32H;
将时间送到显示缓冲区
MOV3AH,33H
LJMPDISP
DATE1:
MOV3BH,30H;
将日期送到显示缓冲区
MOV3AH,31H
SET1:
SETB20H.1;
切换到校正标志
MOV21H,#0;
校正指针并请零
CLR20H.0;
选择日期标志
MOV3AH,31H
JIAOSHI:
MOVA,P1
CJNEA,50H,KEY2;
判断是否及上次按键相同
LJMPNONE2;
若相同则不能判断按键
KEY2:
JNBACC.5,SET2;
JNBACC.6,ADD2;
是否为加键
JNBACC.7,SURE;
是否为确定键
空操作
SET2:
INC21H;
校正指针并自动加1
ANL21H,#03H
SJMPNONE2
ADD2:
MOVA,#30H;
指向需要校正的指针
ADDA,21H
MOVR0,A
MOVA,@R0;
需要校正的指针并自动加1
ADDA,#1
MOV@R0,A
CJNER0,#30H,DATE;
判断月是否校正完成,校正完成跳转日
CJNE@R0,#13H,NONE2
MOV@R0,#1
DATE:
CJNER0,#31H,HOUR;
判断日是否校正完成,完成则跳转到时
CJNE@R0,#32H,NONE2
HOUR:
CJNER0,#32H,MIN;
判断时是否校正完成,完成则跳转到分
CJNE@R0,#24H,NONE2
MOV@R0,#0
MIN:
CJNE@R0,#60H,NONE2;
校正分
SURE:
校时完成跳转到走时标志
SJMPTIME2
NONE2:
JNB21H.1,DATE2;
判断送到显示缓冲区的是时间还是日期
TIME2:
时间/日期标志置1,为显示时间状态
时间送到显示缓冲区
DATE2:
时间/日期标志位清零,为显示日期状态
日期送到显示缓冲区
DISP:
MOVA,3BH;
显示缓冲区中的内容分解为四位BCD码依次放入43H~40H单元
ANLA,#0F0H
SWAPA
MOV43H,A
MOVA,3BH
ANLA,#0FH
MOV42H,A
MOVA,3AH
MOV41H,A
MOV40H,A
JNB20H.1,DISP1;
不是校正状态,正常显示,否则校正状态下,闪烁显示
JNB2FH.3,DISP1;
若2FH.3为1,校正内容对应的BCD码单元送熄灭码
JNB21H.0,N1;
为0高两位传送,为1低两位传送
MOV40H,#0AH
MOV41H,#0AH
SJMPDISP1
N1:
MOV42H,#0AH
MOV43H,#0AH
LJMPDISP1
DISP1:
MOVDPTR,#TAB;
指向表单
MOVA,40H;
查最高位
MOVCA,@A+DPTR
CJNEA,#09H,NEXT1;
判断最高位是否为0
MOVA,#0FFH;
为0则给熄灭码
NEXT1:
MOVSBUF,A;
传送到数码管上,串行静态显示
JNBTI,$
CLRTI
MOVA,41H;
查第二位
传送到数码管上
JNBTI,$;
等待传输完毕
MOVA,42H;
查第三位
CLRTI;
允许继续传输
MOVCA,@A+DPTR;
查显示数据对应段码
JNB20H.0,NEXT2;
判断时间/日期标志
;
CJNEA,#11H,NEXT2;
日期灭0,时间状太不灭0
MOVA,#0FFH
MOVC,2FH.3;
判断并改变小数点,并判断半秒亮半秒灭
ANLC,20H.0
movc,2fH.3
MOVACC.4,C;
小数点为.4位
NEXT2:
MOVSBUF,A
MOVA,43H;
查第四位
MOVCA,@A
JNBTI,$
POPACC;
现场恢复
POPPSW
RETI
TAB:
DB11H,0d7H,98H,92H,56H,32H,30H,97H,10H,12H,0FFH
END
六、总结及建议
课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,
在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在一天半的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论及实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识及实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。
同时,在老师的身上我学得到很多实用的知识,在次我表示感谢!
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东华 理工大学 单片机 课程设计