版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 合肥学院计算机科学与技术系课程设计报告2014 2015 学年第 一 学期课程微机原理课程设计名称计时数字时钟学生姓名学号专业班级指导教师张向东 龙夏2014-12-15计时数字时钟一. 题义分析及解决方案:设计一个接口与七段LED显示器,显示一个计时时钟,显示初值为00分00秒,每隔一秒改变一次显示值,60秒为一分钟,LED显示器显示分、秒的动态值。1 题义需求分析: 根据题意设计一个接口和七段LED显示器,本设计能显示一个具有固定初值的倒计时钟,能每隔固定时间间隔(1s),动态刷新显示值,并且能用LED显示器显示分秒的动态值,需要解决如下问题:1)选择怎样的接口问题?2)显示设备的选择问
2、题?3)初值的设置和输入问题?4)计数值与显示码的转换及动态值显示问题?5)相关芯片与译码器的选择问题?2解决问题方法及思路:1)硬件部分:根据七段LED显示器的硬件结构,为减少器件的使用量,可以选择芯片8255A,将七段LED显示器与8255A的两个八位并行输出口连接,比如使用8255的A口和B口。其中,A口用于位选,确定选择哪一个显示灯;B口用于段选择,通过改变B口中的段码,使得显示灯能够显示出相应的时间数字。8255与七段LED显示器采用的共阴极的接法。2)软件部分:根据题义要求,可以设立一个段码表和一个显示缓冲区,以动态刷新的方式,显示四位数字表示的时间。前者存放的是共阴极方式下数字0
3、-9的段码;后者存放的是显示初值。设置好8255的工作方式后,运行显示程序,将缓冲区中的数字通过LED灯显示出来。为消除串码和闪烁,应让每位数字显示25毫秒后,关闭显示,之后再显示下一个数字。四位数字显示完成后,将缓冲区中的时间减少一秒,重复显示,直到时间减少到00分00秒。二 硬件选择分析1、8255芯片:并行输入/输出接口1) 8255的功能分析:(1)芯片8255在本设计中主要用于选择位码和输出段码,同时也减少了器件数量。Intel 公司生产的可编程并行接口芯片8255A 已广泛应用于实际工程中,例如8255A 与A/D、D/A 配合构成数据采集系统,通过8255A 连接的两个或多个系统
4、构成相互之间的通信,系统与外设之间通过8255A 交换信息,等等,所有这些系统都将8255A 用作为并行接口。(2)、8255引脚图:8255是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、口和口。三个端口都可以作为输入端口或输出端口。口有三种工作方式:即方式、方式和方式,而口只能工作在方式或方式下,而口通常作为联络信号使用。8255的工作只有当片选CS效时才能进行。而控制逻辑端口实现对其他端口的控制。2) 芯片选择8255与8253的比较:8255:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存 器)均被清除,所有I/O口均被置成输入方式。CS:片选
5、信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器,
6、一个8位的输入输出缓冲器。PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。8253: 8253具有3个独立的16位计数器,6种不同的工作方式。 计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零。当作为定时器工作时,每当计数单元为零时,计数寄存器内容
7、会自动重新装入 计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相对于CLK信号频率)脉冲序列。 当作为计数器工作时,表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲信号3) 8255A的引脚信号(1). 与外设相连的 图2-1 8255A内部结构框图 PA7PA0:A口数据信号线。PB7PB0:B口数据信号线。PC7PC0:C口数据信号线。4)8255A的端口录址及操作功能表:A1A0端口号及其功能00010端口A>数据总线输入操作(读)01010端口B>数据总线10010端口C>数据总线00100
8、数据总线>端口A输出操作(写)01100数据总线>端口B10100数据总线>端口C11100数据总线>控制字寄存器xxxx1未选中8255A,数据总线>三态断开功能1 1010 非法状态xx110数据总线>三态表2-1 8255A端口录址及操作功能(1)8255A的方式控制字: D7 D6 D5 D4 D3 D2 D1 D01A组工作方式A口I/OC7-c4 I/OB组工作方式B口I/OC3-c0 I/O | | | | | | | 特征位 00方式0 1输入 1输入 0方式0 1输入 1输入 01方式1 0输出 0输出 1方式1 0输出 0输出 10方式2
9、图2-2 8255A的方式控制字8255A方式选择字(2)8255A的置位/复位控制字 D7 D6 D5 D4 D3 D2 D1 D00×××写入位编码写入内容 写入位 | 编码 | D0 D7 000111 0写入0 1写入1 图2-38255A的端口置位/复位控制字格式 (3)8255A的主要技术参数分析8255A技术参数表 参数名称符号测试条件规范值最大最小输入低电平电压VIL0.8v-0.5v输入高电平电压VIHVcc2.0v输入低电平电压<数据总线>VOLIOL=2.5mA0.45v输入低电平电压<外部端口>VOLIOL=1.7m
10、A0.45v输入高电平电压<数据总线>VOHIOH=-400A2.4v输入高电平电压<外部端口>VOHIOH=-200A2.4v达林顿驱动电流IDARREXT=750VEXT=1.5v4.0mA1.0mA电源电流ICC120mA输入负载电流IILI=VCC0v+10mA-10mA输出浮动电流IOFLVOUT=VCco0v+10mA-10mA 表2-2 8255A的技术参数表由上可知:8255A的达林顿驱动电流最大值为4.0mA。5)8255在本实验中的作用: 1)8255作为可编程接口芯片实现了外设(LED数码管显示器,逻辑开关)与8086之间的数据传输,解决了两者之间
11、的速度不匹配的矛盾,具有数据缓冲功能。2)8255的A口工作与方式0,作为输入口,其PC0PC7分别与逻辑开关的K1k8相连,其中开关量k8用于判断是否暂停(若为0不暂停,若为1则暂停),k7用于判断是否修改,K5K6判读修改那一位,K1k4为要修改的值;B口工作与方式0,作为输出口,其PB0PB7分别与LED数码管显示器的八段a.b.c.d.e.f.g.dp相连,C口作为输出口,其PA0PA3L分别与LED数码管显示器的ED3LED0相连,作为位选。6) CPU接口(数据总线缓冲器和读/写控制逻辑)(1)数据总线缓冲器这是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的。这个缓冲器是82
12、55A与CPU数据总线的接口。所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传递的。(2)读/写控制逻辑它与CPU的6根控制线相连,控制8255A内部的各种操作。控制线RESET用来使8255A复位。和地址线A1及A0用于芯片选择和通道寻址。控制线 和 用来决定8位内部和外部数据总线上信息传送的方向,即控制把CPU的控制命令或输出的数据送到相应的通道,或把状态信息或输入数据送到CPU。8255A的读/写控制逻辑的作用,是从CPU的地址和控制总线上接受输入的信号,转变成各种命令送到A组或B组控制电路进行相应的操作。
13、7)与CPU相连的RESET:复位信号。当信号来时,所有寄存器都被清除。同时三个数据端口被自动置为输入端口。D7D0:它们是8255A的数据线和系统总线相连。CS:片选信号。在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。只有当有效时,读信号写才对8255进行读写。 RD:读信号。当此信号有效时,CPU可从8255A中读取数据。WR:写信号。当此信号有效时,CPU可向8255A中写入数据。A1、A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,共4个端口。规定当A1、A0为00时,选中A
14、端口;为01时,中B端口;为10时,选中C端口;为11时,选中控制口。2选择器件LED:1)芯片在本设计中的作用:LED发光二极管在本设计中采用7段数字发光二极管,作为终端显示。显示时间的分秒。2)LED的功能分析:物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。 3)工作原理:当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。4)数字成像:将七个发光管进行组合,排列成数字图形
15、8,再根据需要控制七个管的亮与灭,即可显示出定义数字。有段选码和位选码确定数字18的输出并在延时程序中保持复位。它是一种当外加电压超过额定电压时发生击穿,并因此而产生可见光的器件。这种数码管是有7段或8段笔画显示器组成一个字符而形成的。如下图:(a) (b) (c) (d)图2-4LED结构图LED显示管段选码编码表数字dpgfedcba二进制编码0001111113Fh10000011006h2010110115Bh3010011114Fh40110011066h5011011016Dh6011111017Dh70000011107h8011111117FhE0111100179h表2-3
16、LED显示管段选码编码表5) LED的技术参数分析LED发光二极管的压降一般为1.5-2.0V,其工作电流一般取10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。 由于8255A的最大驱动电流为4.0mA,而LED的工作电流一般为10-20mA,所以需要加一个驱动器74LS244。4、 开关 1)开关的作用: 本次设计需要用七位开关置数来修改时间。 2)开关功能的分析:注:由于本程序后来改进加入了时的倒计,所以下面的开关是针对有时、分、秒的设计开关K4K1位设置输入的时间数字(015),K6K5用来控制对不时间的分秒位数的修改,k8控制程序的运行与否,仅当K8为1时即
17、程序停止运行,K7为1时才可以修改时间。 3)逻辑开关及其编码K4 K3 K2 K1数 字0 0 0 000 0 0 110 0 1 020 0 1 130 1 0 040 1 0 150 1 1 060 1 1 171 0 0 081 0 0 19K5 K6 对应的操作0 0 修改秒位的低位0 0 修改秒位的高位0 1 修改分位的低位0 1 修改分位的高位图2-6逻辑开关 表2-6逻辑开关逻辑编码表开关高电平:+5V、低电平:0V三硬件总逻辑图及其说明图3-1硬件总逻辑图AD0AD19经锁存器分别送往总线收发器和地址译码器。经总线收发器将低八位数据与8255的八位数据线相连地址线A1、A2与
18、8255的A0、A1相连,即偶地址有效。控制总线RD、WR、RESET分别与8255相应的控制信号线连接。片选信号CS0与8255的CS信号连接,则8255的端口地址为04A004A6。8255的PA口用于存放位选码,使用的是高四位,分别连接到四个七段LED显示器上。使用的是共阴极接法。PB口用于存放段选码,八位全部连接到八个二极管的阳极上。所以,PA口中的信号是“0”才能表示选中了该位七段LED显示器,而PB口中信号为“1”表示使该二极管发光,否则,不发光。四控制程序设计 1、控制程序设计思路说明: 程序框架是一个主程序用于设置8255的工作方式;一个显示程序用于显示当前的时值、分值和秒值,
19、在其中还设置了一个小的程序用于延时,以稳定显示的数值。采用动态刷新的方式将六位数字显示一遍。每遍约20秒的时间,显示约50次可使得时间约为一秒。然后将时间减少一秒,再次将时间显示出来。如此循环,直到时间减少到00时00分00秒为止。 2、程序流程图置时间初值读入时间值时分秒的初值保存到时间区初始化调用显示子程序调用计时子程序 Y N N Y21第 页 共 21 页图4-1 总流程图修改缓冲区子程序开始读缓冲区首地址SI和len1首地址送BXAX<-SI,DX<-BXSI,BX中地址指向的内容送AX,DXAL<-AL-1AL>-1SI<-AX保存数据返回AL<
20、-DL;AH=AH-1AH>-1AH<-DHSI<-SI+1BX<-BX+1NYNY图4-2 计时子程序流程图显示子程序DI=D+1开始设初值DI=50H读数据缓冲区首地址SI设置位选选中要显示的 位数从秒各位到时十位查段表转换AL+BX->AL送段选PB口地址送位选PA口地址CX!=0DI!=0结束SI=SI+1YNYN 图4-3 显示子程序流程图3、控制程序.MODELTINYCOM_ADD EQU0F003H ;控制口偏移量PA_ADDEQU0F000H ;PA口偏移量PB_ADDEQU0F001H ;PB口偏移量PC_ADDEQU0F002H ;PC口偏移
21、量.STACK 100.DATAlen db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码表time db 00h,00h,00h,00h.CODESTART: loop3: MOVAX,DATAMOVDS,AXNOP MOV dx,COM_ADD ;工作方式寄存器端口地址 MOV al,89h ;10001001b初始化工作方式控制字 OUT dx,al mov dx,PC_ADD in al,dx and al,80h cmp al,80h ;/ 暂停 jz L CALL display1 ;调用显示子程序,显示一秒 CALL alter ;调用数
22、据缓冲区修改子程序 JMP loop3 L: CALL display1 MOV dx,PC_ADD IN al,dx AND al,40h CMP al,40h ;是否修改 JNZ startA: MOV si,offset time ;数据缓冲区送BX MOV dx,PC_ADD ;PC口端口地址 IN al,dx ;读八位开关量 MOV ah,al ;AH=AL 保存数据,下面的操作会改变al的值 AND ax,0f30h ;选取5 6进行输入选择保留 ah低四位 A0: CMP al,00h JNZ A1 CMP ah,10 JB A5 Call error A1: cmp al,10
23、h jnz A2 add si,1 cmp ah,6 Call error jb A5 A2: cmp al,20h jnz A3 add si,2 cmp ah,10 jb A5 Call error A3: cmp al,30h jnz A5 add si,3 cmp ah,6 jb A5 Call error A5: MOV byte ptr si,ah CALL display1 ;调用显示子程x JMP START ;*error PROC ;输入错误提示子程序 PUSH dx ;保护DX PUSH ax ;保护AX PUSH si PUSH di MOV di, 0c8h LOOp
24、4: MOV ah,00Fh ;设置位选 选中 mov al,71h MOV dx,PB_ADD ;PB口地址 OUT dx,al ;送段选码 MOV al,ah ;位选码AL MOV dx,PA_ADD ;PA口地址 OUT dx,al CALL delay DEC di JNE loop4 CALL DISPLAY1 pop di POP si POP ax POP dx JMP LOOP3 error ENDP ;*display1 PROC ;显示子程序 PUSH si PUSH dx PUSH cx PUSH bx PUSH ax PUSH di MOV di,60 ;控制1s的计时
25、loop1: MOV si,offset time ;数据缓冲区首地址送SI MOV cx,4 MOV ah,0feh ;设置位选 选中秒的个位loop2: MOV al,byte ptr si ;位移量 MOV bx,offset len XLAT ;查数据段表,al+bx->al MOV dx,PB_ADD OUT dx,al ;送段选码 MOV al,ah ;位选码AL MOV dx,PA_ADD OUT dx,al CALL delay ADD si,1 ROL ah,1 LOOP loop2 DEC di JNE loop1 POP di POP ax POP bx POP c
26、x POP dx POP si RETdisplay1 ENDP;*alter PROC ;修改数据缓冲区子程序 PUSH si PUSH ax PUSH dx MOV si,offset time ;数据缓冲区 MOV ax,si ;缓冲区中的秒值取入ax ADD AL,1 CMP al,10 JB loop6 MOV al,00h ADD ah,1 CMP ah,6 JB loop6 MOV ah,00h MOV si,ax INC si INC si MOV ax,si ;缓冲区中的秒值取入ax ADD AL,1 CMP al,10 JB loop6 MOV al,00h ADD ah,
27、1 CMP ah,6 JB loop6 MOV ah,00h MOV si,ax loop6:MOV si,ax ;修改后的值再保存回缓冲区 POP dx POP ax POP si RETalter ENDP;*delay PROC ;延时子程序4190us PUSH cx MOV cx,500loop5: LOOP loop5 POP cx RET delay ENDPExit:ENDSTART五上机调试过程 1、硬件调试:本实验所用的硬件主要是实验箱和集成的七段LED显示板。共有四个七段LED显示器,采用的是共阴极接法,七段LED的共阴极接地,CE端接低电平,七段LED的阳极接到八个模拟
28、开关上。改变开关量,则七段LED显示出相应的数字。将四个七段LED测试完后,全部正常。硬件调试成功。2、软件调试: 1)此次实验的设备原因,在正式编程之前要加入一段设备的初始化程序,检查设备,读取设备的一些信息,然后是自己设计代码完成实验要求,2)来添加的新的任务中要求初始值可以通过逻辑开关随意设置,这就要对C口的PC0PC7另外编写一段程序进行相应的判断和控制。这些都不是很困难,关键是编写的程序既要完成些功能又要简短才行。若程序太长,虽然可以编译并且链接成功,但显得很烦琐,看起来也很费力。所以,修改的程序时尽量使用循环控制语句来完成的。3)有太多的判断,再根据判断转去执行不同的操作,这就需要
29、使用标号,但同样的标号如果使用太多就又会给程序产生逻辑上的混乱,所以我使用查表法将要判断的值存入缓冲区中,要判断时就于与缓冲区中的值比较,这样就使得程序简单明了。有语法错误修改起来就比较容易了。3、联机调试:在串口通讯成功时,打开程序文件,编译后连接,程序结构无问题时连接成功,开始单步运行并调试,然后全速运行。 六设计结果分析及问题讨论1、课程设计结果及分析:成功的完成了计时1S的显示及在分秒之间的转换,能循环计时。 2、问题讨论:1)8255的工作方式2)程序的优化3)输入及运行开关的设置与确定 3、收获,体会和建议:在微机原理理论课程的学习结束以后,感到自己学到的知识非常片面,而课程设计就是一个很好的机会,不仅可以巩固书本上的内容,更可以让知识和应用结合起来。事实证明这确实对我的学习产生了很大的帮助,从刚开始对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47240.1-2026半导体器件人体通信半导体接口第1部分:总则
- GB 6246-2026消防水带
- 上海民航职业技术学院《国际经济学》2025-2026学年期末试卷
- 上海工艺美术职业学院《国际结算》2025-2026学年期末试卷
- 上海电机学院《文化学概论》2025-2026学年期末试卷
- 上海邦德职业技术学院《大学写作训练》2025-2026学年期末试卷
- 苏州城市学院《德育与班级管理》2025-2026学年期末试卷
- 沈阳音乐学院《测绘学概论》2025-2026学年期末试卷
- 山西同文职业技术学院《电动力学》2025-2026学年期末试卷
- 上海外国语大学贤达经济人文学院《服务贸易》2025-2026学年期末试卷
- 2024年广西北部湾大学招考聘用98名专任教师重点基础提升难、易点模拟试题(共500题)附带答案详解
- 新教科版五年级下册科学第一单元生物与环境知识点
- (正式版)JBT 14449-2024 起重机械焊接工艺评定
- (完整文本版)体检报告单模版
- 江苏省南京师大附中、淮阴中学自主招生考试化学试题
- 土石坝安全监测与维修养护-土石坝护坡的修理
- 重庆市园林工程师中高级考试复习题-园林理论
- 电牵引采煤机培训
- 水生生物学课件 浮游幼虫
- 六级词汇电子版(含例句)上
- 9社会主义核心价值观(爱国)
评论
0/150
提交评论