人人范文网 范文大全

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

发布时间:2020-03-02 13:05:34 来源:范文大全 收藏本文 下载本文 手机版

电子时钟课程设计

一:设计背景

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

二:数字钟电路设计思路

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,同理由数码管显示1h.CPU处理,使数码管的显示发生变化。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。最大记时23:59:59超过这个时间时分秒位都清零从00:00:00重新开始。 8253芯片介绍

8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz) 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制 字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数 器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

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芯片

8253芯片

式,而这些操作模式完全由控制寄存器的控制字决定.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

aume 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

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV DX,C8253

MOV AL,36H

OUT DX,AL

MOV DX,D82531

MOV AX,100

OUT DX,AL

MOV AL,AH

OUT DX,AL

MOV DX,C8279

MOV AL,00H

OUT DX,AL

MOV AL,34H

OUT DX,AL

MOV AL,0D2H

OUT DX,AL

MOV STAT,0

MOV DX,C82591

MOV AL,0FEH

OUT DX,AL

WAIT1:

MOV DX,C8279

IN AL,DX

MOV AH,AL

AND AL,80H

JNE WAIT1

MOV AL,AH

AND AL,0FH

CMP AL,00H

JE WAIT1

MOV AL,40H

OUT DX,AL CHK: MOV DX,D8279

IN AL,DX

CMP AL,33H

JNE BBB

MOV DX,C82591

MOV AL,0FFH

OUT DX,AL

MOV AL,STAT

INC AL

MOV STAT,AL

CMP AL,1

JNZ AA1

MOV SI,OFFSET DISPBUF

MOV CX,4

MOV AL,00 BB0: MOV [SI],AL

INC SI

LOOP BB0

CALL DISP

JMP CHK AA1: CMP AL,2

JNZ AA2

MOV SI,OFFSET DISPBUF

MOV AL,00

MOV [SI],AL

INC SI

MOV [SI],AL

ADD SI,2

MOV [SI],AL

INC SI

MOV [SI],AL

CALL DISP

JMP CHK AA2: CMP AL,3

JNZ AA3

MOV SI,OFFSET DISPBUF+2

MOV CX,4

MOV AL,00 BB1: MOV [SI],AL

INC SI

LOOP BB1

CALL DISP

JMP CHK AA3: MOV STAT,00

MOV AL,0FEH

MOV DX,C82591

OUT DX,AL

CALL FULLSFM

CALL DISP

JMP CHK BBB: CMP AL,3BH

JE BBB0

JMP CCC BB0: MOV AL,STAT

CMP AL,1

JNZ BBB1

MOV AL,HOUR

ADD AL,1

DAA

MOV HOUR,AL

CALL FULLSH1

CALL DISP

JMP BBB BBB1: MOV AL,STAT

CMP AL,2

JNZ BBB3

MOV AL,MINUTE

ADD AL,1

DAA

MOV MINUTE,AL

CALL FULLFEN

CALL DISP

JMP BBB BBB3:

MOV AL,STAT

CMP AL,3

JZ

BBB4

JMP

DDD BBB4:

MOV AL,SECOND

ADD AL,1

DAA

MOV SECOND,AL

CALL FULLMIAO

CALL DISP

JMP BBB

CCC:

CMP AL,3AH

JE CC0

JMP DDD CC0:

MOV AL,STAT

CMP AL,1

JNZ CCC1

MOV AL,HOUR

SUB AL,1

DAS

MOV AL,HOUR

SUB AL,1

ADD AL,1

DAA

MOV SECOND,AL

CMP AL,60H

JNZ FANHUI

MOV SECOND,0

MOV AL,MINUTE

ADD AL,1

DAA

MOV MINUTE,AL

CMP AL,60H

JNZ FANHUI

MOV MINUTE,0

MOV AL,HOUR

ADD AL,1

DAA

MOV HOUR,AL

CMP AL,24H

JNZ FANHUI

MOV HOUR,0

CALL FULLSFM

CALL DISP

POP SI

POP DI

POP BX

POP AX

IRET FULL

SFM PROC NEAR

LEA DI,DISBUF

LEA BX,LED

LEA SI,SECOND

MOV CX,3 AA4:

MOV AL,[SI]

AND AL,0FH

XLAT

MOV [DI],AL

INC DI

MOV AL,[SI]

PUSH CX

MOV CL,4

SHR AL,CL

AND AL,0FH

XLAT

MOV [DI],AL

INC DI

POP CX

INC SI

LOOP AA4

RET FULL

SFM ENDP FULL

SHI PROC NEAR

LEA SI,DISBUF

MOV AL,0

MOV CX,4 CCC0:

MOV [SI],AL

INC SI

LOOP CCC0

LEA BX,LED

MOV AL,HOUR

AND AL,0FH

XLAT

MOV [SI],AL

XLAT

MOV [SI],AL

MOV AL,HOUR

MOV CL,4

SHR

AL,CL

AND AL,0FH

XLAT

INC

SI

MOV

[SI],AL

RET FULL

SHI ENDP FULL

FEN PROC NEAR

LEA SI,DISBUF

MOV AL,0

MOV [SI],AL

INC SI

MOV [SI],AL

INC SI

LEA BX,LED

MOV

AL,MINUTE

AND AL,0FH

XLAT

MOV

[SI],AL

MOV AL,MINUTE

MOV

CL,4

SHR AL,CL

AND AL,0FH

XLAT

INC SI

MOV

[SI],AL

RET FULL

FEN ENDP FULL

MIAO PROC NEAR

LEA SI,DISBUF

LEA BX,LED

MOV AL,SECOND

AND AL,0FH

XLAT

MOV [SI],AL

MOV AL,SECOND

MOV CL,4

SHR AL,CL

AND AL,0FH

XLAT

INC SI

MOV [SI],AL

MOV AL,0

INC SI

MOV [SI],AL

INC SI

MOV [SI],AL

INC SI

MOV [SI],AL

INC SI

MOV [SI],AL

RET FULL MIAO ENDP DISP

PROC NEAR

MOV CX,8

MOV DX,D8279

LEA SI,DISBUF DISI

MOV AL,[SI]

OUT DX,AL

INC SI

LOOP DISI

RET CODE ENDS

END START

微机原理课程设计电子闹钟

微机原理课程设计

微机原理课程设计

微机原理课程设计

微机原理课程设计

微机原理课程设计

微机原理课程设计

微机原理课程设计

微机原理课程设计题目

微机原理课程设计题目

微机原理课程设计(电子时钟)
《微机原理课程设计(电子时钟).doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档