




免费预览已结束,剩余18页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课 程 设 计 报 告课程设计名称: 电子秒表 系 : 学生姓名: 班 级: 学 号: 成 绩: 指导教师: 开课时间: 2013-2014 学年 1 学期目 录一、 设计题目-3二、 主要内容-3三、 基本要求-3四、 设计原理与硬件电路-3五、 程序流程图-11六、 程序代码- -12七、 程序运行结果-19八、 进程安排-21九、 心得收获-21十、 成绩评定-22十一、 参考资料-22一、设计题目电子秒表二、主要内容设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。利用功能键进行启/停控制。其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。可用开关控制,也可用按键控制。三、具体要求1)设计可以显示160秒的无存储功能的秒表,最小单位为毫秒。 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调用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端上的输入脉冲应是标准的、精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 = 时钟脉冲周期X预置的计数初值。控制功能表CSRDWRA1A0功 能0100 0写计数器00100 1写计数器10101 0写计数器20101 1写控制字寄存器0010 0读计数器00010 1读计数器10011 0读计数器20011 1 无操作1XXX X禁止使用011X X无操作每个通道: CLK计数脉冲或标准脉冲输入端GATE允许端,当GATE=1时允许计数UT计数值为0时输出一个脉冲由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成:(1) 数据总线缓冲器(8位、三态、双向);(2) 读/写控制逻辑;CS:片选信号,低电平有效; RD:读信号,低电平有效; WR:写信号,低电平有效 A1A0:端口选择信号 (3) 三个通道( 02),由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、锁存器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)上.74ls273管脚功能: 1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。 4、 数据收发器245 当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)*DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态 5、译码器74ls154 74ls154为416线制译码器其引脚图如下图所示 6、7段数码管数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要58=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。 7、汇编程序中附加程序:1CLOUR(字体颜色设置程序)通过字体颜色设置程序,实现屏显字体颜色的改变。当改变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.复位、停止等功能的实现通过对输入字符的判断和各种循环的嵌套调用实现。整体上本程序的主要设计原理是先在数据段中定义“S START R RESET E END C CONTINUE”控制字符串,并定义缓冲区。将数据段的段基址送DS,并将“S START R RESET E END C CONTINUE”显示,同时调用GO子程序,将显示结果初始化。同时设置光标,启动计时,启动延时程序,将百分之一秒加1并将其设置为压缩BCB码,当其CF不为1时,送屏幕显示,当其为1时,将其设置为0,并在秒上加1,当秒等于60时,其置0,当其小于60时,送屏幕显示。在计时过程中,如果键入R,则将其复位,并重新开始计时,当键入E时,计时暂停,如果键入C,则继续计时,如果键入R,则复位,设置为00:00,当再次键入S时,再次计时开始。五、程序流程图-六、程序代码DAT SEGMENT ;设置数据段BUF DB Input start(S)or memory(M)or end(E) or continue(C)or restart(R)$ ;设置功能说明 MESS 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 * ,0ah,0dh DB Designed by l c Copyright 2013-2014 ,$TIP DB M E M O R Y$ ;定义记忆提示BUFFER DB 20 DUP(?) ;定义缓存区NUM DB 1 LOD EQU 0144H ;记忆显示区光标的位置DAT ENDS;-代码段-主程序单元-COD SEGMENT ;定义代码段START PROC FARASSUME CS:COD,DS:DAT MOV AX,DATMOV DS,AXCALL CLR ;图形区清屏并设置颜色CALL CLRDAT ;秒表数字区清屏并设置颜色 CALL CLRMER ; 记忆区清屏并设置颜色 MOV DX,OFFSET BUF ;输出功能说明MOV AH,09H ;输出字符串 INT 21H MOV DX,OFFSET MESS ;输出功能说明MOV AH,09H INT 21H CALL DISMER ;MEMORY 的光标位置 MOV DX,OFFSET TIP ;输出 MEMORYMOV AH,09HINT 21HCALL GO ;设置初值LOAD: CALL IOSET ;光标定位CALL HALT ;等待输入MOV DX,0MOV CH,0AGAIN: CALL TIME ;调用延时程序 MOV AL,DL ;十分之一秒加一ADD AL,1DAACMP AL,10HJE NEXT1 ;满十进位MOV DL,ALJMP DISPY ;不满十显示NEXT1: MOV DL,0MOV AL,DH ;秒位加一ADD AL,1DAAMOV DH,ALCMP AL,60H JNE DISPYMOV DH,0MOV AL,CH ;分位加一ADD AL,1DAAMOV CH,ALCMP AL,60HJNE DISPY ;满60清零MOV CH,0DISPY: ;显示电子秒表MOV BX,OFFSET BUFFER ;取缓冲区地址 MOV AL,CHCALL TRAN ;将分位转变为ASCII码并送缓冲区INC BXINC BXMOV AL,DH ;将秒位转变为ASCII码并送缓冲区CALL TRANINC BXINC BXMOV AL,DL ;将十分之一秒位转变为ASCII码并送缓冲区CALL TRAN2PUSH BXPUSH CXPUSH DXCALL IOSET ;光标置位MOV DX,OFFSET BUFFER ;输出缓冲区字符串MOV AH,09HINT 21HPOP DXPOP CXPOP BXMOV AH,0BH ;等待键盘输入INT 21HAND AL,ALJZ AGAINMOV AH,08HINT 21HCMP AL,M JNZ R1CALL MEMORYJMP AGAINR1:CMP AL,R ;判断输入是否为RJNE NEXT2 ;不是则判断是否为ECALL MEMORY ;若是则调用记忆功能保存当前值MOV CH,0 ;初值清零重新计数MOV DL,0MOV DH,0JMP AGAINNEXT2:CMP AL,E ;判断是否为E JNE AGAIN ;不是则继续计数NEXT3: ;若是则暂停计数MOV AH,08HINT 21HCMP AL,C ;判断是否输入CCMP AL,R ;判断是否输入RJNE NEXT3 ;若不是则继续等待输入CALL MEMORY ;若是则调用记忆功能CALL GO ;重新设置初值等待重新启动CALL IOSETMOV DX,OFFSET BUFFERMOV AH,09HINT 21HJMP LOADRETSTART ENDP;-子程序单元-设置初值子程序-GO PROC MOV BX,OFFSET BUFFERMOV AL,0MOV BX,ALINC BXMOV AL,0MOV BX,ALINC BXMOV AL,:MOV BX,ALINC BXMOV AL,0MOV BX,ALINC BXMOV AL,0MOV BX,ALINC BXMOV AL,.MOV BX,ALINC BXMOV AL,0MOV BX,ALINC BXMOV AL,$MOV BX,ALRETGO ENDP;- 光标定位子程序-IOSET PROC MOV DX,121DH ;光标定位在 18行 39列MOV BH,00 ;页号MOV AH,02H ;要设置光标INT 10HRETIOSET ENDP HALT PROCMOV AH,08HINT 21HCMP AL,SJNE HALTRETHALT ENDP; -BCD转ASCII码子程序1-TRAN PROC MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV BX,ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV BX,ALRETTRAN ENDP; -BCD转ASCII码子程序2-TRAN2 PROC ADD AL,30HMOV BX,ALRETTRAN2 ENDP;-延时子程序-TIME PROC PUSH CXPUSH AXMOV AX,06EEH ; 通过改变AX的初值 来校准 秒表MOV CX,0FFFFHA1: DEC AXJNZ A2JMP A3A2: DEC CXJNZ A2JMP A1A3: POP AXPOP CXRETTIME ENDP;-记忆功能子程序-MEMORY PROC PUSH DXPUSH BXPUSH AXCMP NUM,20JE X2ADD NUM,1X1: MOV DX,LODADD DH,NUMMOV BH,00MOV AH,02HINT 10HMOV DX,OFFSET BUFFERMOV AH,09HINT 21HPOP AXPOP BXPOP DXRETX2: CALL CLRMERMOV NUM,1JMP X1MEMORY ENDP;- 图形区清屏并设置颜色子程序-CLR PROC MOV AH,06H ;使屏幕上滚MOV AL,18H ;上滚行数MOV CX,0000H ; 滚动区域左上角的行号 列号MOV DX,1840H ; 滚动区域右下角的行号 列号MOV BH,2CH ; 空白行属性INT 10HRETCLR ENDP;-数据区清屏并设置颜色子程序-CLRDAT PROC MOV AH,6MOV AL,1MOV CX,121DHMOV DX,0E23HMOV BH,6EHINT 10HRETCLRDAT ENDP;-记忆区清屏并设置颜色子程序-CLRMER PROC PUSH AXPUSH BXPUSH CXPUSH DXMOV AH,6MOV AL,18HMOV CX,0141HMOV DX,184FHMOV BH,5EHINT 10HPOP DXPOP CXPOP BXPOP AXRETCLRMER ENDP;-记忆提示 光标定位-DISMER PROC MOV AH,02HMOV BH,00MOV DX,0043HINT 10HRETDISMER ENDPCOD ENDS ;结束代码段END START ;结束源程序七、程序运行结果按下开始键(S)实现开始功能按下暂停键(E)实现暂停功能按下继续键(C)实现继续功能按下存储键(M)实现存储功能按下复位键(R)实现复位功能八、进度安排周一周二周三周四周五讲课设内容,安排任务查资料,确定硬件电路方案编程调试编程调试写总结报告九、心得体会经过这次课程设计,我觉得我有了很大的收获:1我大大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南农业技术员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河南-河南不动产测绘员五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-河北-河北医技工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-江苏-江苏药剂员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西计算机信息处理员五级初级历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西信号工-机车信号设备维修三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东汽车修理工(技师/高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东无损探伤工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东保健按摩师五级(初级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽地质勘查员五级(初级工)历年参考题库典型考点含答案解析
- 2025至2030中国人血浆制品行业运营态势与投资前景调查研究报告
- 预防接种注射法
- 2024年上海市行政执法类公务员招聘笔试参考题库附带答案详解
- 如何提高美术课堂教学的有效性
- 茂县生活垃圾资源化综合利用项目环评报告
- 水电站新ppt课件 第一章 水轮机的类型构造及工作原理
- 护理查对制度课件
- 市政工程占道施工方案
- GB/T 39965-2021节能量前评估计算方法
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- GB/T 17449-1998包装玻璃容器螺纹瓶口尺寸
评论
0/150
提交评论