微机的原理课程设计报告材料电子秒表.docx
《微机的原理课程设计报告材料电子秒表.docx》由会员分享,可在线阅读,更多相关《微机的原理课程设计报告材料电子秒表.docx(24页珍藏版)》请在冰点文库上搜索。
微机的原理课程设计报告材料电子秒表
电子与控制工程学院
计算机原理与接口技术
课
程
设
计
姓名高强强
学号3206100232
专业建筑设施智能技术
设计题目可任意启动停止的电子秒表
指导老师傅攀峰
1电子秒表课程设计要求·············································1
2关键字································································1
3摘要···································································1
4综合实验目的························································1
5引言···································································1
5.1.1使用各个芯片的作用及工作原理···································2
5.1.28253可编程外围芯片介绍··········································3
5.1.3锁存器74ls273·····················································4
5.1.4译码器74154························································7
5.1.5七段数码管显示······················································8
6程序流程图····························································10
7程序源程序····························································11
8程序及硬件调试图····················································15
9设计心得·······························································17
10参考文献····························································18
可任意启动/停止的电子秒表
一、电子秒表课程设计要求
6位LED数码显示,计时单位为1/100秒。
利用功能键进行启/停控制。
其功能为:
上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
二、关键字
808682558253控制字
三、摘要
用汇编语言设计数字秒表,用PROTUES仿真软件搭建的硬件电路上正确显示,并且具有开始停止清零功能。
用8086作为处理器,8253做定时功能产生0.01S的脉冲,8255具备锁存和并行输出功能,驱动7段数码管正确显示,并且具有足够高的精度。
。
四、综合实验目的:
通常,学习知识是由浅入深、由此及彼,一点点的学习和积累的,而应用知识则是综合运用所积累的知识来分析和解决实际问题、从知识的系统性来检验对各层次知识的掌握程度。
综合实验的目的是让学生把理论学习和实验教学阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。
这次综合实验大家应当把它作为毕业设计的预演。
锻炼通过各种媒体和途径主动获取知识的能力。
五、引言
使用8253的通道0工作在方式0计数,,并选用二进制技术,控制字36H,计数初值500,对1MHZ的CLK计数产生2000HZ的输出脉冲给1,2通道的CLK,通道一选用二进制计数即计数结束中断方式0,初值20产生非屏蔽中断0.01S非屏蔽中断送给8086的NMI产生中断的脉冲,8086开始计数即毫秒位计数并显示,并与10比较,等于给分秒位加一,毫秒位置清零,分秒位与6比较若相等清零秒各位加一,秒个位与10比较若等于清零秒十位加一,秒十位与6比较若等于清零分个位加1,分个位与10比较若等于清零分十位加一,分十位与6比较若等于全部清零。
1、使用各芯片的作用及工作原理
1)定时器/计数器8253
用系统8253定时器提供的1MHZ定时单位,设计秒表定时程序。
有关系统定时方法:
PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK信号,
频率:
f=1MHz。
定时器0输出方波的频率:
2000Hz。
定时器1输出方波100HZ,输出方波周期Tout=1/100=1ms。
8253A每隔1ms引起一次中断,作为定时信号。
可用1ms作基本计时单位。
253的引脚图及硬件连接图如下图示:
《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预置的计数初值。
控制功能表
CS
RD
WR
A1A0
功能
0
1
0
00
写计数器0
0
1
0
01
写计数器1
0
1
0
10
写计数器2
0
1
0
11
写控制字寄存器
0
0
1
00
读计数器0
0
0
1
01
读计数器1
0
0
1
10
读计数器2
0
0
1
11
无操作
1
X
X
XX
禁止使用
0
1
1
XX
无操作
每个通道:
CLK
计数脉冲或标准脉冲输入端
GATE
允许端,当GATE=1时允许计数
UT
计数值为0时输出一个脉冲
由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。
每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成:
(1)数据总线缓冲器(8位、三态、双向);
(2)读/写控制逻辑;CS:
片选信号,低电平有效;
RD:
读信号,低电平有效;
WR:
写信号,低电平有效
A1A0:
端口选择信号
(3)三个通道(0~2),由A0,A1控制选择;
(4)一个控制寄存器;
内部结构及引脚图:
2)用可编程并行接口芯片8255的PA口以及PB口实现数码管输出,PC口实现按键实现数据显示输出
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255工作方式控制字和C口按位置位/复位控制字格式如图所示:
本课程设计8255控制字1000010001,即是方式选择0控制A口输出控制C口高四位输入B组方式0输出C口低四位输入。
即B口数码管段输出控制,A口数码管的位控制。
C口低四位用于启动停止输入接口。
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)、译码器74ls154
74ls154为4—16线制译码器其引脚图如下图所示
5).7段数码管
数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
六、程序流程图
等于100
不等
等于59
不等
等于59
不等
七、程序代码
DATASSEGMENT
DW100DUP(?
)
ZXMDB3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH
HOU1DB0
HOU2DB0
MIN1DB0
MIN2DB0
SEC1DB0
SEC2DB0
;bufBYTE0,1,2,3,4,5,6,7,8,9;显示缓冲区
;FLAGBYTE0
;STATEBYTE0
;KEYMARKBYTE0;此处输入数据段代码
DATASENDS
STACKSSEGMENT
DW100DUP(?
)
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
;;;;;;;;;;;;;;;;;;中断初始化
PUSHDS
PUSHBX
MOVAX,0000H
MOVDS,AX
MOVBX,0008H
MOVDX,OFFSETTIAOSHI
MOV[BX],DX
MOVBX,000AH
MOVDX,SEGTIAOSHI
MOV[BX],DX
POPBX
POPDS
MOVAX,DATAS
MOVDS,AX
MOVAX,DATAS
MOVSS,AX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVAL,89H;8255A口和B口输出,C口输入
MOVDX,206H
OUTDX,AL
MOVAL,3FH
MOVDX,202H
OUTDX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVAL,00110110B;初始化8253,CNT0;
MOVDX,0406H
OUTDX,AL
MOVAX,500
MOVDX,0400H
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,01010000B;CNT1;
MOVDX,0406H
OUTDX,AL
MOVDX,0402H
MOVAL,20
OUTDX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHUCHU:
LEASI,ZXM
MOVBX,0000H
MOVAL,11111110B
MOVDX,200H
OUTDX,AL
MOVBL,SEC2
MOVAL,[SI+BX]
MOVDX,202H
OUTDX,AL
MOVCX,200H
S1:
LOOPS1
MOVAL,11111101B
MOVDX,200H
OUTDX,AL
MOVBL,SEC1
MOVAL,[SI+BX]
MOVDX,202H
OUTDX,AL
MOVCX,200H
S2:
LOOPS2
MOVAL,11111011B
MOVDX,200H
OUTDX,AL
MOVBL,MIN2
MOVAL,[SI+BX]
MOVDX,202H
OUTDX,AL
MOVCX,200H
S3:
LOOPS3
MOVAL,11110111B
MOVDX,200H
OUTDX,AL
MOVBL,MIN1
MOVAL,[SI+BX]
MOVDX,202H
OUTDX,AL
MOVCX,200H
S4:
LOOPS4
MOVAL,11101111B
MOVDX,200H
OUTDX,AL
MOVBL,HOU2
MOVAL,[SI+BX]
MOVDX,202H
OUTDX,AL
MOVCX,200H
S5:
LOOPS5
MOVAL,11011111B
MOVDX,200H
OUTDX,AL
MOVBL,HOU1
MOVAL,[SI+BX]
MOVDX,202H
OUTDX,AL
MOVCX,200H
S6:
LOOPS6
JMPSHUCHU
PANDUAN:
INCSEC2
CMPSEC2,0AH
JNZSHUCHU
MOVSEC2,0
INCSEC1
CMPSEC1,0AH
JNZSHUCHU
MOVSEC1,0
INCMIN2
CMPMIN2,0AH
JNZSHUCHU
MOVMIN2,0
INCMIN1
CMPMIN1,06H
JNZSHUCHU
MOVMIN1,0
INCHOU2
CMPHOU2,0AH
JNZSHUCHU
MOVHOU2,0
INCHOU1
CMPHOU1,06H
JNZSHUCHU
MOVHOU1,0
JMPSHUCHU
TIAOSHIPROC
;;;;;;;;;;;;中断子程序
MOVAL,01010000B;初始化CNT1;
MOVDX,0406H
OUTDX,AL
MOVDX,0402H
MOVAL,20
OUTDX,AL
JMPPANDUAN
;;;;;;;;;;;;;;;;;;;;;;;
RET
TIAOSHIENDP
DELAYPROC
PUSHCX
MOVCX,29h
W10MS:
LOOPW10MS
POPCX
RET
DELAYENDP
CODESENDS
ENDSTART
八、程序及硬件系统调试情况
按下暂停键实现暂停功能
继续计数后按下清零键实现清零功能
程序演示图
总体连线图
九、设计心得
经过这次课程设计,我觉得我有了很大的收获,:
1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。
而通过这次课程设计,使自己的研发能力有了很大堤提高。
2.我对于工科设计的严谨性,仔细性有了更深地体会。
我们本次设计的秒表仅仅是工科设计中非常简单的一个,思想并不是非常复杂,手头也有一定的资料,但是我们在研发,调试过程中还是出现了一些错误。
简单的一些程序好检查,但是如果说是以后要设计的一些大型程序,出现故障就不是那么容易检查了。
这就要求我们在以后的工程设计当中要更为细致仔细。
3我的专业知识得到了很好的巩固,对于本专业的一些问题有了更深的思考。
原来有很多知识只是死学课本,而并没有与实际相结合,而这次课程设计使我的专业知识与实际有了很好的契合。
4.在程序设计中不能够想当然,许多程序,功能在脑子中想得很好,但是将其转变城实际程序就会出现许多问题。
如何由脑子里的构想转变成实际的程序,这是我以后需要提高的一点。
5.掌握了一些检查与判断错误的经验与方法,对今后的专业学习与设计有着深刻的影响。
6.对专业设计的许多流程、原则、注意事项以及撰写专业报告的有关事项有了一定的了解。
7.学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。
总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。
十、参考文献
[1]顾晖等。
微机原理与接口技术-基于8086和Proteus仿真[M].电子工业出版社陈继红等.微机原理及应用[M].高等教育出版社,2010
[2]戴梅萼等.微型计算机技术及应用[M].清华大学
[3]沈美明等.IBM-PC汇编语言程序设计 [M].清华大学出版社
[4]彭虎等.微机原理与接口技术(第2版)[M].电子工业出版社,2008
[5]冯博宁,吴宁主编.微型计算机原理与接口技术(第三版).清华法学出版社。