8086数字电子钟的设计 附程序代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附件3
课程设计(综合实验)报告
( 2011 -- 2012 年度第 1 学期)
名称:硬件课程与实践
题目:8086数字电子钟的设计
院系:
班级:
学号:
学生姓名:
指导教师:
设计周数:2周
成绩:
日期:2011年09月01日
一、课程设计的目的与要求
1. 综合运用学过的相关软、硬件知识,利用伟福LAB6000实验设备,设计具有实用功能的电子钟,实现电子时钟的准确运行、校时等功能。
2.熟悉伟福LAB6000的功能,掌握数码管设计和键盘设计的要领及相关技术,能够利用实验设备实现电子钟系统的设计。
3.提高自己的硬件设计分析能力,同时培养软硬结合的系统设计思维,从而提高设计系统的可行性和准确性。
二、课程设计正文
A.设计题目:8086数字电子钟的设计:
1.设计并完成LED七段数码管数字钟电路。
2.数字钟显示格式为:HH:MM:SS。
3.具有通过键盘能够调整时、分、秒及设置闹铃的功能。
4.具有暂停时间及复位功能。
B.设计方案
本设计采用LAB6000伟福仿真实验箱,利用4MHz脉冲信号源和多级分频电路产生脉冲信号,4MHz脉冲信号经过F/64分频后得到62.5KHz脉冲信号,将脉冲信号传递给8253定时器,定时器每0.000016秒中断一次,在中断服务程序中对中断次数进行计数,0.000016秒计数62500次就是1秒,然后在中断服务程序中对秒计数得到分和小时值并判断闹铃是否到时。编写键盘扫描和LED显示程序完成设置时间、定闹铃及数码管显示功能。
C.硬件原理
1.七段数码管显示和键盘扫描显示
图1.1七段数码管
图1.2伟福实验台六位LED的电路图及寻址空间
实验箱提供了6位八段数码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。将KEY/LED CS接到CS0上,则实验箱中八位段码输出地址为08004H,位码输出地址为08002H。
实验箱提供了一个6×4的小键盘,将KEY/LED CS信号接到CS0上,则列扫描地址为08002H,行码地址为08001H。向列扫描码地址逐列输入低电平,然后从行码地址读回。如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。这样就可以通过输出的列码和读取的行码来判断按下的是什么键。在判断有键按下后,要有一定的时延,防止键盘抖动。
2.硬件连接
图2.1伟福实验台内部总线连接
8253用定时器/计数器1,8253片选接CS1,地址为09000H,8253时钟源CLK1接分频电路的F/64输出,频器的Fin接4MHz时钟,8253的GATE1接VCC;8259中断INT0接8253的OUT1,片选接CS2,地址为0A000H。显示电路的KEY/LED CS 接CS0,地址为08000H。如下图:
D.运行界面
三、课程设计总结或结论
四、参考文献
[1] 王保义, 张少敏.接口与通信. 北京-中国电力出版社, 2008
[2] 沈美明, 温冬婵. IBM-PC汇编语言程序设计. 清华大学出版社,第二版. 2002
[3] 陆红伟.微机原理实验与课程设计指导书. 中国电力出版社, 2006.8
附录(设计流程图、程序等)
CONTROL EQU 09003H
COUNT1 EQU 09001H
IN_KEY EQU 08001H ; 键盘读入口
OUTBIT EQU 08002H ; 位控制口
OUTSEG EQU 08004H ; 段控制口
ICW1 EQU 00010011B ; 单片8259, 上升沿中断, 要写ICW4
ICW2 EQU 00100000B ; 中断号为20H
ICW4 EQU 00000001B ; 工作在8086/88 方式
OCW1 EQU 11111110B ; 只响应INT0 中断
CS8259A EQU 0A000H ; 8259地址
CS8259B EQU 0A001H
DATA SEGMENT
CNT DB 0;闹铃显示
RHOUR DB 1
RMINUTE DB 0
HOUR DB 0
MINUTE DB 0
SECOND DB 0
NUM DB 0;判断闹铃
LEDBUF DB 6 DUP(?) ; 显示缓冲
RINGBUF DB 6 DUP(?)
SETBUF DB 6 DUP(?)
LEDMAP: ; 八段管显示码
DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H
DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H
KEYTABLE: ; 键码定义
DB 16H, 15H, 14H, 0FFH
DB 13H, 12H, 11H, 10H
DB 0DH, 0CH, 0BH, 0AH
DB 0EH, 03H, 06H, 09H
DB 0FH, 02H, 05H, 08H
DB 00H, 01H, 04H, 07H
SET: DB 6DH, 79H, 07H, 01H, 00H, 00H;字符显示SET
BELL: DB 7FH, 79H, 38H, 38H, 00H, 00H;字符显示BELL
DATA ENDS
CODE SEGMENT