电子钟设计.docx
- 文档编号:26503495
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:14
- 大小:44.11KB
电子钟设计.docx
《电子钟设计.docx》由会员分享,可在线阅读,更多相关《电子钟设计.docx(14页珍藏版)》请在冰豆网上搜索。
电子钟设计
南京工程学院
课程设计任务书
课程名称微机原理及应用B
院(系、部、中心)自动化学院
专业
班级
姓名
学号
起止日期
指导教师
目录
一、设计任务————————————————3
二、总体方案————————————————3
三、原理框图————————————————3-4
四、系统模块详细设计与调试—————————5
五、设计总结————————————————6
六、参考文献————————————————6
七、附件材料————————————————7-12
电子钟设计
一、设计任务
利用8253可编程定时/计数器、8259中断控制器、8255可编程并行接口芯片和七段数码管设计一个电子钟的电路,并编制一程序使得该电子钟能正常运行。
电子钟除了能够完成正常的计时、显示功能外,还必须具备正常时、分、秒的数值显示功能、时间设定功能等。
设计绘制相应的硬件电路原理图并完成接线。
编制相应控制程序实现电子钟的计时、显示等功能。
控制程序设计规范,应有适当的注释,表达清楚。
钟的时分秒显示分别采用两个8段LED数码管实现,显示方法可根据实际情况采用动态或静态显示。
二、总体方案
利用8253做定时器,用定时器输出的脉冲控制8259产生中断,在8259中断处理程序中,对时、分、秒进行计数,在等待中断的循环中,采用计算机内部自带的8255芯片,利用LED显示时间。
在主程序中要分别对8253、8259、8255进行初始化编程,8253的计数器1可在方式3下工作。
在中断服务程序中对中断次数进行统计,当满10次时就进行一次时、分、秒的处理。
时、分、秒分别对应6个存储单元,分别存放时、分、秒的个位和十位。
当中断次数满10次时,将秒的个位加1,判断是否到10,如到了则十位加1,个位清零;再判断十位是否到了6,如到了则十位清零,分的个位加1,同理对分、时作相应处理。
七段数码管显示作为子程序,将时、分、秒对应存储单元的内容分别取出并转换成相应的代码,利用缓冲区和延时子程序进行显示。
三、原理框图
上图为主程序流程图;
下图为中断服务程序流程图;
四、系统模块详细设计与调试
1.在主程序中要分别对8253、8259、8255进行初始化编程。
具体如下:
8253的方式控制字:
MOVAX,0
MOVDS,AX
MOVAL,76H
MOVDX,CONTROL
OUTDX,AL
利用8253计数器1分频:
MOVAX,62500
MOVDX,COUNT1
OUTDX,AL
MOVAL,AH
OUTDX,AL
8259初始化命令字和操作命令字:
MOVDX,CS8259A
MOVAL,ICW1
OUTDX,AL
MOVDX,CS8259B
MOVAL,ICW2
OUTDX,AL
MOVAL,ICW4
OUTDX,AL
MOVAL,OCW1
OUTDX,AL
利用计算机内部8255:
MOVAL,MD8255
MOVDX,CTL8255
OUTDX,AL
2.6位8段码LED显示采用动态方式显示,8位段码和6位位码是由实验箱内部的两片74LS374输出。
8位段码和6位位码的输出地址有KEY/LEDCS片选信号决定。
显示程序中,首先将时、分、秒对应存储单元的内容分别取出并转换成相应的代码,再利用缓冲区和延时子程序进行显示。
3.用定时器8253输出的脉冲控制8259产生中断,在中断服务程序中对中断次数进行统计,当满10次时就进行一次时、分、秒的处理。
中断服务程序详见程序中IENTER模块:
IENTERPROCNEAR
PUSHAX
PUSHDX
INCSECOND;秒加1
MOVAL,SECOND
CMPAL,60;秒数与60比较
JNEEXIT
MOVSECOND,0;秒清零
INCMINUTE;分加1
MOVAL,MINUTE
CMPAL,60;分数与60比较
JNEEXIT
MOVMINUTE,0;分清零
INCHOUR;时加1
MOVAL,HOUR
CMPAL,24;时数与24比较
JNEEXIT
MOVHOUR,0;时清零
4.利用伟福6000系统输入完整程序后进行编译,编译正确后在实验箱上进行线路连接,具体连接方法如下:
8253用计数器1,片选信号接CS4,地址为0C000H,8253时钟源CLK1接分频电路的F/64输出,分频器的PIN接4MHZ时钟,8253的GATE1接VCC,8259中断INT0接8253的OUT1,片选接CS5,地址为0DOOOH,显示电路的KEY/LEDCS接CS0,地址为8000H。
连接正确后打开实验箱的电源,将程序下载到实验箱,启动全速执行,便可在实验箱上了数码管上看到正确的时、分、秒的显示了。
五、设计总结
六、参考文献
《微机原理实验与课程设计指导书》,陆红伟编,中国电力出版社,2006年
《8086微型计算机组成、原理及接口》,顾滨,机械工业出版社,2001
《微型计算机原理及应用》,吕淑萍等,哈尔滨工程大学出版社,2004年
《微型计算机技术及应用》,戴梅萼,清华大学出版社,2005
七、附件材料
完整程序如下:
CONTROLEQU0C003H;8253控制口
COUNT0EQU0C000H
COUNT1EQU0C001H
COUNT2EQU0C002H
MD8255EQU82H;8255控制字
PA8255EQU8000H
CTL8255EQU8003H
OUTBITEQU08002H;位控制口
OUTSEGEQU08004H;段控制口
ICW1EQU00010011B;单片8259,上升沿中断,要写ICW4
ICW2EQU00100000B;中断号为20H
ICW4EQU00000001B;工作在8086/88方式
OCW1EQU11111110B;只响应INT0中断
CS8259AEQU0D000H;8259地址
CS8259BEQU0D001H
DATASEGMENT
CNTDB0
LEDBUFDB6DUP(?
);显示缓冲
NUMDB1DUP(?
);显示的数据
DELAYTDB1DUP(?
)
HOURDB0
MINUTEDB0
SECONDDB0
LEDMAP:
;八段管显示码
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
DELAYPROCNEAR;延时子程序
PUSHAX
PUSHCX
MOVAL,0
MOVCX,AX
LOOP$
POPCX
POPAX
RET
DELAYENDP
DISPLAYLEDPROCNEAR
MOVBX,OFFSETLEDBUF
MOVCL,6;共6个八段管
MOVAH,00100000B;从左边开始显示
DLOOP:
MOVDX,OUTBIT
MOVAL,0
OUTDX,AL;关所有八段管
MOVAL,[BX]
MOVDX,OUTSEG
OUTDX,AL
MOVDX,OUTBIT
MOVAL,AH
OUTDX,AL;显示一位八段管
PUSHAX
MOVAH,1
CALLDELAY
POPAX
SHRAH,1
INCBX
DECCL
JNZDLOOP
MOVDX,OUTBIT
MOVAL,0
OUTDX,AL;关所有八段管
RET
DISPLAYLEDENDP
IENTERPROCNEAR
PUSHAX
PUSHDX
INCSECOND;秒加1
MOVAL,SECOND
CMPAL,60;秒数与60比较
JNEEXIT
MOVSECOND,0;秒清零
INCMINUTE;分加1
MOVAL,MINUTE
CMPAL,60;分数与60比较
JNEEXIT
MOVMINUTE,0;分清零
INCHOUR;时加1
MOVAL,HOUR
CMPAL,24;时数与24比较
JNEEXIT
MOVHOUR,0;时清零
EXIT:
MOVDX,CS8259A
MOVAL,20H
OUTDX,AL;结束本次中断
POPDX
POPAX
IRET
IENTERENDP
IINITPROC;初始化8259的命令字和操作命令字
MOVDX,CS8259A
MOVAL,ICW1
OUTDX,AL
MOVDX,CS8259B
MOVAL,ICW2
OUTDX,AL
MOVAL,ICW4
OUTDX,AL
MOVAL,OCW1
OUTDX,AL
RET
IINITENDP
START:
MOVAX,DATA
MOVDS,AX
MOVHOUR,0;时、分、秒清零
MOVMINUTE,0
MOVSECOND,0
CLI;清除中断标志位
MOVAX,0
MOVDS,AX
MOVAL,76H;8253控制字
MOVDX,CONTROL
OUTDX,AL
MOVAX,62500;利用8253计数器1分频
MOVDX,COUNT1
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,MD8255
MOVDX,CTL8255
OUTDX,AL
MOVBX,4*ICW2;中断号
MOVAX,CODE
SHLAX,4;*16
ADDAX,OFFSETIENTER;中断入口地址(段地址为0)
MOV[BX],AX
MOVAX,0
INCBX
INCBX
MOV[BX],AX;代码段地址为0
CALLIINIT
MOVAX,DATA
MOVDS,AX
MOVCNT,0;计数值初始为0
MOVAL,CNT
MOVDX,PA8255
OUTDX,AL
STI;开中断
LP:
MOVAL,HOUR
MOVAH,0
MOVCL,10
DIVCL
MOVCH,AH
MOVAH,0
MOVBX,OFFSETLEDMAP
ADDBX,AX
MOVAL,[BX];时的十位转换成显示码
MOVLEDBUF,AL;显示码存入显示缓冲区
MOVBX,OFFSETLEDMAP
MOVAL,CH
MOVAH,0
ADDBX,AX
MOVAL,[BX];时的个位转换成显示码
ORAL,80H
MOVLEDBUF+1,AL;显示码存入后一位显示缓冲区
MOVAL,MINUTE
MOVAH,0
MOVCL,10
DIVCL
MOVCH,AH
MOVAH,0
MOVBX,OFFSETLEDMAP
ADDBX,AX
MOVAL,[BX];分的十位转换成显示码
MOVLEDBUF+2,AL
MOVBX,OFFSETLEDMAP
MOVAL,CH
MOVAH,0
ADDBX,AX
MOVAL,[BX];分的个位转换成显示码
ORAL,80H
MOVLEDBUF+3,AL
MOVAL,SECOND
MOVAH,0
MOVCL,10
DIVCL
MOVCH,AH
MOVAH,0
MOVBX,OFFSETLEDMAP
ADDBX,AX
MOVAL,[BX];秒的十位转换成显示码
MOVLEDBUF+4,AL
MOVBX,OFFSETLEDMAP
MOVAL,CH
MOVAH,0
ADDBX,AX
MOVAL,[BX];分的个位转换成显示码
ORAL,80H
MOVLEDBUF+5,AL
CALLDISPLAYLED
JMPLP
CODEENDS
ENDSTART
实验中所使用的元器件的引脚图如下:
实验电路接线图如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子钟 设计