微机原理课程设计报告电子时钟Word文件下载.docx
《微机原理课程设计报告电子时钟Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计报告电子时钟Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
f=。
定时器0输出方波的频率:
fout=65536=。
输出方波的周期Tout=1/=。
8253A每隔55ms引起一次中断,作为定时信号。
可用55945ms作基本计时单位。
用BIOS调用INT1AH可以取得该定时单位。
例:
1秒=(计时单位)
8253的引脚图及硬件连接图如下图示:
!
8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。
每个通道都可以编程设定3种工作方式之一种;
8253由以下几个部分组成:
(1)数据总线缓冲器(8位、三态、双向);
(2)读/写控制逻辑;
CS:
片选信号,低电平有效;
RD:
读信号,低电平有效;
WR:
写信号,低电平有效
A1A0:
端口选择信号
(3)三个通道(0~2),由A0,A1控制选择;
(4)一个控制寄存器;
《8253引脚图》硬件连接图
当A1A0分别为00011011时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连。
计数器(0~2)即三个计数器/定时器通道。
每个通道包括:
8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。
作定时器用:
其CLK端上的输入脉冲应是标准的、精确的;
作计数器用:
对其CLK端上的脉冲计数,脉冲宽度可以不等。
采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间=时钟脉冲周期X预置的计数初值
由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
表8-4控制功能表
2、用可编程并行接口芯片8255的PA口以及PB口实现数码管输出,PC口实现按键实现数据显示输出
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图所示:
图内部结构及引脚
】
)
8255工作方式控制字和C口按位置位/复位控制字格式如图3-7-2所示:
图置位/复位控制字格式
&
3.锁存器273
74LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器,下面介绍一下他的管脚图功能表等资料。
(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;
(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.
74ls273管脚功能:
1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。
4.数据收发器245
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;
(接收)
*DIR=“1”,信号由A向B传输;
(发送)当/CE为高电平时,A、B均为高阻态。
:
5.译码器74ls154
74ls154为4—16线制译码器其引脚图如下图所示
6.7段数码管
数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×
8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"
a,b,c,d,e,f,g,dp"
的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
5.程序流程图
…
6.程序代码
a1equ0000h
b1equ0002h
c1equ0004h
ctr1equ0006h;
8255各端口地址
a2equ0200h;
8253计数器0端口地址
ctr2equ0206h;
8253控制端口地址
a3equ0100h
datasegment
;
keynumdb0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H
tabdb3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
bufdb0,0,0,0
buf1db0,0,0,0,0,0,0,0
buf2db0,0;
前为第一开关次数
buf3db80dup()
dataends
codesegment'
code'
assumeds:
data,cs:
code
start:
movax,data
$
movds,ax
;
设中断入口地址设置
movax,0
moves,ax
movdi,08
movax,offsetintr_key
cld
stosw
~
movax,segintr_key
moves,ax
8255写入控制字
moval,b;
A口B口输出显示,C口高四位低四位输入
movdx,ctr1
;
outdx,al
n3:
calljishu
jmpn3
n2:
leasi,buf2
movbh,00h
movbl,1h[si]
leadi,buf3
adddi,bx
|
addbl,8
mov1h[si],bl
leasi,buf1
movcx,8
repmovsb
n4:
calldis
jmpn4
n5:
cmpbl,0
jzn1
leadi,buf1
subbl,8
mov1h[si],bl
—
leasi,buf3
addsi,bx
cld
movcx,8
repmovsb
n6:
jmpn6
n1:
callqinlin
。
jmpn1
jmpstart
jishuprocnear;
计数子程序
leasi,buf
movbl,[si]
cmpbl,100
jnzs6
{
s1:
movbl,0
mov[si],bl
movah,1h[si]
cmpah,59
jzs2
incah
mov1h[si],ah
jmps6
s2:
movah,0
mov1h[si],ah
movah,2h[si]
incah
mov2h[si],ah
`
s6:
callchu
movcx,3
s5:
calldis
loops5
calldelay1s
incbyteptr[si]
ret
jishuendp
%
chuproc;
rukoual;
数处理子程序
pushsi
pushbx
movbl,4
next:
lodsb
movah,00
movcl,10
divcl
xchgah,al
stosb
moval,ah
stosb
decbl
jnznext
popbx
popsi
ret
chuendp
disprocnear;
显示buf1中的值
pushbx
、
pushcx
leabx,tab
leadi,buf1
movah,7Fh
loop1:
moval,[di]
xlat;
换码
movdx,a1
movdx,b1
movbh,1
calldelay
callqp
leabx,tab
·
rorah,1
incdi
looploop1
popcx
popbx
ret
disendp
delay1sprocnear;
8253延时子程序
pushdx
pushax
movdx,ctr2;
8253控制
moval,00110000b
outdx,al;
8253计数器0控制字方式0out端作为中断请求信号
movdx,a2
moval,01h
moval,00h
movdx,a3
M1:
inal,dx
testal,01h
jzM1
popax
!
popdx
delay1sendp
qpprocnear;
清频子程序
moval,0ffh
#
qpendp
delayPROCNEAR;
内部延时之程序
PUSHbx
PUSHCX
wait0:
MOVCX,06h
wait1:
LOOPwait1
《
DECbh
JNZwait0
POPCX
POPbx
RET
delayENDP
intr_keyprocnear;
中断服务子程序
callkey
testal,2h
testal,4h
jzn5
leadi,buf2
movbh,[di]
incbh
mov[di],bh
testbh,1h
jnzn2
iret
intr_keyendp
qinlinproc;
键盘清零子程序
(
movax,0
leadi,buf
movcx,14
repstosb
calldis
qinlinendp
keyproc;
读取键盘程序
movdx,c1
keyendp
codeends
endstart
7.程序及硬件系统调试情况
按下暂停键实现暂停功能
继续计数后按下清零键实现清零功能
8.设计心得
经过这次课程设计,我觉得我有了很大的收获,:
1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。
而通过这次课程设计,使自己的研发能力有了很大堤提高。
2.我对于工科设计的严谨性,仔细性有了更深地体会。
我们本次设计的秒表仅仅是工科设计中非常简单的一个,思想并不是非常复杂,手头也有一定的资料,但是我们在研发,调试过程中还是出现了一些错误。
简单的一些程序好检查,但是如果说是以后要设计的一些大型程序,出现故障就不是那么容易检查了。
这就要求我们在以后的工程设计当中要更为细致仔细。
3我的专业知识得到了很好的巩固,对于本专业的一些问题有了更深的思考。
原来有很多知识只是死学课本,而并没有与实际相结合,而这次课程设计使我的专业知识与实际有了很好的契合。
4.在程序设计中不能够想当然,许多程序,功能在脑子中想得很好,但是将其转变城实际程序就会出现许多问题。
如何由脑子里的构想转变成实际的程序,这是我以后需要提高的一点。
5.掌握了一些检查与判断错误的经验与方法,对今后的专业学习与设计有着深刻的影响。
6.对专业设计的许多流程、原则、注意事项以及撰写专业报告的有关事项有了一定的了解。
7.学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。
总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。
9.参考文献
[1]顾晖等。
微机原理与接口技术-基于8086和Proteus仿真[M].电子工业出版社陈继红等.微机原理及应用[M].高等教育出版社,2010
[2]戴梅萼等.微型计算机技术及应用[M].清华大学
[3]沈美明等.IBM-PC汇编语言程序设计
[M].清华大学出版社
[4]彭虎等.微机原理与接口技术(第2版)[M].电子工业出版社,2008
[5]张弥左,王兆月,邢立军等.微型计算机接口技术.北京:
机械工业出版社