电子时钟设计最终版汇总.docx
- 文档编号:6660620
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:21
- 大小:161.79KB
电子时钟设计最终版汇总.docx
《电子时钟设计最终版汇总.docx》由会员分享,可在线阅读,更多相关《电子时钟设计最终版汇总.docx(21页珍藏版)》请在冰豆网上搜索。
电子时钟设计最终版汇总
前言
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
微型计算机原理控制在这种情况下诞生了。
截止今日,微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开微型计算机原理控制。
微机控制即微型计算机原理控制。
是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。
本文通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。
从而达到学习、了解微机原理控制的相关指令在各方面的应用。
系统由8253、8255、8259等构成,能实现时钟显示的功能,能进行分、秒的显示。
文章后附有电路原理图,电路接线图和程序清单,以供读者参考。
因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。
目录
第一章设计任务描述
1.1设计题目
1.2设计目的
1.3设计任务
1.4设计要求
第二章系统分析与设计
2.1设计环境及设备
2.2设计思路
第三章设计所用芯片及其结构
3.18259A芯片的内部结构及引脚
3.28255芯片的内部结构及引脚
3.38253芯片的内部结构及引脚
第四章电路实现
4.1分析论证
4.2设计电路图
4.3原理说明
4.4元件功能说明
4.5程序框图
第五章源程序编写
第一章设计任务描述
1.1设计题目
电子时钟程序设计
1.2设计目的
1.3设计任务
1.4设计要求
第二章系统分析与设计
2.1设计环境及设备
1、设计环境
PC机一台、xp系统、protel软件。
2、设计所用设备
8253定时器:
用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。
8255并口:
用做接口芯片,和小键盘相连。
8259中断控制器:
用于产生中断。
数码管:
用于显示时:
分:
秒。
2.2设计思路
电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。
其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。
这样,才能循环记时。
本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。
在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。
8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。
即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。
其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。
8259接收到信号后,产生中断信号送CPU处理。
第三章设计所用芯片及其结构
3.18259A芯片的内部结构及引脚
图3.18259A引脚图
1、中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
2、8259引脚图如图3.3,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用
8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
3、8259中断矢量地址与中断信号之间的关系如表3.1所示:
表3.18259A中断矢量表
中断序号
0
1
2
3
4
5
6
7
功能调用
08H
09H
0AH
0BH
0CH
0DH
0EH
0FH
矢量地址
20H
~
23H
24H
~
27H
28H
~
2BH
2CH
~
2FH
30H
~
33H
34H
~
37H
38H
~
3BH
3CH
~
3FH
说明
时钟
键盘
可用
可用
串行口
可用
可用
可用
3.28255芯片的内部结构及引脚
1、8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作:
方式0—基本输入/输出方式
方式1—选通输入/输出方式
方式2—双向选通输入/输出方式
8255引脚图如图3.2示,各引脚功能如下。
D7~D0——与CPU侧连接的八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器选择输入信号;
PA7~PA0——A口外设双向数据线;
PB7~PB0——B口外设双向数据线;
PC7~PC0——C口外设双向数据线;
RESET——复位输入信号
2、8255端口地址
表3.28255端口地址表
信号线
寄存器
编址
IOY3
A口
60H
B口
61H
C口
62H
控制寄存器
63H
3.38253芯片的内部结构及引脚
1、8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。
8253的功能用途是:
(1)
延时中断
(2)可编程频率发生器
(3)事件计数器
(4)二进倍频器
(5)实时时钟
(6)数字单稳
(7)复杂的电机控制器
2、8253有六种工作方式:
(1)方式0:
计数结束中断
(2)方式1:
可编程频率发生器
(3)方式2:
频率发生器
(4)方式3:
方波频率发生器
(5)方式4:
软件触发的选通信号
(6)方式5:
硬件触发的选通信号
3、8253引脚图如图3.3示,各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器地址输入信号;
CLK——计数输入,用于输入定时基准脉冲或计数脉冲;
OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;
GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
4、8253端口地址
表3.38253端口地址表
信号线
寄存器
编址
IOY2
0#计数器
40H
1#计数器
41H
2#计数器
42H
控制寄存器
43H
第四章电路实现
4.1分析论证
1、显示模块
利用数码管的显示功能来设计。
数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。
通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。
电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。
该模块主要是将时钟运算模块和对时模块运算出来并存放在内存单元里的十六进制表示的时位和分位数据转化十进制,并通过四个数码管显示出来。
该模块实现的硬件是TND86/88的LED-KEYBOARDUNIT。
2、时钟运算模块
该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。
该模块可以细分为秒定时模块和运算模块。
秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,可以选择TND86/88实验箱中的8253定时/计数器来提供,但又因为8253所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。
中断信号是8253的通道2工作方式为方式3时,产生一个40ms的脉冲信号。
运算模块负责时、分、秒的计算,该模块主要通过8259的IRQ7号中断来实现,首先将秒定时模块提供的中断信号为8259的IRQ7中断请求信号。
但由于每40ms一次中断请求。
所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值为25时,才能让秒单元内的数值加1。
另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时,时加1、分清零。
当时加到24啊,直接清零。
3、对时模块
该模块主要功能是修改时、分内存单元的数值。
在对时的时候,秒应停止不变,并且在对分进行调整的时,时单元内的数值不变。
由以上分析可见,对时、分的调整用两个优先级高于IRQ7的中断来完成。
因此,可以用8259的IRQ2中断来实现,两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用。
4.2设计电路图
电子时钟的完整电路图如下:
4.3原理说明
电子时钟主要由8259A中断控制器、8253定时/计数器、8255A接口芯片、LED数码显示管和两个按键组成。
主要用8259A的IRQ7的中断服务程序完成秒、分、时的运算即计时功能,IRQ6的中断服务程序完成调时、调分功能。
8253用来产生50ms的脉冲信号作为IRQ7的中断请求信号。
按键KK1+和KK2+分别作为IRQ2和IRQ6的中断请求信号。
按键KK1+启动/关闭对时功能。
它决定是否屏蔽IRQ7和IRQ6中断源。
8255A负责将内存里的时位和分位值输出到数码管
4.4元件功能说明
1、8259A的主要功能:
(1)每片8259A可管理8级优先级中断源,通过开关,最多可管理64级优先权的中断源。
(2)对任何一个级别的中断源都可单独进行屏蔽,使该级中断请求暂时被挂起,直到取消屏蔽时为止。
(3)能向CPU提供可编程的标识码。
(4)具有多种中断优先权管理方式。
有完全嵌套方式、自动循环方式、特殊循环方式、特殊屏蔽方式和查询方式五种。
这些管理方式均可通过程序动态地进行变化。
在本设计中用到了这四种功能,电子时钟的灵活调时功能就是通过对级别的屏蔽或开启来实现的。
2、8255A的主要功能:
可编程外设接口芯片可由程序改变其功能,通用性强、使用灵活。
通过8255A,CPU可直接同外设相连接,其负责CPU和外设之间的数据传送。
3、8253的主要功能:
可编程定时器/计数器,其定时与计数功能可由程序灵活地设定,设定后与CPU并行工作,不占用CPU的时间。
通道2工作在3方式下,提供计算一秒的中断请求信号。
4.5程序框图
1、显示模块流程图
2、中断服务程序IRQ7流程图
3、中断服务程序IRQ6流程图
4、中断服务程序IRQ2流程图
第五章原程序编写
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
DATASEGMENT
HDW000CH
MDW0000H
SDW0000H
COUNTDW0000H
OFFDW0000H
TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
7FH,6FH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
PUSHDS;把DS压入堆栈
MOVAL,81H;8255初始化A口方式0,输出,B口方式0,输出,
OUT63H,AL
MOVAX,0000H
MOVDS,AX;设置中断向量表,将内存段设置在最低端
MOVAX,OFFSETIRQ2;取中断处理子程序IRQ2首地址之段内偏移地址
ADDAX,2000H
MOVSI,0028H;4*n地址
MOV[SI],AX;将段内偏移地址写入中断向量表
MOVAX,0000H;使中断处理子程序IRQ2首地址之段地址为0
MOVSI,002AH;4*n+2地址
MOV[SI],AX;将段地址写入中断向量表48*n+2处
MOVAX,OFFSETIRQ6;取中断处理子程序IRQ2首地址之段内偏移地址
ADDAX,2000H
MOVSI,0038H
MOV[SI],AX
MOVAX,0000H;使中断处理子程序IRQ2首地址之段地址为0
MOVSI,003AH
MOV[SI],AX
MOVAX,OFFSETIRQ7;取中断处理子程序IRQ6首地址之段内偏移地址
ADDAX,2000H
MOVSI,003CH
MOV[SI],AX
MOVAX,0000H;使中断处理子程序IRQ7首地址之段地址为0
MOVSI,003EH
MOV[SI],AX
MOVAL,0B6H;8253初始化,计数器2,先低后高两字节,方式3,二进制计数
OUT43H,AL;写入控制字
MOVAL,68H
OUT42H,AL;写入低字节
MOVAL,0BAH
OUT42H,AL;写入高字节
POPDS;把DS弹出堆栈
MOVAL,1B;8259初始化,写ICW1
OUT20H,AL
MOVAL,70H;写ICW2,写中断向量码
OUT21H,AL
MOVAL,7BH;写OCW1,屏蔽IRQ6中断,开IRQ2和IRQ7
OUT21H,AL
BEGIN:
CALLDIS;调用显示程序
STI;使IF置1,开中断
JMPBEGIN
IRQ7:
INCCOUNT
CMPCOUNT,25;判断是否到1秒
JNZRETURN
MOVAX,0
MOVCOUNT,AX;够1秒时将COUNT清零
MOVAX,S;取秒
INCAX;秒加1
MOVS,AX
CMPAX,003CH;判断是否到60秒
JNZRETURN
MOVAX,0
MOVS,AX;秒清零
MOVBX,M;取分
INCBX;分加1
MOVM,BX
CMPBX,003CH;判断是否到60分
JNZRETURN
MOVBX,0
MOVM,BX;分清零
MOVDX,H;取时
INCDX;时加1
MOVH,DX
CMPDX,0018H;判断是否到24小时
JNZRETURN
MOVDX,0
MOVH,DX;时清零
RETURN:
MOVAL,7BH
OUT21H,AL;写OCW1,屏蔽IRQ6中断,开IRQ2和IRQ7
MOVAL,20H
OUT20H,AL;写OCW2,一般EOI
IRET;中断返回
IRQ6:
MOVAX,OFF;取,OFF值
CMPAX,0001H;判断OFF是否为1
JNZHR否,转到HR
MOVBX,M;取分
INCBX;分加1
MOVM,BX
CMPBX,003CH;判断是否到60分
JNZR0
MOVBX,0
MOVM,BX;到60分则清零
JMPR0
HR:
CMPAX,0002H;判断OFF是否为2
JNZR0
MOVBX,H;取时
INCBX;时加1
MOVH,BX
CMPBX,0018H;判断是否到24小时
JNZR0
MOVBX,0
MOVH,BX;时清零
R0:
MOVAL,0BBH;初始化8259
OUT21H,AL;写OCW1,屏蔽IRQ7中断,开IRQ2和IRQ6
MOVAL,20H
OUT20H,AL;写OCW2,一般EOI
IRQ2:
INCOFF;加1
MOVBX,OFF;取OFF值
CMPBX,0003H;判断OFF是否为3
JZR1;是则转到R1
CMPBX,0001H;判断OFF是否为1
JZR2;是则转到R2
CMPBX,0002H;判断OFF是否为2
JZR2;是则转到R2
R1:
MOVBX,0000H
MOVOFF,BX;OFF清零
MOVAL,7BH;8259初始化
OUT21H,AL;写OCW1,屏蔽IRQ6中断,开IRQ2和IRQ7
MOVAL,20H
OUT20H,AL;写OCW2,一般EOI
IRET
R2:
MOVAL,0BBH;初始化8259
OUT21H,AL;写OCW1,屏蔽IRQ7中断,开IRQ2和IRQ6
MOVAL,20H
OUT20H,AL;写OCW2,一般EOI
IRET
DIS:
PUSHAX
MOVSI,3000H
MOVAX,M;取分
MOVBL,10
DIVBL;将分的十六进制转为十进制
MOV[SI],AH;存分个位
MOV[SI+1],AL;存分十位
MOVAX,H;取时
MOVBL,10
DIVBL;将时的十六进制转为十进制
MOV[SI+2],AH;存分个位
MOV[SI+3],AL;存分十位
MOVDL,0F7H;使分个位的数改变
MOVAL,DL
AGAIN:
OUT60H,AL
MOVAL,[SI]
MOVBX,OFFSETTABLE;取TABLE中的偏移地址放到BX中
ANDAX,00FFH;取低八位
ADDBX,AX
MOVAL,[BX];找到对应的数码管字符
OUT61H,AL;输出相应数字
CALLDALLY
INCSI;取下一个数
MOVAL,DL
TESTAL,01H判断DL最低位是否为1
JZOUT;是则跳出
RORAL,1;使AL向右循环移位,将最低位移到最高位
MOVDL,AL
JMPAGAIN
OUT:
POPAX
RET
DALLY:
PUSHCX
MOVCX,000FH
T1:
MOVAX,0020H
T2:
DECAX
JNZT2
LOOPT1
POPCX
RET
CODEENDS
ENDSTART
第六章电子时钟使用说明
本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:
开机运行后,即显示初始时间12:
00整。
按动一下KK1+按键即可启动调分,此时每按动一下KK2+按键分位数字加1,完成对分的调整;再按动一下KK1+按键启动调分,此时每按动一下KK2+按键时位加1,完成对时的调整。
再按一下KK1+按键即关闭功能正常计时。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 时钟 设计 最终版 汇总