单片机课程设计报告单片机数字时钟课程设计报告.docx
- 文档编号:6237803
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:26
- 大小:247.16KB
单片机课程设计报告单片机数字时钟课程设计报告.docx
《单片机课程设计报告单片机数字时钟课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告单片机数字时钟课程设计报告.docx(26页珍藏版)》请在冰点文库上搜索。
单片机课程设计报告单片机数字时钟课程设计报告
惠州学院课程设计报告
单片机数字时钟课程设计报告
姓名:
班别:
学号:
设计任务:
1、 能够实现时间的精确显示,以数字的形式显示时间的时、分、秒。
2、 时间以24小时为进制,能够通过相应按键来调节时钟时间。
3、 能够实现按键启动与停止功能。
4、 能够实现秒表功能。
摘要
此电子钟采用c8951芯片,同时使用8位8段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求。
该电子钟有四个按键,进行相应的操作就可实现时间调整、年月查看与复位功能 。
整个过程就是先设计和焊接好硬件电路,再通过汇编语言编写应用程序来实现我们需要的功能,这期间,进行的软件仿真和调试是本设计的重点和难点。
关键词:
电子时钟、c8951芯片、程序设计、仿真调试
1.系统的功能分析与设计方案
1.1系统的主要功能
1.2数码管显示工作原理
1.3电路硬件设计
1.4各电路工作原理
1.5设计原理框图
1.6主芯片工作原理图
.1.7材料清单
1.8电路原理图及实物图
2. 软件设计
2.1完整源程序
2.2系统安装与调试
2.3硬件电路的安装
2.4软件调试
2.5课程设计总结
3.参考文献
4.致谢
1.系统的功能分析与设计方案
1.1系统的主要功能
利用89c51单片机内部的定时/计数器、中断系统、以及行列键盘和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和复位控制等。
此外还要实现对时间的调整功能,89c51的P1.0、P1.1、RST外接三个独立按键,当按下P1.0按键时,系统进入调时间的状态或启动时间显示的功能;当按下P1.1按键时,对显示的数码管进行加一的功能,达到调整时间的目的;当按下RST按键时,实现对电子时钟进行复位的功能。
系统的设计方案
整个系统采用应用广泛的AT89S52作为时钟控制芯片,利用单片机内部的定时器\计数器来实现的,它的处理过程如下:
首先设定单片机内部的一个定时器\计数器工作于定时方式,对机器周期计数形成基准时间,然后用另一个定时器\计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。
然后通过数码管把它们的内容在相应位置显示出来即可。
数码管显示可以采用静态显示方法或动态显示方法。
静态显示方法需要数据锁存器等硬件,接口复杂,时钟显示一般用6个或8个数码管。
由于系统没有其他的复杂的任务处理,而且显示的时钟信息随时都可能变化,一般采用动态显示方式。
动态显示方法线路相对简单,但需动态扫描,扫描频率要大于人眼视觉暂留频率,信息看起来才稳定。
译码方式可分为软件译码和硬件译码,软件译码通过译码程序查得显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。
在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。
在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。
另外,为了使用方便,设计了简单的按键,可以通过按键实现时间调整和复位。
1.2数码管显示工作原理
数码管是一种把多个LED显示段集成在一起的显示设备。
有两种类型,一种是共阳型,一种是共阴型。
共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。
共阴型就是把多个LED显示段的阴极接在一起,即为公共商。
阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。
通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。
而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。
即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。
数码管显示方法可分为静态显示和动态显示两种。
静态显示:
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8 位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
动态显示:
所谓动态显示,就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
从节省I/O口和降低能耗出发,本设计采用动态显示。
1.3 电路硬件设计
1.31 设计原理框图
此设计原理框图如图1所示,此电路包括以下六个部分:
单片机,按键,指示灯,复位电路,晶振及显示电路。
设计原理框图
按键
单片机
显示电路
晶振
复位电路
指示灯
电路设计分为复位电路、指示灯电路、按键电路、时钟电路及数码管连接电路,总电路工作原理图如下图所示
89c51芯片
该系列单片机是采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器
全部支持12时钟和6时钟操作
P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位
定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART
以及片内振荡器和时钟电路
此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式
空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作
掉电模式保存RAM的内容
但是冻结振荡器导致所有其它的片内功能停止工作
由于设计是静态的
时钟可停止而不会丢失用户数据
运行可从时钟停止处恢复
4个中断优先级 y6个中断源 4个8位I/O口
全双工增强型UART ―帧数据错误检测 ―自动地址识别
3个16位定时/计数器T0T1
标准80C51
和增加的T2
捕获和比较
可编程时钟输出 异步端口复位
低EMI (禁止ALE以及6时钟模式) 掉电模式可通过外部中断唤醒
其引脚图如下所示
材料清单
8051芯片1个
瓷介电容2个
极性电容1个
芯片底座1个
4位7段数码管2个
10K欧电阻1个
电池盒1个
电池2个
独立按键5个
自锁开关1个
排阻1个
12M晶振1个
2软件设计
2.1 软件设计流程
电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始化参数设置、按键处理、数码管显示模块等,
(1)主程序
主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。
主程序执行流程如图
2)定时器/计数器T0中断程序
定时器/计数器T0用于时间计时。
选择方式1,重复定时,定时时间设为20ms,定时时间到则中断,在中断程序中用一个计数器对20ms计数,计50次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。
在对各单元计数的同时,把它们的值放到存储单元的指定位置。
定时器/计数器T0中断程序流程图如图
SETBIT0
SETBTR0
SETBPT0
MAIN:
CLRP3.7
JNBP1.7,LOOP
LCALLDISPLAY
LCALLKEY
SETBEX0
LJMPMAIN
LOOP:
MOVS6,#09H
ZN:
MOVS7,#0FFH
SETZH:
CLRP3.2
SETBP3.2
LCALLKEY
DJNZS7,SETZH
DJNZS6,ZN
LJMPMAIN
SHOW:
PUSHACC
PUSHPSW
LCALLDISPLAY1
POPPSW
POPACC
RETI
ZDN:
PUSHACC
PUSHPSW
INCR7
CJNER7,#200,ZD
MOVR7,#00H
INCS0
MOVA,S0
CJNEA,#20,ZD
MOVS0,#00H
INCR0
CJNER0,#60,ZD
MOVR0,#00H
INCR1
CJNER1,#60,ZD
完整源程序:
S0EQU31H
S1EQU32H
S2EQU33H
S3EQU34H
S4EQU35H
S5EQU36H
S6EQU37H
S7EQU38H
S8EQU39H
S9EQU40H
S10EQU41H
ORG0000H
AJMPSTART
ORG000BH
AJMPZDN
ORG0003H
LJMPSHOW
ORG0045H
START:
MOVR0,#57
MOVR1,#59
MOVR2,#12
MOVR3,#20
MOVR4,#11
MOVR5,#15
MOVR6,#20
MOVR7,#00H
MOVS0,#00H
MOVS1,#00H
MOVS2,#00H
MOVS3,#00H
MOVS4,#00H
MOVS5,#00H
MOVS6,#00H
MOVS7,#00H
MOVS8,#00H
MOVS9,#00H
MOVS10,#00H
MOVTMOD,#02H
MOVTH0,#06H
MOVTL0,#06H
MOVIE,#83H
L1:
MOVA,R5
MOVB,#4
DIVAB
MOVA,B
CJNEA,#0,PINGNIAN
L2:
CJNER3,#30,L3
MOVR3,#01H
INCR4
PINGNIAN:
CJNER3,#29,L3
MOVR3,#01H
INCR4
L3:
RET
DISPLAY:
MOVDPTR,#TAB
CJNER0,#0,BB
CJNER1,#0,BB
SETBP3.7
LCALLDELAY10MS
CLRP3.7
BB:
MOVA,R0
MOVB,#10
DIVAB
MOVS9,A
MOVS10,B
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.7
LCALLDELAY
SETBP2.7
MOVA,S9
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
LCALLDELAY
SETBP2.6
MOVA,#10
MOVCA,@A+DPTR
MOVP0,A
MOVR1,#00H
INCR2
CJNER2,#24,ZD
MOVR2,#00H
INCR3
CJNER4,#2,LOOP31
LCALLJUDGE_Y
LCALLZD
LOOP31:
CJNER4,#4,V1
AJMPSMALL
V1:
CJNER4,#6,V2
AJMPSMALL
V2:
CJNER4,#9,V3
AJMPSMALL
V3:
CJNER4,#11,MAX
SMALL:
CJNER3,#31,ZD
MOVR3,#01H
INCR4
MAX:
CJNER3,#32,ZD
MOVR3,#01H
INCR4
CJNER4,#12,ZD
MOVR4,#01H
INCR5
CJNER5,#99,ZD
MOVR5,#00H
INCR6
CJNER6,#99,ZD
MOVR6,#00H
ZD:
POPPSW
POPACC
RETI
JUDGE_Y:
MOVA,R5
CJNEA,#0,L1
MOVA,R6
MOVB,#4
DIVAB
MOVA,B
CJNEA,#0,PINGNIAN
LJMPL2
MOVCA,@A+DPTR
MOVP0,A
CLRP2.0
LCALLDELAY
SETBP2.0
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H;
DISPLAY1:
MOVDPTR,#TAB1
MOVA,R3
MOVB,#10
DIVAB
MOVS9,A
MOVS10,B
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.7
LCALLDELAY
SETBP2.7
MOVA,S9
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
LCALLDELAY
SETBP2.6
MOVA,#10
MOVCA,@A+DPTR
MOVP0,A
CLRP2.5
LCALLDELAY
SETBP2.5
MOVA,R4
MOVB,#10
DIVAB
MOVS9,A
MOVS10,B
CLRP2.5
LCALLDELAY
SETBP2.5
MOVA,R1
MOVB,#10
DIVAB
MOVS9,A
MOVS10,B
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.4
LCALLDELAY
SETBP2.4
MOVA,S9
MOVCA,@A+DPTR
MOVP0,A
CLRP2.3
LCALLDELAY
SETBP2.3
MOVA,#10
MOVCA,@A+DPTR
MOVP0,A
CLRP2.2
LCALLDELAY
SETBP2.2
MOVA,R2
MOVB,#10
DIVAB
MOVS9,A
MOVS10,B
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.1
LCALLDELAY
SETBP2.1
MOVA,S9
MOVS10,B
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.1
LCALLDELAY
SETBP2.1
MOVA,S9
MOVCA,@A+DPTR
MOVP0,A
CLRP2.0
LCALLDELAY
SETBP2.0
RET
TAB1:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,80H;
KEY:
MOVP1,#0FFH
MOVA,P1
CPLA
ANLA,#70H
JZRET1
LCALLDELAY10MS
MOVA,P1
CPLA
ANLA,#70H
JZRET1
JBACC.4,MKEY
JBACC.5,ADDKEY
JBACC.6,DECKEY
RET1:
RET
MKEY:
CLRTR0
LCALLK1
LJMPDISPLAY
ADDKEY:
LCALLK2
LJMPDISPLAY
DECKEY:
LCALLK3
LJMPDISPLAY
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.5
LCALLDELAY
SETBP2.5
MOVA,S9
MOVCA,@A+DPTR
MOVP0,A
CLRP2.4
LCALLDELAY
SETBP2.4
MOVA,#10
MOVCA,@A+DPTR
MOVP0,A
CLRP2.3
LCALLDELAY
SETBP2.3
MOVA,R5
MOVB,#10
DIVAB
MOVS9,A
MOVS10,B
MOVA,B
MOVCA,@A+DPTR
MOVP0,A
CLRP2.3
LCALLDELAY
SETBP2.3
MOVA,S9
MOVCA,@A+DPTR
MOVP0,A
CLRP2.2
LCALLDELAY
SETBP2.2
MOVA,R6
MOVB,#10
DIVAB
MOVS9,A
N8:
CJNER4,#11,MAX1
SMALL1:
CJNER3,#30,LOOP9
MOVR3,#01H
LJMPLOOP15
LOOP9:
INCR3
LJMPLOOP15
MAX1:
CJNER3,#31,LOOP35
MOVR3,#01H
LJMPLOOP15
LOOP35:
INCR3
LJMPLOOP15
LOOP8:
CJNEA,#5,LOOP10
CLREX0
CJNER2,#23,LOOP11
MOVR2,#00H
LJMPLOOP15
LOOP11:
INCR2
LJMPLOOP15
LOOP10:
CJNEA,#6,LOOP12
CJNER1,#59,LOOP13
MOVR1,#00H
LJMPLOOP15
LOOP13:
INCR1
LJMPLOOP15
LOOP12:
CJNEA,#7,LOOP15
CJNER0,#59,LOOP14
MOVR0,#00H
LJMPLOOP15
LOOP14:
INCR0
LOOP15:
RET
JUDGE_Y1:
MOVA,R5
CJNEA,#0,N1
MOVA,R6
MOVB,#4
DIVAB
MOVA,B
CJNEA,#0,PINGNIAN1
LJMPN2
K1:
MOVA,S8
CJNEA,#9,LOOP1
MOVS8,#00H
LJMPFH
LOOP1:
INCS8
CJNEA,#8,FH
SETBTR0
FH:
RET
K2:
MOVA,S8
CJNEA,#1,LOOP2
CJNER6,#99,LOOP3
MOVR6,#00H
LJMPLOOP15
LOOP3:
INCR6
LJMPLOOP15
LOOP2:
CJNEA,#2,LOOP4
CJNER5,#99,LOOP5
MOVR5,#00H
LJMPLOOP15
LOOP5:
INCR5
LJMPLOOP15
LOOP4:
CJNEA,#3,LOOP6
CJNER4,#12,LOOP7
MOVR4,#01H
LJMPLOOP15
LOOP7:
INCR4
LJMPLOOP15
LOOP6:
CJNEA,#4,LOOP8
CJNER4,#2,LOOP32
LCALLJUDGE_Y1
LJMPLOOP15
LOOP32:
CJNER4,#4,N6
AJMPSMALL1
N6:
CJNER4,#6,N7
AJMPSMALL1
N7:
CJNER4,#9,N8
AJMPSMALL1
AJMPSMALL2
M6:
CJNER4,#6,M7
AJMPSMALL2
M7:
CJNER4,#9,M8
AJMPSMALL2
M8:
CJNER4,#11,MAX2
SMALL2:
CJNER3,#01,LOOP23
MOVR3,#30
LJMPLOOP30
LOOP23:
DECR3
LJMPLOOP30
MAX2:
CJNER3,#01,LOOP34
MOVR3,#31
LJMPLOOP30
LOOP34:
DECR3
LJMPLOOP30
LOOP22:
CJNEA,#5,LOOP24
CLREX0
CJNER2,#0,LOOP25
MOVR2,#23
LJMPLOOP30
LOOP25:
DECR2
LJMPLOOP30
LOOP24:
CJNEA,#6,LOOP26
CJNER1,#0,LOOP27
MOVR1,#59
LJMPLOOP30
LOOP27:
DECR1
LJMPLOOP30
LOOP26:
CJNEA,#7,LOOP30
CJNER0,#0,LOOP28
MOVR0,#59
LOOP28:
DECR0
LOOP30:
RET
JUDGE_Y2:
MOVA,R5
CJNEA,#0,M1
MOVA,R6
MOVB,#4
DIVAB
N1:
MOVA,R5
MOVB,#4
DIVAB
MOVA,B
CJNEA,#0,PINGNIAN1
N2:
CJNER3,#29,N3
MOVR3,#01H
LJMPN5
N3:
INCR3
LJMPN5
PINGNIAN1:
CJNER3,#28,N4
MOVR3,#01H
LJMPN5
N4:
INCR3
N5:
RET
K3:
MOVA,S8
CJNEA,#1,LOOP16
CJNER6,#0,LOOP17
MOVR6,#99
LJMPLOOP30
LOOP17:
DECR6
LJMPLOOP30
LOOP16:
CJNEA,#2,LOOP18
CJNER5,#0,LOOP19
MOVR5,#99
LJMPLOOP30
LOOP19:
DECR5
LJMPLOOP30
LOOP18:
CJNEA,#3,LOOP20
CJNER4,#01H,LOOP21
MOVR4,#12
LJMPLOOP30
LOOP21:
DECR4
LJMPLOOP30
LOOP20:
CJNEA,#4,LOOP22
CJNER4,#2,LOOP33
LCALLJUDGE_Y2
LJMPLOOP30
LOOP33:
CJNER4,#4,M6
MOVA,B
CJNEA,#0,PINGNIAN2
LJMPM2
M1:
MOVA,R5
MOVB,#4
DIVAB
MOVA,B
CJNEA,#0,PINGNIAN2
M2:
CJNER3,#01H,M3
MOVR3,#29
LJMPM5
M3:
DECR3
LJMPM5
PINGNIAN2:
CJNER3,#01H,M4
MOVR3,#28
LJMPM5
M4:
DECR3
M5:
RET
DELAY10MS:
MOVS3,#200
D4:
MOVS4,#200
D3:
DJNZS4,D3
DJNZS3,D4
RET
DELAY:
MOVS1,#5
D1:
MOVS2,#248
D2:
DJNZS2,D2
DJNZS1,D1
RET
END
课程设计总结与心得:
经过几周的准备与查阅资料,我总算是弄懂了设计的流程与原理。
本设计主分为硬件电路的设计排布与软件部分的编写仿真。
这些都是从课堂上学习与书籍资料查阅而来,不得不说让我懂得了许多。
其中让我更加了解89c51芯片的结构功能,让我学会了运用proteus仿真软件。
虽然在焊接一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 数字 时钟