《微机电子钟设计 网络整理》由会员分享,可在线阅读,更多相关《微机电子钟设计 网络整理(32页珍藏版)》请在金锄头文库上搜索。
1、1课 程 名 称 微机原理及应用 目 录一、设计任务 3二、总体方案 3三、原理框图 3-4四、系统模块详细设计与调试 52五、设计总结 6六、参考文献 6七、附件材料 7-12电子钟设计一、设计任务利用 8253 可编程定时/计数器、8259 中断控制器、8255 可编程并行接口芯片和七段数码管设计一个电子钟的电路,并编制一程序使得该电子钟能正常运行。电子钟除了能够完成正常的计时、显示功能外,还必须具备正常时、分、秒的数值显示功能、时间设定功能等。设计绘制相应的硬件电路原理图并完成接线。编制相应控制程序实现电子钟的计时、显示等功能。控制程序设计规范,应有适当的注释,表达清楚。钟的时分秒显示分
2、别采用两个 8 段 LED 数码管实现,显示方法可根据实际情况采用动态或静态显示。二、总体方案利用 8253 做定时器,用定时器输出的脉冲控制 8259 产生中断,在 8259 中断处理程序中,对时、分、秒进行计数,在等待中断的循环中,采用计算机内部自带的 8255 芯片,利用 LED 显示时间。在主程序中要分别对8253、8259、8255 进行初始化编程,8253 的计数器 1 可在方式 3 下工作。在中断服务程序中对中断次数进行统计,当满 10 次时就进行一次时、分、秒的处理。时、分、秒分别对应 6 个存储单元,分别存放时、分、秒的个位和十位。当中断次数满 10 次时,将秒的个位加 1,
3、判断是否到 10,如到了则十位加 1,个位清零;再判断十位是否到了 6,如到了则十位清零,分的个位加 1,同理对分、时作相应处理。七段数码管显示作为子程序,将时、分、秒对应存储单元的内3容分别取出并转换成相应的代码,利用缓冲区和延时子程序进行显示。三、原理框图上图为主程序流程图;下图为中断服务程序流程图;4四、系统模块详细设计与调试1在主程序中要分别对 8253、8259、8255 进行初始化编程。具体如下:58253 的方式控制字:MOV AX,0MOV DS,AXMOV AL,76H MOV DX,CONTROLOUT DX,AL利用 8253 计数器 1 分频:MOV AX,62500
4、MOV DX,COUNT1OUT DX,ALMOV AL,AHOUT DX,AL8259 初始化命令字和操作命令字:MOV DX,CS8259AMOV AL,ICW1OUT DX,ALMOV DX,CS8259BMOV AL,ICW2OUT DX,ALMOV AL,ICW4OUT DX,ALMOV AL,OCW1OUT DX,AL利用计算机内部 8255:MOV AL,MD8255MOV DX,CTL8255OUT DX,AL2 6 位 8 段码 LED 显示采用动态方式显示,8 位段码和 6 位位码是由实验箱内部的两片 74LS374 输出。8 位段码和 6 位位码的输出地址有 KEY/LE
5、D CS 片选信号决定。显示程序中,首先将时、分、秒对应存储单元的内容分别取出并转换成相应的代码,再利用缓冲区和延时子程序进行显示。3用定时器 8253 输出的脉冲控制 8259 产生中断,在中断服务程序中对中断次数进行统计,当满 10 次时就进行一次时、分、秒的处理。中断服务程序详见程序中 IENTER 模块:IENTER PROC NEARPUSH AXPUSH DXINC SECOND ;秒加 1MOV AL,SECONDCMP AL,60 ;秒数与 60 比较JNE EXITMOV SECOND,0 ;秒清零INC MINUTE ;分加 16MOV AL,MINUTE CMP AL,6
6、0 ;分数与 60 比较 JNE EXITMOV MINUTE,0 ;分清零INC HOUR ;时加 1MOV AL,HOURCMP AL,24 ;时数与 24 比较JNE EXITMOV HOUR,0 ;时清零4利用伟福 6000 系统输入完整程序后进行编译,编译正确后在实验箱上进行线路连接,具体连接方法如下:8253 用计数器 1,片选信号接 CS4,地址为 0C000H,8253 时钟源 CLK1 接分频电路的 F/64 输出,分频器的 PIN 接 4MHZ时钟,8253 的 GATE1 接 VCC,8259 中断 INT0 接 8253 的 OUT1,片选接 CS5,地址为 0DOOO
7、H,显示电路的 KEY/LED CS 接 CS0,地址为 8000H。连接正确后打开实验箱的电源,将程序下载到实验箱,启动全速执行,便可在实验箱上了数码管上看到正确的时、分、秒的显示了。五、设计总结六、参考文献微机原理实验与课程设计指导书 ,陆红伟编,中国电力出版社,2006年8086 微型计算机组成、原理及接口 ,顾滨,机械工业出版社,2001微型计算机原理及应用,吕淑萍等,哈尔滨工程大学出版社,2004 年微型计算机技术及应用 ,戴梅萼,清华大学出版社,2005七、附件材料完整程序如下:CONTROL EQU 0C003H ;8253 控制口COUNT0 EQU 0C000HCOUNT1
8、EQU 0C001HCOUNT2 EQU 0C002HMD8255 EQU 82H ;8255 控制字PA8255 EQU 8000H CTL8255 EQU 8003H OUTBIT EQU 08002H ;位控制口OUTSEG EQU 08004H ;段控制口ICW1 EQU 00010011B ;单片 8259,上升沿中断,要写 ICW4ICW2 EQU 00100000B ;中断号为 20HICW4 EQU 00000001B ;工作在 8086/88 方式7OCW1 EQU 11111110B ;只响应 INT0 中断CS8259A EQU 0D000H ;8259 地址CS8259
9、B EQU 0D001HDATA SEGMENTCNT DB 0LEDBUF DB 6 DUP(?) ;显示缓冲NUM DB 1 DUP(?) ;显示的数据DELAYT DB 1 DUP(?)HOUR DB 0MINUTE DB 0SECOND DB 0LEDMAP: ;八段管显示码DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATADELAY PROC NEAR ;延时子程序PUSH AXPUSH CXMOV AL,0MOV
10、 CX,AXLOOP $POP CXPOP AXRETDELAY ENDPDISPLAYLED PROC NEARMOV BX,OFFSET LEDBUFMOV CL,6 ;共 6 个八段管MOV AH,00100000B ;从左边开始显示DLOOP:MOV DX,OUTBITMOV AL,0OUT DX,AL ;关所有八段管MOV AL,BXMOV DX,OUTSEGOUT DX,ALMOV DX,OUTBITMOV AL,AHOUT DX,AL ;显示一位八段管PUSH AXMOV AH,1CALL DELAY8POP AXSHR AH,1INC BXDEC CLJNZ DLOOPMOV
11、DX,OUTBITMOV AL,0OUT DX,AL ;关所有八段管RETDISPLAYLED ENDPIENTER PROC NEARPUSH AXPUSH DXINC SECOND ;秒加 1MOV AL,SECONDCMP AL,60 ;秒数与 60 比较JNE EXITMOV SECOND,0 ;秒清零INC MINUTE ;分加 1MOV AL,MINUTE CMP AL,60 ;分数与 60 比较 JNE EXITMOV MINUTE,0 ;分清零INC HOUR ;时加 1MOV AL,HOURCMP AL,24 ;时数与 24 比较JNE EXITMOV HOUR,0 ;时清零
12、EXIT:MOV DX,CS8259AMOV AL,20HOUT DX,AL ;结束本次中断POP OP AXIRETIENTER ENDPIINIT PROC ;初始化 8259 的命令字和操作命令字MOV DX,CS8259AMOV AL,ICW1OUT DX,ALMOV DX,CS8259BMOV AL,ICW2OUT DX,ALMOV AL,ICW49OUT DX,ALMOV AL,OCW1OUT DX,ALRETIINIT ENDPSTART:MOV AX,DATAMOV DS,AXMOV HOUR,0 ;时、分、秒清零MOV MINUTE,0MOV SECOND,0CLI ;清除中
13、断标志位MOV AX,0MOV DS,AXMOV AL,76H ;8253 控制字MOV DX,CONTROLOUT DX,ALMOV AX,62500 ;利用 8253 计数器 1 分频MOV DX,COUNT1OUT DX,ALMOV AL,AHOUT DX,ALMOV AL,MD8255MOV DX,CTL8255OUT DX,ALMOV BX,4*ICW2 ;中断号MOV AX,CODESHL AX,4 ;*16ADD AX,OFFSET IENTER ;中断入口地址(段地址为 0)MOV BX,AXMOV AX,0INC BXINC BXMOV BX,AX ;代码段地址为 0CALL IINITMOV AX,DATAMOV DS,AXMOV CNT,0 ;计数值初始为 0MOV AL,CNTMOV