惠州学院微机报告讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
惠州学院计算机科学系课程设计(综合实验)报告( 2015--2016年度第一学期)
课程名称:微型计算机技术
题目:多功能实时时钟
班级:最牛逼班
学号:111111222222
学生姓名:杰克
指导教师:老师
设计周数:1周
同组人:路飞,鸣人
日期:2015年12 月31 日
一、课程设计的目的与要求。
1.1设计的目的。
通过本次课程设计要掌握芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
1.2设计的要求。
(1) 实时时钟
由时钟信号产生部分和时间显示部分组成时钟计时器,计算中断时间准确计时、分、秒;
(2) 小键盘控制多功能选择
采用小键盘输入,通过小键盘LED数码管显示,不同键输入对应不同功能(如时间暂停开始,设置时间等)。
1.3 设计的意义。
通过了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、设计正文。
2.1设计的基本原理。
2.1.1设计所用芯片结构
8253的功能用途是:
(1)延时中断
(2)可编程频率发生器
(3)事件计数器
(4)二进倍频器
(5)实时时钟
(6)数字单稳
(7)复杂的电机控制器
8253有六种工作方式:
(1)方式0:计数结束中断
(2)方式1:可编程频率发生器
(3)方式2:频率发生器
(4)方式3:方波频率发生器
(5)方式4:软件触发的选通信号
(6)方式5:硬件触发的选通信号
8253各引脚功能如下。
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器地址输入信号;
CLK——计数输入,用于输入定时基准脉冲或计数脉冲;
OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;
GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
2.2 设计方案。
2.2.1 总体方案。(见附录)
2.2.2 硬件原理图。
2.3 具体模块设计。
2.3.1主程序模块:
;*******************************;
;* 键盘显示控制实验*;
;*******************************;
inta00 equ 20h ;8259a port,口地址
inta01 equ 21h ;8259a port,口地址
port0 equ 2b0h ;8279 data port,8279数据口
port1 equ 2b1h ;8279 ctrl port,8279控制口
time0 equ 280h ;8253 time0 port,8253定时器0口地址time1 equ 281h ;8253 time1 port,8253定时器1口地址timec equ 283h ;8253 ctrl port,8253控制口地址
stacks segment stack
sta dw 512 dup(?)
top equ length sta
stacks ends
data segment
csreg dw ?
ipreg dw ?
irq_times dw 00h
buf db 0 ;count,计数单元
sign db 0 ;flage,计数标志
sec1 db 0 ;hour hight,秒高位
sec2 db 0 ;houp low,秒低位
min1 db 0 ;min hight,分高位
min2 db 0 ;min low,分低位
hour1 db 0 ;sec hight,时高位
hour2 db 0 ;sec low,时低位
err1 db 0 ;error flage,出错标志
hms db 0 ;00 is hour,11 is min,22 is sec,预置时、分、秒标志led db 3fh,06,5bh,4fh,66h,6dh,7dh,07,7fh,6fh,79h,40h
mes db 'pleas first create the irq pulse!',0ah,0dh,0ah,0dh
db 'in small keybord:',0ah,0dh
db 'c--clear to zero; g--go ahead',0ah,0dh
db 'd--stop the disply;e--exit',0ah,0dh
db 'p--position the beginning time',0ah,0dh,'$'
data ends
code segment
main proc far
assume cs:code,ds:data,ss:stacks,es:data
start: cli
mov ax,data
mov ds,ax
mov buf,0
mov sign,01
mov sec1,0
mov sec2,0
mov min1,0
mov min2,0
mov hour1,0
mov hour2,0
mov err1,0
mov dx,timec ;8253初始化
mov al,36h
out dx,al
mov dx,time0
mov ax,1000
out dx,al
mov al,ah
out dx,al
mov dx,timec
mov al, 74h
out dx,al