电子时钟课程设计.docx
- 文档编号:7577671
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:11
- 大小:20.59KB
电子时钟课程设计.docx
《电子时钟课程设计.docx》由会员分享,可在线阅读,更多相关《电子时钟课程设计.docx(11页珍藏版)》请在冰豆网上搜索。
电子时钟课程设计
引言
通过这学期对单片机课程的学习,我们已经对单片机的内部结构、引脚功能及其指令系统、程序设计、中断系统有了一个明确的概念,对其内部定时/U-数器及应用,还有单片机的扩展和接口技术作了认真的学习。
本课程设计的LI的就是要让我们将所学的知识应用于实践中去,激发我们的创新思维,提高我们的动手能力。
电子时钟设讣,就是要求我们在掌握MCS-51系列单片机定时/讣数、中断系统的工作原理、行列式矩阵键盘的工作原理以及处理程序的基础之上,利用MCS-51系列单片机定时器和LED等器件设计一个时、分、秒都可以调整的电子时钟。
第一章设计方案和原理
1.2设计方案
在本次电子时钟设计中,我们采用了8155芯片做单片机的并行接口扩展,
8155片内有256B静态RAM、2个8位、1个6位的1\0口和1个14位定时\计数器(减1计数器),利用8155扩展1\0口组成的行列式矩阵键盘来调整时钟的秒位、分位、小时位,通过修改程序实现。
通过LED动态显示方式,来显示时间。
LED1、LED2用来显示时间的秒位,LED3、LED4用来显示时间的分钟和LED5、LED6用来显示时间的秒值。
以上电后,LEDi显示000000(i=l>2、3、4、5、6)。
8155在8031单片机应用系统中的RAM和1\0口是按外部数据存贮器统一编址的,为16位地址。
其高8位提供CE(低电平有效)和IO\M的输入信号,低8位地址由8031的PO口(连接8155芯片地址线AD0-AD7))确定。
在本次设计中8155的PAD、PB口分别作为显示器接口的位控口和段控口,PAD、PC口分别为键盘接口的列线输入口和行线输出口。
本次设计中我们采用了MCS-51系列单片机中的8031单片机,8031釆用40引脚双列直插封装(DIP)方式,主要应用的引脚有P0口、P2口、WR、RD等。
1.2LED动态显示原理
LED显示方式有静态显示和动态显示两种,但曲于静态显示占用1\0口资源多,所以在此次设计中采用动态扫描显示,即逐个循环点亮各个LED。
这样虽然在任意时刻只有一个LED点亮,但是由于人眼具有视觉暂留效应,看起来与全部显示器持续点亮的效果一样,只要按地址输出相应的数据,就可以实现对LED控制。
因此我们采用了6位共阴极LED动态显示接口电路。
LED显示器中的发光二极管共有两种连接方法:
•共阳极接法。
把发光二极管的阳极连接在一起构成的公共阳极。
使用时公共阳极接+5v。
这样阳极输入低电平的段发光二极管就导通点亮,而输入高电平的则不亮。
•共阴极接法。
把发光二极管的阴极连接在一起构成的公共阳极。
使用时公共阴极接地,这样阳极端输入高电平大的段发光二极管就导通点亮,而输入低电平的则不点亮。
为了存放显示的数字或字符,通常在内部RAM中设置显示缓冲区,其单元个数与LED显示器位数相同。
假定在设计中的显示器的缓冲单元是79~7EH,与LED显示器的对应关系为:
LED6
LED5
LED4
LED3
LED2
LED1
7EH
7DH
7CH
7BH
7AH
79H
动态扫描是从右向左进行,则缓冲区的首地址是应为79H。
1.3行列式矩阵键盘的工作原理
所谓行列式键盘就是键盘的键按行、列构成矩阵,在行列的交点上都对应有一个键,其工作原理就是键识别的问题。
•粗判有无键按下。
在全部列线输出低电平时,读取行线状态,若全部为“1”则无键按下,若某行线出现“0”则有键按下。
•按键去抖动。
确定键按下时,延时10ms左右,在进行列扫描。
•识别具体按键。
列线逐列为低,其它为高,然后再读取行线状态,若某行为低,记录此时的列值,则键码二行首键号+列值。
•求键值。
MOVA,@A+DPTR
•等待按键释放
1.4定时/计数器工作原理
MCS-51系列单片机有两个16位的定时/讣数器T0和T1,它们的工作摸式有定时和计数,在这两种模式下乂有不同的工作方式,通过寄存器TMOD设置。
当工作在定时方式时,设计数脉冲来自单片机内部,振荡信号十二分频后做计数脉冲,每个机器周期的时间使计数器加1,山于计数脉冲的频率是固定的,故可通过设定初值来实现定时功能。
在本次设计中,我们采用定时/计数器0,以工作方式1进行125ms的定时。
则(216—X)=125000)所以得出X=0BDCH«
第二章硬件设计
2.1硬件说明
•系统显示说明。
采用LED动态显示,因为时钟时间在六位数码管上进行显示,为此在内部RAM重要设置显示缓冲区,共六个地址单元。
显示缓冲区从左向右依次存放时、分、秒的数值。
•系统按键。
键扫描电路山8155的PA0-PA5的六列和PC0-PC3的四行组成4*6矩阵键盘,LED显示,8155的A口为位控口(输出口)、B口为段空口(输入口),通过按键实现时间的修改。
•所用的芯片及元件:
8031、8155、74LS07.电阻等。
2.2电路图
第三章软件设计
•中断服务程序。
中断服务程序的主要功能是进行计时操作,等待125ms定时中断的来临。
程序开始先判断溢出是否满了8次,不满8次表明还没到最小汁时单位秒,中断返回;如满8次则表明已到最小计时单位秒,程序继续向下执行,进行计时操作。
•显示程序。
PA口为位控口地址7F01HH,命令寄存器地址为7F00H,PB口为段空口地址7F02Ho在动态扫描过程中,调用子程序DL,期延迟时间大约lmso这是为了使扫描到的那位显示器稳定的亮一段时间,以保证其显示器亮度。
本接口电路是软件接口电路,对显示数据一查表方法得到其字型码,为此在程序中有字形代码表DSEGo从0开始依次写入十六进制数的字形代码表。
为了进行查表指令,使用查表指令MOVCA,@A+DPTRR,由PC提供16位变址。
LED显示程序是作为一个子程序供监控程序调用。
•键盘扫描程序。
本设计以8255做键盘接口,A口为输出口键盘列线,C口为输入口键盘行线,此时,A口地址为7F01H,C口地址为7F03H地址为。
在该程序中共调用二个子程序,分别为:
DELAY具有延时功能,其延时时间为6ms.
KSI判断子程疗;,是否有键闭合。
•主程序的初始化。
片内数据存贮器初始化,显示缓冲区初始化,定时\计•数器初始化。
定时\汁数器定时单位为125ms,工作方式选择工作方式1,允许中断。
在中断服务子程序中,利用软件计数8次,可实现定时Is。
利用软件计数60次,可实现定时Imino利用软件计数60次,可实现定时lho
3.2程序流程图
主程序流程图
中断服务程序流程图
键盘扫描子程序图
3.3程序清单
中断服务子程
START:
ORG0000H
AJMPMAIN
ORGOOOBH
ORG0100H
MAIN1:
MOV
SP,#60H
;确立堆栈区
MOV
RR0,#79H
;显示缓冲区首地址
MOV
R7,#06H
;显示位数
ML1:
MOV
@RO,#OOH
:
显示缓冲单元清零
INC
RO
DJNZ
R7,ML1
MOV
TMOD,#01H
MOV
TLO,#ODCH
MOV
THO,#OBH
SETB
8CH
SETB
AFH
SETB
A9H
MOV
30H,#08H
MLO:
ACALL
DIR
;调用显示子程序
SJMP
MLO
PITO:
PUSH
PSW
:
终端服务程序现场保护
PUSH
ACC
SETB
PSW.3
MOV
TLO,#ODCH
;计数器重新加载
MOV
#OBH
MOV
A,30H
:
循环次数减1
DEC
A
MOV
30H,A
JNZ
RETO
MOV
30,#08H
MOV
RO,7AH
ACAL
DAAD1
MOV
A,R2
XRL
A,#60H
JNZ
RETO
ACALL
CLRO
MOV
R0,7CH
ACALL
DAAD1
MOV
A,R2
XRL
A,#24H
:
判是否到24时
JNZ
RETO
ACALL
CLRO
RETO:
POP
ACC
:
现场保护
POP
PSW
ERT1
DAAD1:
MOV
A,@RO
:
加1子程序,十位送A
DEC
RO
SWAP
A
ORL
A,@RO
ADD
A,01H
DA
A
:
十进制调整
MOV
R2,A
ANL
A,OFH
MOV
@RO,A
MOV
A,R2
INC
RO
ANL
A,#OFOH
SWAP
A
MOV
@RO,A
ERT
CLRO:
CLR
A
:
清缓冲单元子程序
MOV
@RO,A
DEC
RO
RET
显示子程序
DIR:
MOV
A,#03H
;8155初始化
MOV
DPTR,#7F00H
MOVX
@DPTR,A
MOV
R0,#79H:
建立缓冲区首地址
MOV
R3,#OFEH
MOV
A,R3
LDO:
MOV
DPTR,#7F02H
MOVX
@DPTR,A
MOV
DPTR,#7F01H
MOV
A,@R0
DIRO:
ADD
A,#ODH
MOVC
A,@A+PC;查表取字形码
DIR1:
MOVX
@DPTR,A
ACALL
DL
INC
RO
MOV
A,R3
JNB
ACC.5,LD1;判是否到最高位,到则返回
RL
A
MOV
R3,A
AJMPLDO
LD1:
RET
DSEG:
DB03FH,06HQ5BH,04FH,66H,06DH;字形代码表
DB07DH,07H,07FH,06FH,77H,07CH
DB39H,05EHz79H,71H,00H
LOOP:
NOP
NOP
DJNZR5丄OOP
RET
键盘扫描子程序
KSI:
MOV
DPTR,#7FO1H
MOV
A,#00H
MOVX
@DPTR,A
INC
DPTR
INC
DPTR
MOVX
A,@DPTR
CPL
A
ANL
A,#OFH
RET
KEY1:
ACALL
KS1;
检查有键闭合否
JNZ
LK1
Nl:
ACALL
DELAY:
去抖动
AJMP
KEY1
LK1:
ACALL
DELAY
ACALL
DELAY
ACALL
KS1
JNZ
LK2
ACALL
DELAY
AJMP
KEY1
LK2:
MOV
R2,#FEH
MOV
R4,#00H
;扫描列号送R4
LK4:
MOV
DPTR,#7F01H
;建立A口地址
MOV
A,R2
MOVX
@DPTR,A
;扫描初值送A口
INC
DPTR
INC
DPTR
MOVX
A,@DPTR
JB
ACC.OLONE
MOV
A,#OOH
:
装第零行行值
AJMP
LKP
LONE:
JB
ACC.1,LTWO
MOV
A,#08H
AJMP
LKP
LTOW:
JB
ACC.2LTHR
MOV
A,#0H
AJMP
LKP
LTHR:
JB
ACC.3,NEXT
MOV
A,#18H
LKP:
ADD
A,R4
:
计算键码
PUSH
ACC
:
保护键码
LK3:
ACALL
DELAY
:
延时6ms
ALALL
KS1
;查有键是否闭合,若闭合再延时
JNZ
LK3
POP
ACC
;若键起,则键码送A
RET
NEXT:
INC
R4
;扫描列号加1
MOV
A,R2
JNB
ACC.5,KND
;第五位为0,已扫描完最高行则转KND
RL
A
MOV
R2,A
AJMP
LK4
KND:
AJMP
KEY1
:
扫描完毕,开始新一次的扫描
DELAY:
MOVR7,#03H
DL:
MOV
R6,#0FFH
;延时6ms子程序
DL1:
NOP
NOP
DJNZ
R6ZDL1
DJNZ
R7ZDL
RET
第四章
小结及参考文献
4.1小结
通过此次课程设讣,我们熟悉了数码管的显示原理、键盘的扫描原理、
“串转并”原理和1\0口的展方法。
同时也使我们再次对指令系统有了更深的理解,培养了我们运用这些指令进行编程的能力。
电子时钟的设计方案有好多种,在这个设计中以我们本学期所学的知识为主而进行的设计。
4.2参考文献
1.李华.单片机原理及应用.兰州大学出版社
2.蔡明文.单片机课程设讣.华中科技大学出版社
3.王新颖.单片机原理及应用.北京大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 时钟 课程设计