单片机课程设计Word格式文档下载.docx
- 文档编号:19373145
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:23
- 大小:242.89KB
单片机课程设计Word格式文档下载.docx
《单片机课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计Word格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
5.2.1待机19
5.2.2启动19
5.2.3运行20
第6章误差分析21
第7章设计体会22
教学建议23
参考资料24
附录25
致谢26
第1章电子钟功能及总体方案的介绍
1.1电子钟功能介绍
1.1.1基本功能要求
可调整运行的电子钟具有三种工作状态:
“P.”状态、运行状态、调整状态。
(1)、“P.”状态,依靠上电或按复位键进入,在此状态下,按B、C、D键均无效,按A键有效,进入运行状态;
(2)、运行状态,按奇数次A键进入,在此状态下,按B、C、D键均无效,只有按A键有效,按下A键后,退出运行状态,进入调整状态;
(3)、调整状态,按偶数次A键进入,在此状态下,按A、B、C、D键均有效。
如按下A键,则退出调整状态,进入运行状态;
按下B、C、D键,则分别对时、分、秒加1,调整结束后必须按A键,即可退出调整状态,进入运行状态。
基本功能要求:
“P.”稳定地显示在LED显示器的最左端数码管(LED5)上,无A键按下(在“P.”状态下,按下B、C、D键无效),则不进入电子钟的运行状态,继续显示“P.”。
按下A键后,电子钟以起始时间:
00时00分00秒开始运行。
再次按下A键后,电子钟退出运行状态,进入调整状态,利用B、C、D键把电子钟的显示时间修改为当前实时时间,时间修改正确后可再次按下A键,电子钟则退出调整状态,进入运行状态。
注意:
每次按下B、C、D键,只允许加一,不允许连加。
1.1.2扩展功能要求
(1)、在调整状态下,按下B、C、D键,允许连加,而A键无论在何种状态下,均不允许连击;
(2)、时、分、秒的间隔符“。
”以一定频率闪烁;
(3)、时间显示以“灭零”方式进行;
(4)、可调整运行的电子钟用两个按键(例如:
A键、B键)来控制。
1.2总体方案介绍
1.2.1计时方案
利用AT89S52单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。
1.2.2键盘/显示方案
AT89S52的P0口和P2口外接由六个LED数码管(LED5~LED0)构成的显示器,用P0口作LED的段码输出口,P2口作六个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。
AT89S52是一种低功耗,高性能的CMOS8位微型计算机。
它带有8KFlash可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本书中采用此的设计方案,结构如图1-1如示。
第2章电子钟的工作原理
2.1实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×
1/12MHz×
12μs=50000μs
X=15536→0011110010110000→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
2.2电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8LED7LED6LED5LED4LED3LED2LED1
37H36H35H34H33H32H31H30H
时十位时个位分隔分十位分个位分隔秒十位秒个位
2.3电子钟的启、停及时间调整
电子钟设置4个按键通过程序控制来完成电子钟的启、停及时间调整。
A键控制电子钟的启、停;
B键调整时;
C键调整分;
D键调整秒。
第3章电子钟原理图及元件清单
3.1电子钟电路原理图
电子钟原理图(见附录1)
3.2元件清单
电子钟元件清单如表1所示:
表1 电子钟元器件清单
元件名称
规格型号
数量(个)
单片机
AT89S52
1
显示驱动芯片
74LS245
2
8位一体的共阳LED显示器
7SEG-MPX8-CA-BLUE
晶振
12MHz
电容
33pF
22μF
按键
BUTTON
5
电阻
0.2K
1K
上拉电阻
10K
4
限流电阻
0.1K
8
排阻
RESPACK-8/10K
第4章软件系统设计
4.1电子钟程序流程框图
4.1.1主程序流程框图
图4-1主程序流程框图
见图4-1所示
4.1.2键扫子程序流程框图
见图4-2所示
4.1.3中断服务程序流程框图
见图4-3所示
4.1.4“P.”点显示子程序流程框图
见图4-4所示
4.1.5显示子程序流程框图
见图4-5所示
4.1.6加一子程序流程框图
见图4-6所示
4.2电子钟总体程序清单
ORG0000H
AJMPMAIN
ORG000BH
LJMPINTT0
ORG0030H
MAIN:
MOVSP,#60H;
确立堆栈区
MOVPSW,#00H;
MOVR0,#20H;
RAM区首地址
MOVR7,#5FH;
RAM区单元个数
QL:
MOV@R0,#00H;
RAM清零
INCR0
DJNZR7,QL
MOVIP,#02H;
IP初始化,优先定时器0
MOVIE,#82H;
IE初始化,
MOVTMOD,#01H;
定时器0方式1工作
LCALLPP;
调P.子程序
NEXT:
LCALLKEY;
按键检测子程序
JBACC.0,RUNF;
A键按下运行
LCALLDISP;
调用显示子程序
SJMPNEXT
RUNF:
LCALLOUTT;
调传送子程序
LCALLTIME;
开电子钟
JK:
LCALLDISP;
JZJK
LCALLANKEY
SJMPJK
;
P点显示;
PP:
MOV37H,#12;
P点编码送寄存器
MOVR0,#30H;
MOVR7,#07H
PPP:
MOV@R0,#10
DJNZR7,PPP
RET
键扫子程序;
KEY:
LCALLKEYS;
调键值处理子程序
JZEXIT;
没有键按下转到返回
LCALLDISP
调显示去抖动
LCALLKEYS
JZEXIT
MOVB,20H;
保存键值
KEYSF:
LCALLKEYS;
JZKEYY;
键释放,转到恢复键值
LCALLDISP;
调显示子程序延时
AJMPKEYSF;
等到键释放
KEYY:
MOVA,B;
键值送20H单元保存
EXIT:
RET;
返回
KEYS:
MOVP1,#0FFH;
先向P1口写1
MOVA,P1;
P1口值送累加器A
CPLA;
A值取反
ANLA,#0FH;
保存P1口的低4位
MOV20H,A;
A值送20H保存
RET
键功能子程序;
ANKEY:
CLREA;
关中断
CHECK:
JBTR0,YXZ;
判断是否运行
K0:
CJNEA,#01H,K1
AJMPRUN;
转运行
K1:
CJNEA,#02H,K2
AJMPKEY1;
转时调整
K2:
CJNEA,#04H,K3
AJMPKEY2;
转分调整
K3:
CJNEA,#08H,OUT
AJMPKEY3;
转秒调整
YXZ:
JBACC.0,STOP
AJMPOUT
KEY1:
MOVR0,#45H;
时调整
LCALLADD1
CLRC
CJNEA,#24H,OUTT
ACALLCLR0
AJMPOUTT
KEY2:
MOVR0,#43H;
分调整
CJNEA,#60H,OUTT
KEY3:
MOVR0,#41H;
秒调整
ACALLADD1
CLRC
CJNEA,#60H,OUTT
ACALLCLR0
传送显示数据;
OUTT:
MOV30H,40H;
秒显示单元41H-42H
MOV31H,41H
MOV32H,#11;
"
-"
MOV33H,42H;
分显示单元43H-44H
MOV34H,43H
MOV35H,#11;
MOV36H,44H;
时显示单元44-45H
MOV37H,45H
RET
STOP:
CLRTR0;
关电子钟并跳出
RUN:
运行电子钟
OUT:
SETBEA;
无键按下或完成功能跳出
运行电子钟;
TIME:
SETBEA
MOVTL0,#0B0H
MOVTH0,#3CH;
3CB0H
MOVR4,#20;
50ms,20次循环
SETBTR0;
启动定时器0
定时中断;
INTT0:
PUSHACC
PUSHPSW
CLRET0
CLRTR0
MOVTL0,#0B0H;
重新设定定时初值
MOVTH0,#3CH
SETBTR0;
DJNZR4,OUTT0;
1秒到
ADDSS:
MOVR4,#14H;
20次计数
MOVR0,#41H;
秒十位
ACALLADD1;
加1程序
CJNEA,#60H,ADDMM;
1分到
ADDMM:
JCOUTT0
ACALLCLR0
MOVR0,#43H
加1程序
CJNEA,#60H,ADDHH;
1小时到
ADDHH:
MOVR0,#45H
CJNEA,#24H,HOUR;
1天到
HOUR:
JCOUTT0
OUTT0:
MOV30H,40H;
POPPSW
POPACC
SETBET0
RETI
时间清零子程序;
CLR0:
CLRA
MOV@R0,A
DECR0
加一子程序;
ADD1:
MOVA,@R0;
取十位
DECR0
SWAPA
ORLA,@R0;
组合十位与个位
ADDA,#01H;
加1
DAA;
十进制调整
MOVR3,A;
暂存
ANLA,#0FH;
屏蔽十位
MOV@R0,A;
放入个位单元
MOVA,R3;
取值
INCR0
屏蔽个位
放入十位单元
数值放入A中等待判断
显示子程序30H;
DISP:
MOVR1,#30H;
显示缓冲存储单元首地址
MOVR2,#80H;
从右至左显示
DISP1:
MOVP2,R2;
送位控
MOVA,@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A;
送段控
ACALLDL;
延时
MOVA,R2
JBACC.0,DISP2
RRA
INCR1
MOVR2,A
AJMPDISP1
DISP2:
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0BFH,0CH
DL:
MOVR6,#14H;
显示延时子程序
DL1:
MOVR7,#19H;
DL2:
DJNZR7,DL2
DJNZR6,DL1
END
第5章电子钟的使用说明及调试运行
5.1使用说明书
5.1.1操作说明
(1)时间显示:
电子钟上电后,8个数码管显示初始状态即最左边的一个数码管显示P.。
如果未显示P.,只需按一下复位键即可使其显示出P.。
按下A键后电子钟进入自动计时状态,电子钟显示00时00分00秒并开始运行。
(2)时间调整:
若要进行时间调整,则需再次按下A键,进入时间调整状态,然后分别按下B键调时,按下C键调分,按下D键调秒,按下B、C、D键并松开可使电子钟的时,分,秒分别加一。
调整好时间后,按下A键就可以回到调整好的时间为基础的自动计时状态。
无论是在自动计时,还是在调整校正时,都可按下复位键使系统回到显示P.的初始状态。
其中B键显示范围为0-23,0为24点;
C,D键显示范围为0-59,0为60分。
5.2电子钟运行结果
5.2.1待机
(如图5-1所示)
5.2.2启动
(如图5-2所示)
图5-2启动
5.2.3运行
(如图5-3所示)
第6章误差分析
在调试运行过程中,在所有参数正确的情况下,我的结果仍出现运行缓慢情况。
产生误差的主要原因是我们用软件计时,计时1秒是采用定时器的中断服务程序。
当电子钟运行1秒,执行中断程序需要一定时间,这个时间就是所产生的误差,这个误差是不可避免的。
同时,单片机工作也会受到环境的影响,比如温度、湿度,以及其它电子设备的干扰。
因此,应该让电子钟工作在适度温度、干燥和电子干扰较少的环境下,还有一种方法就是采用实时时钟芯片,这样可以使误差降低到最少。
第7章设计体会
这次课程设计持续了几周时间,开始一直就想着等别人做出来再去请教别人,没想到,自己做出来的人并不多,也没有谁能够帮我的,于是就和吴娟去图书馆借书自己琢磨。
借了胡辉主编的《单片机应用系统设计与训练》,细细阅读了里面关于电子钟设计的介绍,学到了蛮多知识的。
后来在二班汪宇那里又弄来了王老师关于电子钟设计的的课件包,借鉴了相当一部分内容,不管怎么样我也终于是自己搞定了。
但是自己还是去认真再次学习了汇编语言的,还有熟练了PROTEUS和KEIL软件的运用,还用了蛮久没用的PROTEL99SE画了电路原理图,还更好的锻炼了用VISIO画流程图。
虽然大部分都是借鉴的,只是照着描描但自己还是用心去弄懂了。
有时间还是会更多锻炼的。
感觉这些软件都越来越顺手了。
挺开心。
发现自己真是不逼就不学的人啦。
教学建议
所谓的教学建议是第一次写,也不知道应该写些什么。
只知道自己没学好,也似乎不爱学这方面的东西。
王老师您是个好老师,虽然我感觉您上学期的教学比这学期的吸引人,当然这其中的大部分的原因也都是因为这学期时间太松,加上我们这些大四学生太放任自流了的原因吧。
如果要我提出建议,我想,以下这些不成熟也没条理性可言的语句就算是我的所谓“建议”吧。
教学,教与学,本来就时老师与学生的互动。
老师教得再好,学生没去认真有什么用处?
所以我觉得一个好老师可能应该更多的去带动学生去学,勾起学生学习的兴趣。
虽然王老师您在这方面已经下了很多功夫,但似乎成效并不大,适得其反,一部分根本不想学的人反而还觉得您逼迫得太紧了,对您意见颇多。
形成了这样的局面,我想也不时您所希望见到的,所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)