微机原理课程设计(电子时钟)

  • 格式:doc
  • 大小:495.50 KB
  • 文档页数:17

下载文档原格式

  / 17
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子时钟课程设计

一:设计背景

电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。

二:数字钟电路设计思路

1.选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。时、分、秒的数值通过对8255的编程可送到七段数码管上显示。

2.此程序主要由四部分组成:

第一部分为最主要的部分定义显示界面;

第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;

第三部分将存在系统内存区的时间数用七段数码管显示出来;

第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。

该程序实现了准确显示秒和分,读数准确,走时精准。此电子钟能准确的从0时0分0秒走时到23时59分59秒,然后能自动回复到0时0分0秒循环走时。

3.基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示处理,使数码管的显示发生变化。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,

并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。最大记时23:59:59超过这个时间时分秒

位都清零从00:00:00重新开始。

8253芯片介绍

8253是NMOS工艺制成的可编程计数器/定时器,

有几种芯片型号,外形引脚及功能都是兼容的,

只是工作的最高计数速率有所差异,例如8253

(),8253-5(5MHz) 8253内部有三个计数器,

分别成为计数器0、计数器1和计数器2,他们

的机构完全相同。每个计数器的输入和输出都决

定于设置在控制寄存器中的控制字,互相之间

工作完全独立。每个计数器通过三个引脚和外部

联系,一个为时钟输入端CLK,一个为门控信号

输入端GATE,另一个为输出端OUT。每个计数器

内部有一个8位的控制寄存器,还有一个16位

的计数初值寄存器CR、一个计数执行部件CE和

一个输出锁存器OL。

8253芯片

8255芯片介绍

8255特性:

①一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.

②具有24个可编程设置的I/O口,

即使3组8位的I/O口为PA口,PB

口和PC口.它们又可分为两组12位

的I/O口,A组包括A口及C口 (高

4位,PC4~PC7),B组包括B口及C口

(低4位,PC0~PC3).A组可设置为基

本的I/O口,闪控(STROBE)的I/O闪

控式,双向I /O3种模式;B组只能设

置为基本I/O或闪控式I/O两种模

8255芯片

式,而这些操作模式完全由控制寄存器的控制字决定. 8255引脚功能:

RESET:复位输入线 , CS:芯片选择信号线 , RD:读信号线 , WR:写入信号 , D0~D7:三态双向数据总线 ,PA0~PA7:端口A

输入输出线 ,PB0~PB7:端口B输入输出线, PC0~PC7:端口C

输入输出线, A0,A1:地址选择线

三:程序流程图

三、电子表原理图:

四:程序代码

D8279 equ 200H C8279 equ 202H C8253 equ 20bH D82530 equ 208H D82531 equ 209H C82590 equ 210H

C82591 equ 211H

data segment

HOUR db 00

MINUTE db 00

SECOND db 008

STAT db 00

LED

db 31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00H DISBUF db 8 dup(0)

data ends

stack segment stack

dw 100 dup()

stack ends

code segment

assume cs:code,ds:data

START: MOV AX,DATA

MOV DS,AX

CLI

MOV AL,13H

MOV DX,C82590

OUT DX,AL

MOV AL,8

MOV DX,C82591

OUT DX,AL

MOV AL,1

OUT DX,AL

MOV AX,0

MOV ES,AX

LEA AX,INT0

MOV AX,CS

MOV ES:[4*8+2],AX

MOV DX,C8253

MOV AL,36H

OUT DX,AL

MOV DX,D82530

MOV AX,10000