单片机课程动静态显示设计方案docx.docx
- 文档编号:26646457
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:67
- 大小:137.02KB
单片机课程动静态显示设计方案docx.docx
《单片机课程动静态显示设计方案docx.docx》由会员分享,可在线阅读,更多相关《单片机课程动静态显示设计方案docx.docx(67页珍藏版)》请在冰豆网上搜索。
单片机课程动静态显示设计方案docx
单片机课程动静态显示设计方案
一、设计任务与要求
1.1设计背景
随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由
于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。
单片机以
其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能
仪器仪表、家电产品等领域。
近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的
需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、
数字闹钟等等。
单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟
的功能及工作顺序都非常熟悉。
但是却很少知道它的部结构以及工作原理。
由单
片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,
将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行定时、校
时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试。
1.2课程设计目的
通过《单片机原理与应用》课程设计,使学生掌握单片机及其扩展系统设计
的方法和设计原则及相应的硬件调试的方法。
进一步加深单片机及其扩展系统设
计和应用的理解
1.3设计要求
1、主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、
整点报时电路组成
2、秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶
体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用
60进制计
数器,每累计
60秒发出一个“分脉冲”信号,
该信号将作为“分计数器”的时钟脉冲。
“分
计数器”也采用
60进制计数器,每累计
60分钟,发出一个“时脉冲”信号,
该信号将被送
到“时计数器”。
“时计数器”采用
24进制计时器,可实现对一天
24小时的累计
3、译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,
通过六位LED七段显示器显示出来
4、校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的
二、总体方案设计
2.1电路的总体原理框图
根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:
单片机模块、数码
显示模块与按键模块,模块之间的关系图如下面得方框电路图1所示
晶振
单片机数码管显示
时间调整器
图1硬件电路方框图
2.2实现时钟计时的基本方法
利用STC系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1)计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位
秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs=50000μs
X=15536→10000→3CB0H
(2)采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3)从秒到分和从分到时的计时是通过累加和数值比较实现。
2.3电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在部RAM中设置显示缓冲区共8
个单元。
LED8LED7LED6LED5LED4LED3LED
2LED1
37H36H35H34H33H32H
31H30H
时十位时个位分隔分十位分个位分隔秒十
位秒个位
2.4电子钟的时间调整
电子钟设置3个按键通过程序控制来完成电子钟的时间调整。
A键按一次调整时,按第二次调整分钟,第三次推出时间调整;
B键对小时或分钟进行加一;
C键对小时或分钟进行减一;
2.5总体方案介绍
2.5.1计时方案
利用STC89C52单片机部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计
时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻
炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一
定的作用。
2.5.2控制方案
STC89C52的P0口和P1口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P1口作八个LED数码管的位控输出线,P3口外接四个按键A、B、C构成键盘电路。
STC89C52是一种低功耗,高性能的CMOS8位微型计算机。
它带有8KFlash可编程和
擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工
业上标准的80C51和80C52的指令系统及引脚兼容,片Flash集成在一个芯片上,可用与
解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的I/O便可完成,所
以本设计中采用此的设计方案。
三、数字钟的硬件设计
3.1最小系统
3.1.1芯片分析
STC89C52单片机引脚图如下:
图3-1STC89C52引脚图
MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:
VCC:
+5V电源。
VSS:
接地。
RST:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完
成单片机的复位初始化操作。
XTAL1和XTAL2:
外接晶体引线端。
当使用芯片部时钟时,此二引线端用于外接石英晶
体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P0口:
P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才
能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“
1”,使
FET截止,
以避免锁存器为“
0”状态时对引脚读入的干扰。
P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;
因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁
存器写“1”,使输出驱动电路的FET截止。
P2口:
P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。
P2
口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。
P3口:
P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。
当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输
出端数据输出通路的畅通。
当输出第二功能信号时,该位应应置“1”,使与非门对第二功
能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如表
3-1所示。
P3引脚
兼用功能
P3.0
串行通讯输入(RXD)
P3.1
串行通讯输出(TXD)
P3.2
外部中断0(INT0)
P3.3
外部中断
1(INT1)
P3.4
定时器0
输入(T0)
P3.5
定时器1
输入(T1)
P3.6
外部数据存储器写选通
WR
P3.7
外部数据存储器写选通
RD
表3-1
P3端口引脚兼用功能表
3.1.2晶振电路
右图所示为时钟电路原理图,在AT89S51芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
而在芯片部,XTAL1和XTAL2之间跨接晶体振荡器
和微调电容,从而构成一个稳定的自激振荡器。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
图3-2晶振电路
3.2数码显示模块设计
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,
单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示
器等。
LED显示器是现在最常用的显示器之一,如下图所示。
图3-4LED显示器的符号图
发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单
独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式
显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外
加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,
就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
图是共阳式、共阴
式LED数码管的原理图和符号。
图3-5共阳式、共阴式LED数码管的原理图和数码管的符号图
系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控
线。
动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然
在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔
时间足够短,就可以给人以同时显示的感觉。
四、系统软件设计
4.1软件设计分析
在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始
定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。
在主程序中,
对不同的按键进行扫描,实现秒表,时间调整,复位清零等功能。
4.2源程序清单
DISBEG
EQU30H
CALB
EQUP1.7
TIMCON
EQU2FH
ORG
0000H
;程序开始
LJMP
MAIN
ORG
0003H
;关外中断
0
RETI
ORG
000BH
;定时器T0中断程序入口
LJMP
INTT0
;跳至INTTO执行
ORG
0013H
;关中断1
RETI
ORG
001BH
;定时器
T1中断程序入口
LJMP
INTT1
;跳至INTT1执行
ORG
0023H
;关串行中断
RETI
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
;共阳段码表
"0""1""2""3""4""5""6""7""8""9""
不亮""A""-"
I_TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H
;
显示数"0
1
2
3
4
5
6
7
89
不亮C-A"
;
存数"01
2
3
4
5
6
7
8
90AH0BH0CH0DH"
;STAB表,启动时显示
2013年06月07日、A01-01-15(学号)用
STAB:
DB0AH,0AH,0AH,0AH,0AH,0AH,05H,01H,0CH,01H,00H,0CH,01H,00H,0DH,0AH,0AH
DB07H,00H,0CH,06H,00H,0CH,03H,01H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH
DLY1M:
MOV
R6,#14H
;1毫秒延时
DL_LOOP:
MOV
R7,#19H
DL_LOOP1:
DJNZ
R7,DL_LOOP1
DJNZ
R6,DL_LOOP
RET
DLY20M:
CLR
CALB
;20毫秒延时
LCALL
D_II_PLAY
LCALL
D_II_PLAY
LCALL
D_II_PLAY
SETB
CALB
RET
DL_LOOPS:
LCALL
DL05S
LCALL
DL05S
RET
DL05S:
MOV
R3,#20H
;8毫秒*32=0.196秒
DL05S1:
LCALL
D_II_PLAY
DJNZ
R3,DL05S1
RET
;程序开始;;
;整点报时用
CTIME:
MOVA,#10H
MOVB,79H
MULAB
ADDA,78H
MOVTIMCON,A
CLOOP:
LCALLDLY20M
LCALLDL_LOOPS
LCALLDL_LOOPS
LCALL
DJNZ
CLR
AJMP
DL_LOOPS
TIMCON,CLOOP
08H
MLOOP1
;主程序开始
MAIN:
LCALLST
;上电显示年月日及班级学号
MOV
R0,#00H
;清00H-7FH存单元
MOV
R7,#80H
;
MLOOP:
MOV
R0,#00H
;
INC
R0
;
DJNZ
R7,MLOOP
;
MOV
20H,#00H
;清20H(标志用)
MOV
7AH,#0AH;放入"熄灭符"数据
MOV
TMOD,#11H
;
设T0、T1为16位定时器
MOV
TL0,#0B0H
;50MS定时初值(
T0计时用)
MOV
TH0,#3CH
;50MS定时初值
MOV
TL1,#0B0H
;50MS定时初值(
T1闪烁定时用)
MOV
TH1,#3CH
;50MS定时初值
SETB
EA
;
总中断开放
SETB
ET0
;
允许T0中断
SETB
TR0
;
开启T0定时器
MOV
R4,#14H
;1
秒定时用计数值(50MS×20)
MOV
DISBEG,#70H
;显示单元为70-75H
;以下主程序循环
MLOOP1:
LCALL
D_II_PLAY
;调用显示子程序
JNB
P1.0,T_SETSC
;P1.0口为0时转时间调整程序
JNB
P1.1,DLY5
;秒表功能,
P1.1按键调时时作减
1加能
JNB
P1.2,FUNBT
;
秒表STOP,PUSE,CLR
JNB
P1.3,TSET
JB
08H,CTIME
AJMP
MLOOP1;P1.0
口为1时跳回MLOOP1
FUNBT:
LJMP
DLY6
TSET:
LCALL
DLY20M
JB
P1.3,MLOOP1
;
TS_LOOP:
JNB
P1.3,TS_LOOP
;等待键释放
JB
05H,CLRBELL
MOV
DISBEG,#50H
MOV
50H,#0CH
;"-"-
MOV
51H,#0AH
;"黑"
MINCHG:
SETB
EA
LCALL
D_II_PLAY
JNB
P1.2,DLY1
;
分加1
JNB
P1.0,DLY3
;
分减1
JNB
P1.3,DLY
;进入时调整
AJMP
MINCHG
CLRBELL:
CLR
05H
CLR
CALB
AJMP
MLOOP1
DLY:
LCALL
DLY20M
;消抖
JB
P1.3,MINCHG
LJMP
DLY8
;进入时调整
T_SETSC:
LJMP
R_SETTIM
;转到时间调整程序
R_SETTIM
DLY1:
LCALL
DLY20M
;消抖
JB
P1.2,MINCHG
DLY2:
LCALL
D_II_PLAY
;等键释放
JNB
P1.2,DLY2
CLR
EA
MOV
R0,#53H
;
LCALL
ADD_1
MOV
A,R3
;分数据放入A
CLR
C
;清进位标志
CJNE
A,#60H,ADD_M;
ADD_M:
JC
MINCHG
;小于60分时返回
ACALL
CLR_H
;大于或等于
60分时分计时单元清
0
AJMP
MINCHG
DLY3:
LCALL
DLY20M
;消抖
JB
P1.0,MINCHG
DLY4:
LCALL
D_II_PLAY;
等键释放
JNB
P1.0,DLY4
CLR
EA
MOV
R0,#53H
;
LCALL
SUB_M
LJMP
MINCHG
;以下秒表功能/时钟转换程序
;按下P1.1可进行功能转换
DLY5:
LCALL
DLY20M
JB
P1.1,T_MLOOP1
JNB
P1.1,$
CPL
03H
JNB
03H,DIS_SET
MOV
DISBEG,#60H
;显示秒表数据单元
MOV
60H,#00H
MOV
61H,#00H
MOV
62H,#00H
MOV
63H,#00H
MOV
64H,#00H
MOV
65H,#00H
MOV
TL1,#0F0H
;10MS定时初值()
MOV
TH1,#0D8H
;10MS定时初值
SETB
TR1
SETB
ET1
T_MLOOP1:
LJMP
MLOOP1
DIS_SET:
MOV
DISBEG,#70H;显示时钟数据单元
CLR
ET1
CLR
TR1
T_MLOOP11:
LJMP
MLOOP1
;以下秒表暂停清零功能程序
;按下P1.2暂停或清0,按下P1.1退出秒表回到时钟计时
DLY6:
LCALL
DLY20M
JB
P1.2,T_MLOOP11
T_EST11:
JNB
P1.2,T_EST11
CLR
ET1
CLR
TR1
T_EST22:
JNB
P1.1,DLY5
JB
P1.2,T_EST21
LCALL
DLY20M
JB
P1.2,T_EST22
T_EST55:
JNB
P1.2,T_EST51
MOV
60H,#00H
MOV
61H,#00H
MOV
62H,#00H
MOV
63H,#00H
MOV
64H,#00H
MOV
65H,#00H
T_EST33:
JNB
P1.1,DLY5
JB
P1.2,T_EST31
LCALL
DLY20M
JB
P1.2,T_EST33
T_EST44:
JNB
P1.2,T_EST41
SETB
ET1
SETB
TR1
AJMP
MLOOP1
;以下键等待释放时显示不会熄灭用
T_EST411:
LCALL
D_II_PLAY
AJMP
T_EST11
T_EST21:
LCALL
D_II_PLAY
AJMP
T_EST22
T_EST31:
LCALL
D_II_PLAY
AJMP
T_EST33
T_EST41:
LCALL
D_II_PLAY
AJMP
T_EST44
T_EST51:
LCALL
D_II_PLAY
AJMPT_EST55
;1秒计时程序
;T0中断服务程序
INTT0:
PUSH
ACC
;累加器入栈保护
PUSH
PSW
;状态字入栈保护
CLR
ET0
;关T0中断允许
CLR
TR0
;关闭定时器
T0
MOV
A,#0B7H
;中断响应时间同步修正
ADD
A,TL0
;低8位初值修正
MOV
TL0,A
;重装初值(低8位修正值)
MOV
A,#3CH
;高8位初值修正
ADDC
A,TH0
MOV
TH0,A
;重装初值(高8位修正值)
SETB
TR0
;开启定时器
T0
DJNZ
R4,I_INT0
;20次中断未到中断退出
A_DDS:
MOV
R4,#14H
;20
次中断到(1秒)重赋初值
CPL
07H
MOV
R0,#71H
;指向秒计时单元(
71H-72H)
ACALL
ADD_1
;调用加
1程序(加
1秒操作)
MOV
A,R3
;秒数据放入A(R3为2位十进制数组合)
CLR
C
;清进位标志
CJNE
A,#60H,A_DDM
A_DDM:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程 静态 显示 设计方案 docx