电子秒表微机课程设计.docx
- 文档编号:4088517
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:26
- 大小:260.29KB
电子秒表微机课程设计.docx
《电子秒表微机课程设计.docx》由会员分享,可在线阅读,更多相关《电子秒表微机课程设计.docx(26页珍藏版)》请在冰豆网上搜索。
电子秒表微机课程设计
课程设计 报告
课程设计名称:
电子秒表
系 :
学生姓名:
班级:
学 号:
成 绩:
指导教师:
开课时间:
2013-2014学年1学期
目 录
一、设计题目-------------------------------------------------------------3
二、主要内容-------------------------------------------------------------3
三、基本要求-------------------------------------------------------------3
四、设计原理与硬件电路----------------------------------------------3
五、程序流程图---------------------------------------------------------11
六、程序代码-------------------------------------------------------- ---12
七、程序运行结果------------------------------------------------------19
八、进程安排------------------------------------------------------------21
九、心得收获------------------------------------------------------------21
十、成绩评定------------------------------------------------------------22
十一、参考资料---------------------------------------------------------22
一、设计题目
电子秒表
二、主要内容
设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。
利用功能键进行启/停控制。
其功能为:
上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
可用开关控制,也可用按键控制。
三、具体要求
1)设计可以显示1~60秒的无存储功能的秒表,最小单位为毫秒。
2)通过键盘按键控制秒表清零、暂停、继续,退出等。
其中数字0控制清零,数字1控制继续和退出。
3)秒表可以分组存储、批量显示。
四、设计原理与硬件电路
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调用INT1AH可以取得该定时单位。
例:
1秒=18.2(计时单位)
8253的引脚图及硬件连接图如下图示:
8253引脚图 硬件连接图
当A1A0分别为00 011011时分别选中三个通道和控制字寄存器在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
1 0
读计数器2
0
0
1
11
无操作
1
X
X
X X
禁止使用
0
1
1
X X
无操作
每个通道:
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口按位置位/复位控制字格式如图所示:
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线控制。
7、汇编程序中附加程序:
1.CLOUR(字体颜色设置程序)
通过字体颜色设置程序,实现屏显字体颜色的改变。
当改变BX值时,字体颜色会改变。
2.HALT(启动子程序)
通过启动子程序,实现计时的开始,当从键盘输入一个字符时,判断是否等于S,如果不等,则在循环执行启动子程序中动态等待,直到输入的字符为S时,计时开始。
3.IOSET(设置光标位置子程序)
通过设置光标子程序,来设置显示的区域。
一般整个屏幕可显示25行,80列,屏幕左上角字符位置为0行0列,右下脚字符为24行79列,对应十六进制为:
左上脚为(0,0),右下脚为(18,4F)。
入口信息为:
(AH)=2要设置光标;(BH)=0页号;(DH,DL)=00要置光标于0行0列。
DX赋值为0D27H,光标置位于屏幕中央。
4.GO(初始化显示子程序)
通过将在数据段定义的BUFFER数组的首址赋给BX,将待显示初值字符串00:
00存入数组中的相应位置,当每次复位以后,重新调用该子程序,将程序的执行结果修正为00:
00,并显示于屏幕上,从而实现了程序的初值设定和复位功能。
5.TIME(延时子程序)
计算机每执行一条指令,虽然很快,但是需要一些时间,因此在本程序中可以通过延时程序,让计算机去执行一些无关的程序,来达到时钟秒与百分之一秒转换时的时间延迟。
每条指令执行时间的长短,是以计算机的时钟周期为基本单位的,因此不同的计算机可以通过修改延时程序数值来使其达到准确计时。
6.TRAN(压缩BCD码转ASCII码程序)
计算机显示数据时使用的是数据的ASCII码,而在程序设计当中程序的计时数值是BCD码,因此,需要通过此子程序实现将BCD码转变为ASCII码,以备送屏幕显示。
因为时钟计时的压缩BCD码每一个数都有8位,因此将其右移四位并加30H,将其高位数字取出,送BX存放,再将其低位数字取出,加30H,送BX存放,达到不同码制之间转换的目的。
7.复位、停止等功能的实现
通过对输入字符的判断和各种循环的嵌套调用实现。
整体上本程序的主要设计原理是先在数据段中定义“SSTARTRRESETEENDCCONTINUE”控制字符串,并定义缓冲区。
将数据段的段基址送DS,并将“S STARTRRESETEENDCCONTINUE”显示,同时调用GO子程序,将显示结果初始化。
同时设置光标,启动计时,启动延时程序,将百分之一秒加1并将其设置为压缩BCB码,当其CF不为1时,送屏幕显示,当其为1时,将其设置为0,并在秒上加1,当秒等于60时,其置0,当其小于60时,送屏幕显示。
在计时过程中,如果键入R,则将其复位,并重新开始计时,当键入E时,计时暂停,如果键入C,则继续计时,如果键入R,则复位,设置为00:
00,当再次键入S时,再次计时开始。
五、程序流程图-
六、程序代码
DAT SEGMENT ;设置数据段
BUF DB 'Inputstart(S)or memory(M)orend(E)or continue(C)or restart(R)$' ;设置功能说明
MESSDB ' ',0ah,0dh
DB' ',0ah,0dh
DB ' ',0ah,0dh
DB ' ********** ********** ',0ah,0dh
DB ' ** ** ** ** ',0ah,0dh
DB ' ** ******* ** ',0ah,0dh
DB ' ** ***** ** ** ',0ah,0dh
DB ' ** ** ** ** ',0ah,0dh
DB' ** ******* ** ',0ah,0dh
DB' ** ** ******* ',0ah,0dh
DB ' ********** ********** ',0ah,0dh
DB' ',0ah,0dh
DB ' ',0ah,0dh
DB ' **************************** ',0ah,0dh
DB ' **** **** ',0ah,0dh
DB ' **** **** ',0ah,0dh
DB' **** **** ',0ah,0dh
DB ' **** **** ',0ah,0dh
DB' **** **** ',0ah,0dh
DB' **** **** ',0ah,0dh
DB' **** ****' ,0ah,0dh
DB' **************************** ',0ah,0dh
DB 'Designedbylc Copyright@2013--2014' ,'$'
ﻩTIP DB'MEMORY$' ;定义记忆提示
ﻩBUFFER DB 20DUP(?
) ;定义缓存区
ﻩ
NUM DB 1
ﻩLOD EQU0144H ;记忆显示区光标的位置
DAT ENDS
;--------------------代码段----主程序单元------------------
ﻩCODSEGMENT ;定义代码段
STARTPROCFAR
ASSUMECS:
COD,DS:
DAT
ﻩMOVAX,DAT
MOVDS,AX
CALLCLR ;图形区清屏并设置颜色
ﻩCALLCLRDAT ;秒表数字区清屏并设置颜色
CALLCLRMER ;记忆区清屏并设置颜色
MOV DX,OFFSET BUF ;输出功能说明
MOVAH,09H ;输出字符串
INT21H
MOV DX,OFFSET MESS ;输出功能说明
MOV AH,09H
INT21H
CALLDISMER ;"MEMORY" 的光标位置
MOVDX,OFFSET TIP ;输出"MEMORY"
MOV AH,09H
INT21H
ﻩCALLGO ;设置初值
LOAD:
CALLIOSET ;光标定位
ﻩCALLHALT ;等待输入
MOV DX,0
MOVCH,0
AGAIN:
ﻩCALLTIME ;调用延时程序
ﻩMOVAL,DL ;十分之一秒加一
ﻩADD AL,1
ﻩDAA
CMP AL,10H
JENEXT1 ;满十进位
MOVDL,AL
JMPDISPY ;不满十显示
NEXT1:
MOVDL,0
MOV AL,DH ;秒位加一
ﻩADD AL,1
DAA
ﻩMOVDH,AL
ﻩCMPAL,60H
JNE DISPY
MOVDH,0
ﻩMOV AL,CH ;分位加一
ADD AL,1
ﻩDAA
MOVCH,AL
CMPAL,60H
ﻩJNEDISPY ;满60清零
MOVCH,0
DISPY:
;显示电子秒表
ﻩMOVBX,OFFSET BUFFER ;取缓冲区地址
MOVAL,CH
CALLTRAN ;将分位转变为ASCII码并送缓冲区
ﻩINCBX
INCBX
MOVAL,DH ;将秒位转变为ASCII码并送缓冲区
ﻩCALL TRAN
INCBX
INCBX
ﻩMOVAL,DL ;将十分之一秒位转变为ASCII码并送缓冲区
ﻩCALLTRAN2
PUSHBX
PUSHCX
ﻩPUSHDX
CALL IOSET ;光标置位
ﻩMOVDX,OFFSET BUFFER ;输出缓冲区字符串
MOV AH,09H
INT 21H
POP DX
ﻩPOP CX
POPBX
MOV AH,0BH ;等待键盘输入
INT21H
ﻩANDAL,AL
JZ AGAIN
ﻩMOV AH,08H
INT21H
CMPAL,'M'
ﻩJNZR1
CALLMEMORY
JMP AGAIN
R1:
ﻩCMP AL,'R' ;判断输入是否为R
JNENEXT2 ;不是则判断是否为E
CALL MEMORY ;若是则调用记忆功能保存当前值
MOVCH,0 ;初值清零重新计数
ﻩMOVDL,0
MOVDH,0
ﻩJMP AGAIN
NEXT2:
ﻩCMPAL,'E' ;判断是否为E
JNEAGAIN ;不是则继续计数
NEXT3:
;若是则暂停计数
MOVAH,08H
ﻩINT21H
ﻩCMP AL,'C' ;判断是否输入C
CMP AL,'R' ;判断是否输入R
JNENEXT3 ;若不是则继续等待输入
ﻩCALLMEMORY ;若是则调用记忆功能
ﻩCALL GO ;重新设置初值等待重新启动
CALL IOSET
MOV DX,OFFSETBUFFER
MOV AH,09H
ﻩINT21H
ﻩJMPLOAD
RET
START ENDP
;-------------------子程序单元------------设置初值子程序-----------
GO PROC
ﻩMOVBX,OFFSETBUFFER
MOVAL,'0'
MOV [BX],AL
INC BX
ﻩMOVAL,'0'
ﻩMOV[BX],AL
INCBX
MOVAL,':
'
MOV[BX],AL
INCBX
MOVAL,'0'
ﻩMOV[BX],AL
INC BX
ﻩMOV AL,'0'
ﻩMOV[BX],AL
INC BX
MOVAL,'.'
MOV[BX],AL
ﻩINCBX
MOVAL,'0'
ﻩMOV[BX],AL
INC BX
ﻩMOVAL,'$'
MOV[BX],AL
ﻩRET
ﻩGOENDP
ﻩ;--------------------光标定位子程序----------------------
ﻩIOSET PROC
MOVDX,121DH ;光标定位在18行39列
ﻩMOV BH,00 ;页号
MOVAH,02H ;要设置光标
INT 10H
RET
ﻩIOSETENDP
ﻩHALTPROC
ﻩMOVAH,08H
ﻩINT21H
CMPAL,'S'
JNEHALT
ﻩRET
ﻩHALTENDP
ﻩ;----------------------BCD转ASCII码子程序1------------
TRANPROC
ﻩMOVCL,AL
SHR AL,1
ﻩSHR AL,1
ﻩSHRAL,1
SHRAL,1
OR AL,30H
ﻩMOV[BX],AL
ﻩINCBX
ﻩMOVAL,CL
ﻩANDAL,0FH
ﻩOR AL,30H
ﻩMOV [BX],AL
RET
TRAN ENDP
;----------------------BCD转ASCII码子程序2-----------
ﻩTRAN2PROC
ﻩADDAL,30H
ﻩMOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 秒表 微机 课程设计