计算机硬件技术课程设计学院:自动化工程学院班级:_________________________学号:_________________________设计题目:9、电子秒表设计2015年1月一、设计题目:电子秒表设计设计一个可任意启动/停止的电子秒表,要求用6 位LED 数码显示,计时单位为1/100 秒。
利用功能键进行启/ 停控制。
其功能为:上电后计时器清0,当第一次(或奇数次)按下启/ 停键时开始计数。
第2 次(或偶数次)按下该键时停止计时,再一次按启/ 停键时清零后重新开始计时。
可用开关控制,也可用按键控制。
二、设计目的通过本项课程设计,对微机原理课程中涉及的芯片结构、控制原理、硬件编程等方面有一定的感性认识和实践操作能力,更好的理解微机原理课程中讲述的基本原理和概念。
进行微机原理课程设计前,应学习并掌握了8086/8088 汇编语言编程方法,掌握了8255 、8253 存储器等芯片的基本结构和工作原理,掌握了芯片编程控制的方法。
三、设计方案以及论证1、整体设计思想使用8253 工作在方式0 计数,对1/100S 计数,并讲计数值写入bl 中并与100 比较若不相等,则将计数值装换为10 进制后送8255 控制端显示,如相等则1S 计数程序加1 之后并与59 比较若不相等则将计数值装换为10 进制后送8255 控制端显示,如相等则1min 计数程序加1 之后并与59 比较若不相等则将计数值装换为10 进制后送8255 控制端显示,如相等则计数程序加1 之后产生溢出,跳转清零程序将计数清零,同时数码管清零。
2、使用各芯片的作用及工作原理1)定时器/ 计数器8253用系统8253 定时器提供的55ms 定时单位,设计秒表定时程序。
有关系统定时方法:PC 机系统中的8253 定时器0 工作于方式3,外部提供一个时钟作为 CLK 信号,频率:f=1.1931816MHz定时器0输出方波的频率:fout=1.1931816/65536=18.2Hz 。
输出方波的周期 Tout=1/18.2=54.945ms°8253A 每隔55ms 引起一次中断,作为定时信号。
可用55945ms 作基本计时单位。
用BIOS 调用INT 1AH 可以取得该定时单位。
例:1秒= 18.2 (计时单位)8253的引脚图及硬件连接图如下图示:«8253引脚图》当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在 8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通 常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086 的A2A1分别与8253的A1A0相连。
计数器(0 ~ 2)即三个计数器/定时器通 道。
每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和 输出锁存器。
作定时器用:其 CLK 端上的输入脉冲应是标准的、精确的;作D7 D? D5 D4 D3 D2 D1 DO CLU OUTO &ATB0 5NP12 3 45 n £ □U242322212O101S17彷询W 13Vcc 丽 R& 苗A1AOCLK2 0UT2 6A7E2 CLK1 0UT1DOCLKODI02 O'JTOD3;D5 GATE1 D6 0UT1D7C-LK255GATE2OUTJ肋AlOS硬件连接图U2~ 0A0 0■ Al Q3 O辿O 丽oU 1 g152111X172119 20 EL计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。
采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间二时钟脉冲周期X预置的计数初值。
控制功能表由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。
8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。
每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成:(1 )数据总线缓冲器(8位、三态、双向);(2)读/写控制逻辑;CS:片选信号,低电平有效;RD :读信号,低电平有效;WR :写信号,低电平有效;A1A0 :端口选择信号⑶三个通道(0 ~ 2),由A0,A1控制选择;(4)一个控制寄存器;内部结构及引脚图2)用可编程并行接口芯片8255的PA 口以及PB 口实现数码管输出,PC 口 实现按键实现数据显示输出8255可编程外围接口芯片是 In tel 公司生产的通用并行I/O 接口芯 片,它具有A 、B 、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设 备或被控制对象之间传递信息。
CPU 和接口之间 的数据传送总是并行的,即 可以同时传递8位、16位、32位等。
用+5V 单电源供电,能在以下三种方 式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双 向选通工作方式。
8255工作方式控制字和C 口按位置位/复位控制字格式如图所示:Q 悴!t'.1 Hi AA j£il« 0 方 Ito1 fJCl I 八 0谕IL k IA \D7 D6 DS ] D4 Di D?niDU DF D6 D5 D4 D? D? ] DI ] DO"T" "T" H~~r~ ~~r~ ~~r~ ~r~ ~r~I';."谆WJ 、 aj - ■ i■■■.- ■ci ■■卩:丄.■a -'L 'I I! L 讪\戏向散拟忌线D04g )RDWKAiAOKLbfclcsA 10V PC^-PC4k LO7 PCJ-PCOx IOV PB7-PB0PA3 -------- PA2 -------- PAI —— PAO - ------ RD-— CS 一GND —— Al -- ----- AO' ------ PC7 -------- PC6—— PC5 -------- PC4 -------- PCC —— PC1 -—— PC2—— PC3 ------ PBO-—— FBIPB2——1O 40 r39 536 437 5 35 6 35 7348339 32 10 8255 31H 30 1229132S142715技U2517 241&231922 20和 Z. 1z s ^76543T-EO 11-34 -^^6- c B B B B B门巩G DSD2D1 Q O * Q 1 a :i i 2 O L d3 a L I4 I o a 占L h t « L L 0 :I 1 1Am控制AUM )10PA^PAOcn'ft 4cu■ ' 4 ■B r部ft——PA4------ P A3 ------ PA6 ------ PA7;」•.(!奸00 Vi'J;Q 01 'IJ;1 1H :r 03. 锁存器27374LS273 是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) 上.CONNECTION DIAGRAM DIP虹5 5%0$內血而师 而而 RFirTTLOADING (Note a)PIN NAMESHIGH LOW CP Clock (Active HIGH Going Edge} input05 UL 0.S 1J.L D 0-D TData Inputs 0.6 UL 0.25 U,LMaster (Actwe LOW) Input 0.5 Ul. 075 U.L Qft-Q?Register Ouipuis1DU 丄.5U1.NOTES ;M 1 TTL Unit Load ML) =40uA HQVI.CmA LOW.TRUTH TABLECPO K Qx LHHXX H LL H LH = HIGH Logic Leva L = LM Logic Le vie ; X= InmateriaUJL1(TOPVfEV/)D 4 Q + CP8 1074IS273管脚功能:1D 〜8D 为数据输入端,1Q 〜8Q 为数据输出端,正脉冲触发,低电平 清除,常用作8位地址锁存器。
4、译码器74IS15474IS154为4 — 16线制译码器其引脚图如下图所示5、7段数码管^SL•>\-ro==■ A i 1 mt S'*Al 2 口口'1 曰:一1io-snIC>O|C=! 1 - H •-- BQ3 - I tTj-ud - HOS - I S3 -IQB - | Q 1 0" lid ~B 才 IO 1 |io 1 B I 匚j T 斗I <Z : 1 S数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5 X8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"A,B,C,D,E,F,G,DP"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
LEIS3严Tx1 ja3晋H•冲寸CJUJWUcua!HP AUJ.)EEQJiOJJGJL啊WT3II_T5b-Is!mira'---------------aO'B □"3 …! □i «. n□3*9钏话叫口A01Efl ar 5 ■. Sb■B■■f B BI*5X=LtJW«f0 0——•请一詩宵書哩詈為一0 PWT TOT不等BCD码调整指令10进制显示ctr2 equ 0206h ;8253 控制端口地址a3 equ 0100h data segmentkeynum 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H tab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H buf db 0,0,0,0buf1 db 0,0,0,0,0,0,0,0 buf2 db 0,0; 前为第一开关次数buf3 db 80 dup(?)data endscode segment 'code'assume ds:data,cs:codestart: mov ax,data五、程序代码 a1 equ 0000h b1 equ 0002h c1 equ 0004hctr1 equ 0006h;8255 各端口地址a2 equ 0200h;8253 计数器 0 端口地址 dbmov ds,ax ; 设中断入口地址设置mov ax,0mov es,axmov di,08mov ax,offset intr_keycldstoswmov ax,seg intr_keystoswmov ax,data; 编程初始化mov es,ax;8255 写入控制字mov al,10001001b ;A 口 B 口输出显示, C 口高四位低四位输入mov dx,ctr1out dx,aln3: call jishujmp n3n2:lea si,buf2 mov bh,00h mov bl,1h[si] lea di,buf3 add di,bxadd bl,8mov 1h[si],bllea si,buf1cldmov cx,8rep movsbn4: call disjmp n4lea si,buf2n5:mov bh,00hmovbl,1h[si]cmp bl,0jz n1lea di,buf1sub bl,8 mov1h[si],bllea si,buf3add si,bxcldn6: call disjmp n6n1: call qinlinjmp n1;jmp startjishu proc near ;计数子程序lea si,bufmov bl,[si]cmp bl,100jnz s6s1: mov bl,0mov [si],blmov ah,1h[si]cmp ah,59jz s2inc ahmov 1h[si],ahjmp s6s2: mov ah,0mov 1h[si],ahmov ah,2h[si]inc ahmov 2h[si],ah jmp s6s6:call chumov cx,3 s5:call disloop s5call delay1sinc byteptr[si] retjishu endp;数处理子程序chu proc ;rukou alpush si push bxmov bl,4lea di,buf1 lea si,buf next:lodsbmov ah,00mov cl,10div clxchg ah,al stosb mov al,ah stosb dec bljnz next pop bxpop siretchu endpdis proc near ;显示buf1 中的值push bxlea bx,tablea di,buf1mov cx,8mov ah,7Fhloop1: mov al,[di]xlat ;换码mov dx,a1out dx,almov dx,b1mov al,ahout dx,almov bh,1call delaycall qp lea bx,tabror ah,1 inc diloop loop1pop cxpop bxretdis endpdelay1s proc near ;8253 延时子程序push dxmov dx,ctr2 ;8253 控制mov al,00110000bout dx,al ;8253 计数器0 控制字方式0 out 端作为中断请求信号mov dx,a2mov al,01hout dx,almov al,00hout dx,almov dx,a3M1: in al,dxtest al,01hjz M1 pop axretdelay1s endpqp proc near ;清频子程序mov al,0ffhmov dx,b1out dx,alretqp endpdelay PROC NEAR ; 内部延时子程序PUSH bxPUSH CXwait0: MOV CX,06hwait1: LOOP wait1DEC bhJNZ wait0POP CXbxPOPRETdelay ENDPintr_key procnear ;中断服务子程序call keytest al,2h jz n1test al,4hjz n5lea di,buf2mov bh,[di]inc bhmov [di],bhtest bh,1hjnz n2jmp n3iretintr_key endpqinlin proc ;键盘清零子程序mov ax,0lea di,bufmov cx,14cldrep stosbcall disqinlin endpkey proc ;读取键盘程序mov dx,c1in al,dx retkey endpcode ends end start程序编译图:六、程序运行结果分析与预测 按下暂停键实现暂停功能ni2_x *h -9*o6FiQoacib孙.11 • if# -ani*niIk 亡甘鬥心n dk 0EEHI .00)£H .OBEHl,7EH -OEDH fc ODD)H ・QEDH d ?DH,OEBHbODBH h t^ib db §FH B 06H ・5:EH.,4LFhLE^H,6:DH ・7DH・07「 一一 「 bmf db Q i Q .0 H Q burf i db □ »Q B o x .0 .0 .0 .0 bufZ db o e Abu4*3 db SO duip C Id at 4 <?nd? C4-d* ■<« iin+ntMun di- dial stArt - db SFH ・ 0宜 H ・ .4FH n e€H.CDH B ?DH ・ nov new now n^v a nov^d ■gr^ 10* i -3H d. .OS •甘[日”十t cld ft osw-3>z ■ ses i ntr Jcc-y ft 0pJV ■HOV «K fdai • fsov e* _ a ffl^V di nt丄.10001 OOlb K refrlK b-«Ivtv vt vtw: Q u Q 0 u o u cihuH 7FH a 6FH s ?7H.7CH.七、结果评述或总结1、结果评述程序和电路图都做好以后,能够运行且显示秒表计时,但是秒表的计时1秒快慢与标准时间的1秒不一致,经过思考和检查以后,知道决定计时快慢的 因素为时钟的频率和主处理器8086频率。