微机原理课程设计报告
时间:2026-01-20
时间:2026-01-20
课程设计报告
( 2013—2014年度第一 学期)
课程:微机原理及应用 题目:秒表设计 院系:自动化系 班级: 学号:
学生姓名:指导教师: 设计周数:一周 成绩:
日期:2014年1月
10
一、课程设计目的与要求
1. 通过对微机系统分析和具体设计,使学生加深对所学课程的理解。 2. 掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法。 3. 培养学生分析问题、解决问题的能力。
4. 培养学生对微型计算机应用系统的基本设计能力。 5. 提高学生的实践动手能力和创新能力 二、 课程设计正文 (一)设计题目:
秒表设计:利用实验箱上的小键盘,自定义各按键为启动计时,数据清零,停止并显示。利用六个数码管显示分、秒、毫秒。8253产生10ms定时中断,在中断服务子程序中显示秒表计时。 附加部分:加入记录功能,可通过按键记录多次时间,然后在停止计时后,通过键盘上的0,1,2……等按键再把记录的时间取出并显示,达到实际秒表的分别计时功能。
(二)总体设计方案:
1.自定义小键盘中的三个按键分别为启动键、清零键、分别计时键、停止显示键(我们依次选择了MON、LAST、NEXT、RES这三个按键)。
2. 利用8253产生的10ms的方波来触发8259产生中断,对秒表进行增1操作 3. 动态扫描键盘,判断按键情况,并利用蜂鸣器模拟按键声音 4. 根据按键情况确定要显示的内容,然后对六位数码管进行扫描显示
(三)系统的功能作用:
1. 实验箱启动后,六位数码管全部显示为0,如果不对键盘进行操作将始终保持这个状态 2. 普通计时功能:
按下MON(启动键),数码管开始从零开始显示计时,从左到右依次显示每两位之间用八段数码管的小数点了隔开来作为分、秒、毫秒的区分,按下停止键RES,计时结束,显示停止时的时间。 3. 分记功能:
在计时过程中按下分别计时按键NEXT,将按下瞬间的显示值存储起来(最多可取16次),再停止计时后,可通过按下0、1、2等按键依次读出第1次、第2次、第3次按键时记录下的时间,并在数码管上显示,达到实际秒表的分别计时功能。 4. 清零复位:
按下清零键LAST,六位数码管全部显示为0,实现清零功能。清零后再按下启动键MON,系统将又重新从0开始计时。 5. 按键同时伴随音效:
在按下小键盘上的按键时,会激活蜂鸣器发出短暂的声音,模拟实际秒表中按键的声音
6. 备注:
(1) 注意最后两位毫秒表示位实际单位为10ms,所以每加到99后向秒进位再重新从零开始
依次增1。
(2) 秒表计时最长时间为60分钟,当大于这个时间后,数码管将又重新从零开始计时。 (3) 考虑到键盘上0——F共十六个键,所以我们设计的系统对分记有次数限制,最多为
16次,超过16次时,计时自动停止,但仍可以读出存储下的16个时间。
(四)具体硬件电路设计: 1.片选地址的设计:
对8086地址线进行锁存后,利用3-8译码器进行译码,为匹配实验箱上的片选地址在电路中我们选择了A12,A13,A14分别接A,B,C,A15接入高电平使能端E1,这样Y0就对应8000h-8fffh,Y1对应9000h-9fffh,依此类推。 地址线的锁存:
CPU接线设计译码器设计
1.8253设计:
8253片选信号地址为0C000H ,即8253片选接CS4。 分频器的Fin接4MHz时钟。8253的GATE1,GATE0接VCC。
8253时钟源CLK0接分频电路的F/4输出,8253时钟源CLK1接分频电路的F/64输出。 两个计数器都工作在方式3下。其中out1产生100Hz方波作为8259的中断申请信号,上升沿触发中断;out0产生的方波控制蜂鸣器在按键时同时响起。
8253线路图与蜂鸣器的接线
2.8259中断设计:
8259片选信号地址为0D000H ,即8253片选接CS5。 8259中断INT0接8253的OUT1,进行中断申请
8259的接线设计
3. 数码管与键盘设计:
为简化接线,直接利用硬件实验箱中的数码管与CPU总线相连的特性(其中8002h为位控制口08004h为段控制口),用8000H做片选信号,即片选接CS0即可控制数码管与键盘。
具体硬件电路接线如下图:
从电路图中可以看到,数码管位控制口8002h,数码管段控制口8004h,键盘读入口8001h 注:最右侧一列的四个按键依次为停止键RES,启动键MON,清零键LAST,分别计时按键NEXT
(五)编写程序:
根据电路设计,确定端口
8259端口为:偶地址端口D000h,奇地址端口D001h
8253的端口为:计数器0 C000h,计数器1 C001,控制寄存器 C003h 数码管位控制口8002h 数码管段控制口8004h 键盘读入口8001h
根据设计方案,确定8253的初始化命令 计数器0的控制字00110110 即36h 计数器1的控制字01110110 即76h 计数器0将会输出方波控制蜂鸣器
计数器1赋初值625D,这样就会将1/16MHz(62.5KHz)的方波转换成100Hz的方波输出,申请中断。
根据题目要求,确定8259的初始化命令 ICW1=13H(00010011B); ICW2=20H(00100000B); ICW4=01H(00000001B);
中断向量的装入
根据ICW2=20H(10000000B),则确定 IR0的中断类型号就是20H,根据中断向量等相关知识,编写中断向量装入的程序段。
编写服务中断子程序
中断子程序中实现对显示时间的增1操作,每进入 …… 此处隐藏:5012字,全部文档内容请下载后查看。喜欢就下载吧 ……