电子与控制工程学院
计算机原理与接口技术
课程设计
姓 名
学 号
专 业 建筑设施智能技术
设计题目 可任意启动停止的电子秒表
指导老师
目录
1电子秒表课程设计要求·············································1
2关键字································································1
3摘要···································································1
4综合实验目的························································1
5引言···································································1
5.1.1使用各个芯片的作用及工作原理···································2
5.1.2 8253可编程外围芯片介绍··········································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次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
二、关键字
8086 8255 8253 控制字
三、摘要
用汇编语言设计数字秒表,用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输出方波的频率:2000 Hz。
定时器1输出方波100HZ,输出方波周期Tout=1/100=1ms。8253A每隔1ms引起一次中断,作为定时信号。可用1ms作基本计时单位。
253的引脚图及硬件连接图如下图示:
《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预置的计数初值。
控制功能表
由于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线控制。
六、程序流程图
七、程序代码
DATAS SEGMENT
DW 100 DUP(?)
ZXM DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH
HOU1 DB 0
HOU2 DB 0
MIN1 DB 0
MIN2 DB 0
SEC1 DB 0
SEC2 DB 0
; buf BYTE 0,1,2,3,4,5,6,7,8,9;显示缓冲区
; FLAG BYTE 0
; STATE BYTE 0
; KEYMARK BYTE 0;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
DW 100 DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
;;;;;;;;;;;;;;;;;;中断初始化
PUSH DS
PUSH BX
MOV AX,0000H
MOV DS,AX
MOV BX,0008H
MOV DX,OFFSET TIAOSHI
MOV [BX],DX
MOV BX,000AH
MOV DX,SEG TIAOSHI
MOV [BX],DX
POP BX
POP DS
MOV AX,DATAS
MOV DS,AX
MOV AX,DATAS
MOV SS,AX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV AL,89H ;8255 A口和B口输出,C口输入
MOV DX,206H
OUT DX,AL
MOV AL,3FH
MOV DX,202H
OUT DX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV AL,00110110B ;初始化8253,CNT0;
MOV DX,0406H
OUT DX,AL
MOV AX,500
MOV DX,0400H
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV AL,01010000B ; CNT1 ;
MOV DX,0406H
OUT DX,AL
MOV DX,0402H
MOV AL,20
OUT DX,AL
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SHUCHU:
LEA SI,ZXM
MOV BX,0000H
MOV AL,11111110B
MOV DX,200H
OUT DX,AL
MOV BL,SEC2
MOV AL,[SI+BX]
MOV DX,202H
OUT DX,AL
MOV CX,200H
S1: LOOP S1
MOV AL,11111101B
MOV DX,200H
OUT DX,AL
MOV BL,SEC1
MOV AL,[SI+BX]
MOV DX,202H
OUT DX,AL
MOV CX,200H
S2: LOOP S2
MOV AL,11111011B
MOV DX,200H
OUT DX,AL
MOV BL,MIN2
MOV AL,[SI+BX]
MOV DX,202H
OUT DX,AL
MOV CX,200H
S3: LOOP S3
MOV AL,11110111B
MOV DX,200H
OUT DX,AL
MOV BL,MIN1
MOV AL,[SI+BX]
MOV DX,202H
OUT DX,AL
MOV CX,200H
S4: LOOP S4
MOV AL,11101111B
MOV DX,200H
OUT DX,AL
MOV BL,HOU2
MOV AL,[SI+BX]
MOV DX,202H
OUT DX,AL
MOV CX,200H
S5: LOOP S5
MOV AL,11011111B
MOV DX,200H
OUT DX,AL
MOV BL,HOU1
MOV AL,[SI+BX]
MOV DX,202H
OUT DX,AL
MOV CX,200H
S6: LOOP S6
JMP SHUCHU
PANDUAN: INC SEC2
CMP SEC2,0AH
JNZ SHUCHU
MOV SEC2,0
INC SEC1
CMP SEC1,0AH
JNZ SHUCHU
MOV SEC1,0
INC MIN2
CMP MIN2,0AH
JNZ SHUCHU
MOV MIN2,0
INC MIN1
CMP MIN1,06H
JNZ SHUCHU
MOV MIN1,0
INC HOU2
CMP HOU2,0AH
JNZ SHUCHU
MOV HOU2,0
INC HOU1
CMP HOU1,06H
JNZ SHUCHU
MOV HOU1,0
JMP SHUCHU
TIAOSHI PROC
;;;;;;;;;;;;中断子程序
MOV AL,01010000B ; 初始化CNT1 ;
MOV DX,0406H
OUT DX,AL
MOV DX,0402H
MOV AL,20
OUT DX,AL
JMP PANDUAN
;;;;;;;;;;;;;;;;;;;;;;;
RET
TIAOSHI ENDP
DELAY PROC
PUSH CX
MOV CX,29h
W10MS: LOOP W10MS
POP CX
RET
DELAY ENDP
CODES ENDS
END START
八、程序及硬件系统调试情况
按下暂停键实现暂停功能
继续计数后按下清零键实现清零功能
程序演示图
总体连线图
九、设计心得
经过这次课程设计,我觉得我有了很大的收获,:
1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。而通过这次课程设计,使自己的研发能力有了很大堤提高。
2.我对于工科设计的严谨性,仔细性有了更深地体会。我们本次设计的秒表仅仅是工科设计中非常简单的一个,思想并不是非常复杂,手头也有一定的资料,但是我们在研发,调试过程中还是出现了一些错误。简单的一些程序好检查,但是如果说是以后要设计的一些大型程序,出现故障就不是那么容易检查了。这就要求我们在以后的工程设计当中要更为细致仔细。
3我的专业知识得到了很好的巩固,对于本专业的一些问题有了更深的思考。原来有很多知识只是死学课本,而并没有与实际相结合,而这次课程设计使我的专业知识与实际有了很好的契合。
4.在程序设计中不能够想当然,许多程序,功能在脑子中想得很好,但是将其转变城实际程序就会出现许多问题。如何由脑子里的构想转变成实际的程序,这是我以后需要提高的一点。
5.掌握了一些检查与判断错误的经验与方法,对今后的专业学习与设计有着深刻的影响。
6.对专业设计的许多流程、原则、注意事项以及撰写专业报告的有关事项有了一定的了解。
7.学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。
总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。
十、参考文献
[1] 顾晖等。微机原理与接口技术-基于8086和Proteus仿真[M].电子工业出版社陈继红等. 微机原理及应用[M].高等教育出版社,2010
[2]戴梅萼等.微型计算机技术及应用[M].清华大学
[3]沈美明等.IBM-PC汇编语言程序设计 [M]. 清华大学出版社
[4]彭虎等. 微机原理与接口技术(第2版) [M].电子工业出版社,2008
[5]冯博宁,吴宁主编.微型计算机原理与接口技术(第三版).清华法学出版社。
微机原理课程设计设计报告姓名朱文斋班级学号30905020xx教师张荣标20xx年1月5日微机原理课程设计一目的结合微型计算机原理…
河北科技大学课程设计报告学生姓名学号专业班级课程名称学年学期指导教师年月课程设计成绩评定表目录一课程设计的目的1二设计题目1三设计…
接口技术基础实验报告学院计算机科学与技术学院班级计091学号09130220xx姓名曹恒楼指导老师顾晖时间20xx616接口技术课…
微机原理课程设计报告设计名称:LED七段数码管数字钟学院:电子信息学院班级:电科091提交时间:20##年6月15日一:设计内容设…
南京航空航天大学微机原理课程设计数据采集系统中断法微机原理课程设计数据采集系统中断法南京航空航天大学微机原理课程设计数据采集系统中…
数字秒表课程设计总结报告一课题名称数字秒表设计二内容摘要本实验要求设计一个计数范围在0099秒的数字秒表电路设计基本包括01秒脉冲…
电子秒表1设计课题任务及指标1通过本设计的选题方案论证设计计算安装调试资料整理撰写设计报告等环节初步掌握电子工程设计方法和组织实施…
微机原理课程设计报告一设计目的培养和锻炼在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力通过课程设计要求熟悉和…
课程设计综合实验报告20xx20xx年度第一学期名称数字电路实验题目电子秒表设计院系电气与电子工程学院班级通信XXXX班学号XXX…
西安郵電學院控制系统课程设计报告书系部名称学生姓名专业名称班级时间信息与控制系XXX测控技术与仪器测控XXXX20xx年9月13日…
微机原理课程设计总结以前从没有学过关于汇编语言的知识,起初学起来感觉很有难度。当知道要做课程设计的时候心里面感觉有些害怕和担心,担…