微机原理与接口技术课程设计-倒计时
- 格式:doc
- 大小:532.50 KB
- 文档页数:18
微机原理与接口技术课程设计目录目录 (1)摘要 (1)关键词 (1)第一章引言 (2)第二章硬件系统设置 (3)2.1硬件系统原理图 (3)2.2芯片资料介绍 (4)2.2.18253芯片 (4)2.2.1.1 8253内部计数器的3个引脚 (4)2.2.1.2 8253的工作方式 (4)2.2.1.3 8253的编程 (4)2.2.28255芯片 (5)2.2.2.1 连接外设的数据端口 (5)2.2.2.2 8255工作方式 (5)2.2.2.3 8255的编程 (5)2.2.38259芯片 (6)2.2.3.1 8259的编程及操作方式 (6)2.2.474LS240芯片 (7)2.2.4.1 74ls240内部结构 (7)2.2.4.2 芯片介绍 (7)2.2.575452芯片 (7)2.2.5.1 75452内部结构 (7)2.2.5.2 芯片介绍 (8)2.3线路连线 (8)2.3.1 实验连线 (8)2.3.2 时钟脉冲的产生 (8)2.3.3 键盘的设置 (9)2.3.4 LED显示器的设置 (10)第三章软件系统设置 (12)3.1程序流程图 (12)3.1.1 主程序流程图 (12)3.1.2 ‘0’ 处理流程图(开始计时) (13)3.1.3 ‘1’处理流程图(名次存储) (13)3.1.4 ‘2’ 处理流程图(显示成绩) (14)3.1.5‘3’处理流程图(比赛结束1) (15)3.1.6 ‘4’处理流程图(比赛结束2) (15)1微机原理与接口技术课程设计3.1.7 中断处理流程图 (16)3.2参数信息 (17)第四章课程设计总结 (18)4.1心得体会 (18)4.2源程序清单 (19)4.3参考文献 (25)2微机原理与接口技术课程设计摘要数字式秒表是一种用于体育中田径比赛的一种计时装置。
本次课程设计是做一个数字式秒表,主要是利用8253作为定时器,为秒表提供定时脉冲,使用7段码显示器作为秒表时间显示,用键盘控制秒表。
微机原理与接口技术8254 8255 8259倒计时秒表实验报告内蒙古师范大学计算机与信息工程学院《微机原理与接口技术期末实验设计报告》设计题目指导教师姓名学号日期希润高娃倒计时秒表职称讲师一、实验要求设计一个倒计时表,用8255设置灯,用8254记录时间,8259提供中断。
其中MIR7接KK1设置倒计时的总时间,每按一次脉冲,总时间加1,SIR1接KK2确认开始倒计时(DI=0对KK2屏蔽,DI=1对KK2开放),MIR6接8254设置准确的1s倒计间隔时间。
利用8254芯片的计数功能,芯片有5中工作方式,选择方式2和方式3都可以输出连续的波形,故都可以符合实验要求。
8254可以采用二进制计数或是BCD 码计数,如果用二进制计数,最大范围是65535,如果采用BCD码计数,最大范围是99999。
使用2个计数器,可以达到输出周期为1秒的方波。
计数初值=fclki/fouti。
利用8255芯片,设置灯的初始状态。
利用8259芯片的中断功能,当中断来时,启动8254芯片,进入计数状态。
IP=中断向量*4,CS=中断向量*4+2;二、设计2.1 硬件设计2.1.1 按下图的电路图连接电路图1 电路连线2.1.2电路说明该电路是在唐都实验箱上的操作,2片8259芯片是嵌在系统总线下,只有主片的中断序号为6和7 的两个口是对外开放的,从片的中断序号为1的口是对外开放的。
8254芯片计数器0的端口地址为06C0H,计数器1的端口地址为06C2H,计数器2的端口地址为06C4H,计数器3的端口地址为06C6H。
8255芯片PA口的端口地址为0640H,PB口的端口地址为0642H,PC口的端口地址为0644H,控制口的端口地址为0646H。
主8259芯片的偶地址为20H,奇地址为21H。
从8259芯片的偶地址为A0H,奇地址为A1H。
IOY0的编址空间:0600H~063FH IOY1的编址空间:0640H~067FH IOY2的编址空间:0680H~06BFH IOY3的编址空间:06C0H~06FFH2.2 软件设计2.2.1思路利用8254芯片的计数功能,输出周期为1秒的方波。
《微机原理与接口技术》课程设计题目名称:倒计时牌学生姓名:学号:专业年级:指导教师:时间:目录1、题目及要求: (1)1.1题目:倒计时牌 (1)1.2要求: (1)2、总体设计: (1)2.1.设计思路: (21)2.2.功能设计: (1)2.3.总体结构图 (1)3、详细设计: (2)3.1 显示功能模块……………………………………………………………………………...2.3.1.1日期显示功能 (2)3.1.2时间显示 (3)3.1.3倒计时显示 (4)3.1.4 主要功能子函数 (4)3.2 控制功能模块 (4)3.2.1 日期和时间的获取和格式化 (4)3.2.2 警报提示功能模块 (5)3.2.3 倒计时时间日期的设定 (6)4、系统评价 (7)5、心得体会 (7)6、参考文献: (7)1.题目及要求:1.1题目:倒计时牌1.2要求:实现日历功能;显示距倒计时时刻还有多长时间(显示天、时、分、秒)扩展功能:实现倒计时的时间人为设定2.总体设计:2.1 设计思路:根据题目要求,本程序的实现途径是通过获取系统时间,将其以存放到定义的时间变量中,然后按照设计好的规则将其映射到相应的图形显示,利用系统中断将其输出到屏幕上,同时定时对其进行刷新,已达到时间变化的目的。
对于倒计时功能,首先获取用户设定的倒计时时间,然后以此时间为基础,通过本程序中设计的倒计时算法,实现时间日期的倒计时显示。
当计时时间变为零时,调用闹铃程序,输出响铃,给与用户提示信息。
2.2 功能设计:本倒计时牌课程设计以汇编语言知识为基础,使用到部分接口芯片。
主要实现日期、时间、倒计时的图形显示。
最长可倒计时100天,可精确显示倒计时的天数、小时、分钟、秒数。
同时可以实现人为倒计时的时间设定。
当达到目标时间,给出警告信息。
主要功能模块如下:(1)日期显示模块:实现系统时间的获取和存储,并将时间以图形方式刷新输出到显示器,设计过程中主要任务是将系统日期格式化存储显示。
微机原理与接口技术课程设计任务及指导书(适用于0944121班)一、课程设计目的和任务:通过课程设计,主要达到以下目的:1、使学生增进对单片机的感性认识,加深对单片机理论方面的理解;2、使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、A/D、D/A等;3、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
二、课程设计题目:【1】数字音乐盒设计要求:1、利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音响,从而演奏乐曲(最少储存三首乐曲,每首不少于三十秒);2、采用LCD显示;3、开机时有英文欢迎字符,播放时显示歌曲序号(或名称);4、可通过功能键选择乐曲,暂停,播放;扩展功能:显示乐曲播放时间或剩余时间;【2】数字温度计设计要求:1、基本范围为-50℃—110℃;2、精度误差小于0.5℃;3、LED数码管直读显示;扩展功能1、可以任意设定温度的上下限报警功能;2、实现语音报数。
【3】交通灯设计设计要求:1、设计一个十字路口交通灯控制器。
用单片机控制LED灯模拟指示。
2、系统包括人行道、左转、右转以及基本的十字路口交通灯功能;3、系统除具有基本交通灯功能外,还具有显示倒计时、时间设置、紧急情况处理功能。
扩展功能:1、分时段调整信号灯的点亮时间2、根据具体情况实现灵活手动控制功能。
【4】电子密码锁设计要求:1、系统能完成开锁、超时报警、超次锁定、管理员解密、修改用户密码基本的密码锁的功能;2、还具有调电存储、声光提示等功能。
扩展功能:通过遥控器实现锁的基本操作。
【5】电子钟的设计设计要求:1、可以实现23h59m59s的显示,用六位LED显示出来,显示格式为“时时:分分:秒秒”。
2、可以利用按键设置任意的时分秒各位,并具有按键复位功能;扩展功能:1、实现整点语音报时功能。
2、实现年月日的显示。
【6】基于单片机的彩灯控制设计要求:1、以单片机为核心,设计一个彩灯控制器,控制8个彩灯依次点亮和依次熄灭。
沈阳工程学院微机原理及应用课程设计课程设计题目:9秒倒计时设计系别电气工程系班级发电本091 学生姓名冀恩举学号 **********指导教师曲乐声、踪念品职称讲师、讲师起止日期: 2012年5月28日起——至2011年6月1日止沈阳工程学院课程设计任务书课程设计题目:9秒倒计时设计系别电气工程系班级发电本091 学生姓名冀恩举学号 2009205112指导教师曲乐声、踪念品职称讲师、讲师课程设计进行地点:微机原理实验室(F106)任务下达时间:2012年 5月28 日起止日期:2012年 5月28日起——至 2012年6月 1日止教研室主任王健2011年5月24日批准一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据查阅可编程并行芯片8255、中断控制等其他相关资料。
用简单的输入输出端口等硬件,结合LED显示计时秒数。
三、设计的主要内容及要求内容:利用微机原理实验箱,采用一组发光二极管来模拟报警灯。
要求:1.采用8253对307200HZ信号进行分频作为秒脉冲。
2.采用8259中断管理器对输入的秒脉冲信号进行管理,及时更新8255的控制1个数码管,让其从9减到0,然后通过扬声器发出警报*3.可通过8个开关任意设置初值。
四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
单片机微机原理课程设计——顺计时秒表及倒计时秒表设计2016年电子工程专业2014级卓越工程师班《单片机与微机原理及应用》课程设计报告设计题目:顺计时秒表及倒计时秒表设计专业班级:电子卓越1401班学生姓名:林晓强学生学号:5120141478指导教师:聂诗良、许超(助教)答辩日期:第13周周六上午9点答辩地点:综合楼4-311实验室西南科技大学信息工程学院制2016年5月目录1.摘要 (1)1.1课程设计制作题目及要求 (2)2.系统方案设计 (2)2.1设计思路 (2)2.2总体设计框图 (3)3.硬件设计 (3)3.1硬件选型 (3)3.2 系统硬件电路原理详图 (4)3.3 实际连线详图 (5)3.3.1共阴极数码管原理图以及四位数码管引脚图 (6)3.3.2红绿灯模拟仿真电路 (6)3.3.351单片机主控实物图以及原理图 (6)4.软件设计 (6)4.1 软件功能设计 (6)4.2 软件流程设计 (7)4.2.1主流程图 (8)4.2.2 按键判断 (9)4.2.3 数码管显时 (10)5.软件调试 (10)5.1 单元调试 (10)5.1.1 显示模块测试 (10)5.1.2 按键模块测试 (11)5.2 总体测试 (11)6.心得体会 (11)7.参考文献 (12)附录1 (13)附录2 (26)顺计时秒表以及倒计时秒表设计1摘要(1)近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
(2)人们在日常生活中,有很多时候要精确地计算时间,但往往因为人为因素造成人们不愿意看到的误差。
秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。
(3)本次设计主要完成具备基本功能的电子秒表的理论和实践设计,电子秒表是重要的记时工具,广泛运用于各行各业中。
《微机原理与接口技术》课程设计报告题目: LED数码管倒计时系统专业名称:电子信息工程班级:学号:姓名:2016年 11月LED数码管倒计时系统李聪毅(信息工程学院)摘要:本次设计用了8086 CPU芯片以及8255A芯片、8253芯片和数码管等辅助硬件电路,进行了数码管倒计时的设计。
进行了软件设计并编写了源程序。
数码管倒计时在人们的日常生活中运用广泛。
本系统采用8086为中心器件来设计数码管倒计时系统,系统实用性强、操作简单、扩展强。
本设计就是采用8086最小方式下在Protues7.8软件下模拟倒计时显示时间。
本设计系统由8255AI/O口扩展系统、LED数码显示系统等几大部分组成,本系统采用8086汇编语言编写,主要编写了主程序,LED数码管显示程序等。
总体上完成了软件的编写。
关键词:8086微机系统;倒计时;LED显示系统1 概述1.1 课程设计应达到的目的通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。
使学生进一步掌握微型计算机应用系统的硬、软件开发方法,输入/输出(I/O)接口技术,应用程序设计技术,并能结合专业设计简单实用的微型计算机应用系统。
针对课堂重点讲授内容使学生加深对微型计算机硬件原理的理解及提高汇编语言程序设计的能力,为以后的毕业设计搭建了微机系统应用平台,提高学生的开发创新能力。
1.2 课题训练内容设计一个基于8086微型计算机的一个LED数码管倒计时系统,要求能完成基本的倒计时功能;要求学生了解80868微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。
1.3 设计一个模拟交通信号灯控制系统,要求:1)系统功能:闭合倒计时开关后,LED数码管能自动开始倒计时,能在数码管每隔1秒钟,计时器减1,并具有随时能够暂停的功能,重新闭合开关后能继续倒计时,直到倒计时结束,数码管显示为0为止。
微机原理与接口技术课程设计-倒计时题目:倒计时学院:西安理工大学专业:机械实际制造及其自动化班级机械四班学号:2022030408学生姓名刘小虎指导教师课程成绩完成日期2022年12月15日目录一.设计功能 (3)二.设计原理及原理图.........................................31.系统总设计原理............................................32.硬件框架原理图............................................33.硬件介绍........................................................44.功能电路.. (7)三.程序模块及流程图.........................................81.8255A初始化.................................................82.显示程序模块................................................83.延时程序模块................................................94.控制程序模块................................................95.LED灯点亮程序模块....................................10四.源程序 (11)五.总结............................................................. 15附录1:系统硬件框架.........................................16附录2:系统总程序流程图 (17)题目:倒计时一.设计功能本次课程设计我们在TD-PIT+实验系统和PC机平台上利用并行接口8255A、键盘及数码管显示单元、开关及LED显示单元、键盘按键和电脑显示屏设计成一个倒计时器。
计时器汇编语言程序设计1.总体方案论证1.1计时方法的选择(1)通过调用系统时钟来完成计时功能,这样就必须每秒或者每更短的时间调用系统时钟然后进行相减操作才能达到计时的每秒时时显示动态时间,虽然理论上可以实现计时功能,但是会比较的麻烦。
(2)通过调用系统的08h号或者1ch号中断来进行设置,使其能够产生100Hz即10ms 一次的中断,同时修改原08号中断的入口地址,使其每次中断执行一次计时的中断服务程序,进而动态显示时间。
这种方法不仅简单易行,而且较方便。
经过以上论证,决定采用第二种方案来实现计时器功能。
1.2键盘按键输入的检测在主程序中,通过先检查键盘是否有输入,如果没有输入,则跳过检查键盘输入的键值的程序,如果有输入则比较输入为“S”或“s”键,“P”或“p”键,“G”或“g”键,“C”或“c”键,“ESC”键中的哪个键,进而执行相应键值对应的实现该功能的程序,达到开始,暂停,继续,清零,退出的功能。
1.3显示计时的时间考虑到更加直观的显示计时器的计时功能,让其显示的时候将百毫秒和十毫秒位也显示出来,使计时功能更加准确。
所以在设计计时器的计时最小单位时,就要使中断频率设置为100Hz,即10ms一次中断。
于是显示的计时单位就是“时:分:秒:十毫秒”。
同时设置光标位置使其显示在屏幕中央。
1.4时间的进位处理当十毫秒位超过9的时候,要对百毫秒位进行加1操作,如果百毫秒位超过9时,要对秒位进1,当秒位超过9时,对十秒位进1,如果十秒位超过5时,才对分钟位进1,分钟位超过9时,对十分钟位进1,如果十分钟位的超过5时,对小时位进1。
小时位的进位设计就要考虑到小时最多24的特殊性了,所以设置一个变量,在小时位加1的同时给它也加1,如果这个变量加到了24则重新开始计时,此时再把该变量的置零。
1.5显示的形式为了使计时器的显示界面更加直观更加清楚,所以可以在int10h的情况下将AH赋值为0,同时置AL为10H将显示方式设置为640×350彩色图形,而且为全屏显示,同时颜色通过在int10H的情况下将AH赋值为0BH,同时置BL为04H可以将屏幕背景颜色设置为红色,这样计时器会更加醒目。
单片微型计算机原理与接口技术课程设计报告班级:姓名:学号:指导老师:日期:一、课程题目:秒表二、课程要求:1.可启动、暂停、继续和复位。
〔〕倒计时时,从设定时间开始4.通过键设定时间,可设定正计时的结束时间和倒计时的开始时间,当到达设定时间或倒计时到0时报警,数码管闪烁最后的时间,同时上传本机地址06H。
5.本机地址为03H,当接到上位机发的03H时,那么回发03H当接到上位机发的AAH时,那么将当前显示的秒值发给上位机三、硬件系统设计说明及原理图1、原理图图中,到所定时间即停止〕,与P3.2相接的按钮为暂停\继续按钮, 与P3.3相接的按钮为复位按钮。
2、幅员:四、软件流程图及软件清单:软件清单:ORG 0000H JMP MAIN ORG 0003H JMP L1ORG 000BH JMP L2 ORG 0013H JMP L3 ORG 0023H JMP CHUKOUMAIN:MOV TMOD,#21H /设置定时计数方式MOV SCON,#40H /设置串口工作方式MOV TH1,#0FAHMOV TL1,#0FAH /设置波特率 MOV IP,#10HSETB EA /开CPU 总中断SETB EX0 /开中断T0中断SETB IT0 /设置T0工作方式SETB EX1 /开中断T1中断 SETB IT1 /设置T1工作方式SETB ES /开串口中断 MOV PCON,#00H /波特率不倍低高判增MOV R1,#05HMOV R3,#00HMOV R4,#00HMOV R6,#00HGG:MOV P1,#07FHLCALL BBLCALL CCLCALL DDLCALL DELAYMOV R0,66HLCALL CC1LCALL DD1LCALL DELAYMOV R0,65HLCALL CC2LCALL DDLCALL DELAYMOV R0,64HLCALL CC3LCALL DDLCALL DELAYJNB P1.2,GG1INC R4LCALL XIANGG1:JNB P1.3,GG2INC R6LCALL XIANGG2:MOV 60H,R4MOV 61H,R6MOV R5,60HMOV R7,61HINC R5INC R7JNB P1.0,GG/置数HH: JB P1.1,HH1MOV R4,#00MOV R6,#00SETB ET0SETB TR0 HH2:JB P1.1,HH1LCALL BBLCALL CCLCALL DDLCALL DELAYMOV R0,66HLCALL CC1LCALL DD1LCALL DELAYMOV R0,65HLCALL CC2LCALL DDLCALL DELAYMOV R0,64HLCALL CC3LCALL DDLCALL DELAYJNB RI,HH2JMP CHUKOUJMP HH2/ 正计时HH1:LCALL FFLCALL CCLCALL DDLCALL DELAYMOV R0,66HLCALL CC1LCALL DD1LCALL DELAYMOV R0,65HLCALL CC2LCALL DDLCALL DELAYMOV R0,64HLCALL CC3LCALL DDLCALL DELAYJNB RI,HH2JMP CHUKOUJMP HH2/倒计时BB:CJNE R4,#99,EEINC R6MOV R4,#00HCJNE R6,#99,EECJNE R4,#99,EELJMP JIESHU1/ 正计时结束判断FF:CJNE R6,#00,FF1CJNE R4,#00,EELJMP JIESHU2/ 倒计时结束判断FF1:CJNE R4,#00,EEDEC R6MOV R4,#99EE:MOV A,R6MOV B,#10DIV ABMOV 64H,AMOV 65H,BMOV A,R4MOV B,#10DIV ABMOV 66H,AMOV 67H,BMOV R0,67HRET/取各位数字CC:MOV A,#0EHMOV P2,ARETCC1:MOV A,#0DHMOV P2,ARETCC2:MOV A,#0BHMOV P2,ARETCC3:MOV A,#07HMOV P2,ARET/ 取数码管的各位地址DD:MOV DPTR,#TABMOV A,R0MOVC A,@A+DPTRMOV P0,ARET/取无小数点的各位显示数字DD1:MOV DPTR,#TAB1MOV A,R0MOVC A,@A+DPTRMOV P0,ARET/ 取有小数点的各位显示数字XIAN:MOV TH0,#3CHMOV TL0,#0B0HSETB TR0JNB TF0,$CLR TF0DJNZ R1,XIANMOV R1,#05HRETDELAY: MOV R2,#1000DELAY1:DJNZ R2,DELAY1RET/各位数字显示延时L1:CJNE R3,#00H,AACLR ET0CLR TR0INC R3RETI/ 暂停中断L2:MOV TH0,#3CHMOV TL0,#0B0HJB P1.1,IIINC R4JNB P1.4,L21DJNZ R5,L21DJNZ R7,L22JMP JIESHUL22:MOV R5,#99L21:RETIII:DEC R4RETI/定时显示的最小时间单位AA:SETB ET0SETB TR0MOV R3,#00HRETI/ 继续中断L3:MOV R4,60HMOV R6,61HCLR ET0CLR TR0RETI/复位中断CHUKOU:MOV A,SBUFCLR RICJNE A,#03H,FASMOV SBUF,ACLR TIFAS:CJNE A,#0AAH,QZMOV A,R4MOV SBUF,AMOV A,R6MOV SBUF,ACLR TIQZ: RETI/ 串口中断TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FHTAB1:DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH, 87H,0FFH,0EFHL4:MOV R4,60HMOV R6,61HLCALL EELCALL CCLCALL DDLCALL DELAYMOV R0,66HLCALL CC1LCALL DD1LCALL DELAYMOV R0,65HLCALL CC2LCALL DDLCALL DELAYMOV R0,64HLCALL CC3LCALL DDLCALL DELAYJMP L4/正计时结束时所显示数字L5:MOV A,#00HMOV P2,AMOV A,#6FHMOV P0,AJMP L5/正计时计满时所显示数字L6:MOV A,#00HMOV P2,AMOV A,#3FHMOV P0,AJMP L6/倒计时结束时所显示数字END五、个人感想、体会:通过此次做单片机的课程设计,使我了解了使用汇编语言时应该注意的一些根本领项。
微机原理与接口技术课程设计报告题目:倒计时学院:西安理工大学专业:机械实际制造及其自动化班级机械四班学号:学生姓名刘小虎指导教师课程成绩完成日期 2014年12月15日目录一.设计功能............. 错误!未定义书签。
二.设计原理及原理图..... 错误!未定义书签。
1. 系统总设计原理....... 错误!未定义书签。
2. 硬件框架原理图....... 错误!未定义书签。
3. 硬件介绍............. 错误!未定义书签。
4. 功能电路............. 错误!未定义书签。
三.程序模块及流程图..... 错误!未定义书签。
1. 8255A初始化 ......... 错误!未定义书签。
2. 显示程序模块......... 错误!未定义书签。
3. 延时程序模块......... 错误!未定义书签。
4. 控制程序模块......... 错误!未定义书签。
5. LED灯点亮程序模块 ... 错误!未定义书签。
四.源程序............... 错误!未定义书签。
五.总结................. 错误!未定义书签。
附录1:系统硬件框架...... 错误!未定义书签。
附录2:系统总程序流程图.. 错误!未定义书签。
题目:倒计时一.设计功能本次课程设计我们在TD-PIT+实验系统和PC机平台上利用并行接口8255A、键盘及数码管显示单元、开关及LED显示单元、键盘按键和电脑显示屏设计成一个倒计时器。
具体功能包括:1.用2位8段共阴数码管显示倒计时时间;2.使用开关K0实现暂停/启动功能,开关K1实现倒计时复位功能;3.倒计时为0时8盏LED灯实现跑马灯功能;4.利用数字键输入倒计时初始数值,按键“r”实现重新启动倒计时器,按键“e”实现退出程序进入DOS环境下,并对其他按键进行屏蔽;5.屏幕显示相应的提示信息,包括提示用户输入数据、倒计时结束、倒计时结束后用户进行的操作;6.可以任意设定倒计时的初始时间,每隔1秒钟计时器减1,直到为0;7.在倒计时过程中可通过开关K1实现退出当前的倒计时并开始新一轮的倒计时。
二.设计原理及原理图1.系统总设计原理我们选择并行接口8255A芯片,在程序中使用延时语句来输出秒脉冲,并在其中调用显示函数不断刷新数码管进行数值显示。
使用8255A作为输入/输出接口,其中A端口为输出口,连接LED显示单元的D8~D15;B端口为输出口,连接数码管的A~Dp,进行数码管的段锁存;C端口高4位为输出口,连接数码管的X4~X1,进行位锁存,低4位为输入端,连接开关的K3~K0。
采用在软件中控制循环程序的方式来控制倒计时的复位和暂停功能,并通过程序来显示语句和读入用户的键盘输入,以进行相应操作。
此方案性价比高,但由于使用了软件延时,当芯片损耗以及芯片在工作时间过长后会出现倒计时不够准确。
2.硬件框架原理图图1 系统设计硬件框架3.硬件介绍并行接口8255A(1) 8255A的内部结构图2 8255A的内部结构1)8255A有3个8位数据接口,即接口A、接口B和接口C,可利用编程方法设置3个端口是作为输入端口还是输出端口;2)8255A能适应CPU和I/O接口之间的多种数据传送方式的要求,如无条件传送、查询方式传送、中断方式传送。
8255A设置了方式0、方式1以及方式2;3)数据总线缓冲器是个双向三态8位数据缓冲器,与CPU系统数据总线相连,是8255A与CPU之间传输数据的必经之路。
输入数据、输出数据、控制命令字都是通过数据总线缓冲器进行传递的;4)读/写控制逻辑电路接收来自CPU地址总线的信号和控制信号,并发出命令到两个控制组(A组和B组)。
它控制把CPU发出的控制命令或输出的数据送到相应的端口,或者把外设的状态或输入的数据相应的端口送到CPU;5)A组控制和B组控制一方面接收芯片内部总线上的控制字,一方面接收来自读/写控制逻辑电路的读/写命令,从而解决端口的工作方式和读/写操作。
其中,A组控制电路控制端口A和端口C高4位(PC7-PC4)的工作方式和读/写操作:而B组控制电路控制端口B和端口C低4位(PC3-PC0)工作方式和读写操作。
(2) 8255A的外部引脚图3 8255A的功能引脚图1)与外部设备端相连的引脚PA7-PA0:A端口的输入/输出引脚;PB7-PB0:B端口的输入/输出引脚;PC7-PC0:C端口的输入/输出引脚;2)与CPU相连的引脚RESET:复位信号,低电平有效。
当RESET信号来到时,所有内部寄存器都被清0,同时3个端口被自动设为输入端口;D7-D0:8255A的数据线,和系统数据总线相连;CS:芯片选择信号。
只有当CS有效时,读出信号RD和写入信号WR才对8255A有效;RD:读出信号。
CPU通过IN指令使RD有效,将数据或状态信息从8255A中读到CPU;WR:写入信号。
CPU通过OUT指令使WR有效,将数据或状态信息从CPU中写道8255A;A1,A0:端口选择信号。
8255A内部有3个数据端口和1个控制端口,共4个端口。
规定A1,A0为00、01、10和11时,分别选中端口A、端口B、端口C和控制端口。
(3) 8255A的控制字1) 8255A的方式控制字8255A共有两个控制字,即工作方式控制字和对C口置位/复位控制字。
8255A的工作方式字格式和各位的含义如图4图4 8255A工作方式控制字格式方式0为基本的输入输出方式;方式1为选通式输入/输出;方式3为双向选通输入/输出方式。
2)C口置位/复位控制字8255A的C口置位/复位控制字的格式如图5图5 8255A的C口置位/复位控制字八段共阴数码管一般8段LED显示器的内部结构和引脚如图6(a)所示。
每段都是一个发光二极管,通过点亮不同的字段,可以显示0,1,…,9和A,B,…F。
其内部各发光二极管之间的连接方法有共阴极和共阳极两种,如图6(b)和图6(c)所示。
(a)结构和引脚 (b)共阴极接法 (c)共阳极接法图6 八段LED显示器(1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。
使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。
实验中使用的数码管为共阴极接法;(2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。
使用时公共阳极接+5V。
这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。
字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码03FH67DH C39H106H707H D5EH25BH87FH E79H34FH96FH F71H466H A77H灭00H56DH B7CH4.功能电路数码管显示电路图7 显示连接电路实验箱上有四个LED显示器,本实验利用PC口的最高两位选中X4和X3两个数码管,即进行位锁存;八段数码管为阳极LED器件。
要让A段点亮,要求PB0输出高电平“1”;要使B段熄灭,要求从PB1输出低电平“0”。
其余各段以此类推。
要使LED上显示0-9十个数字,需要按照如下段码表来驱动数码管的八段LED:表2 8段数码管段码表显示字符0123456789八段代码3FH06H5BH4FH66H6DH7DH07H7FH6FH开关与LED灯控制电路图8 开关与LED灯控制电路设置8255的A端口工作在方式0下,作为输出端,电路连接如上图,在倒计时到0的时候LED灯从左到右接着再从右往左依次点亮,实现跑马灯功能。
开关K1为复位开关,在倒计时过程中置K1为“1”可以实现退出当前倒计时,置K1为“0”时又开始重新倒计时。
开关K0为暂停开关,在倒计时过程中置K0为“1”可以暂停倒计时,置K0为“0”时,数码管接着当前的显示数据执行递减,并且在暂停过程中数码管始终显示暂停时的数据。
三.程序模块及流程图1.8255A初始化程序开始时对8255A进行初始化,A组和B组控制工作在方式0,因此方式字中的D6D5和D2为0。
A口为输出,因此D4为0;C口高4位为输出,因此D3为0,低4位为输入,因此D0为1;B口为输出,因此D1为0。
根据程序设计要求,8255A的方式控制字为1000 0001B,即81H。
2.显示程序模块根据方式控制字和连线可知,B口连接数码管的A~Dp进行段锁存,C口的高4位连接X4~X1进行位锁存。
显示程序如下:DIS PROC NEAR ;数码管显示子程序PUSH AX ;保护现场PUSH DXMOV SI,3000H ;找到存数的缓冲区MOV AL,0BFH ;1011 1111B,选中X3数码管MOV DX,MY8255_C ;选中PC口,进而选中数码管OUT DX,ALMOV AL,[SI] ;取出缓冲区中存放的键值XLAT;查表指令,将以BX为基地址,AL为位移量的字节存储单元中的数赋给AL MOV DX,MY8255_B ;写入数码管A~DpOUT DX,ALCALL DALLY1 ;调用延时函数MOV AL,7FH ;0111 1111B,选中X4数码管MOV DX,MY8255_C ;选中PC口,进而选中数码管OUT DX,ALMOV AL,[SI+1] ;取出缓冲区中存放的键值XLATMOV DX,MY8255_B ;写入数码管A~DpOUT DX,ALCALL DALLY1 ;调用延时函数POP AXPOP DXDIS ENDP3.延时程序模块控制一个循环程序循环N次以到达延时的目的。
具体语句如下:DALLY: PUSH CX ;保护现场PUSH AXMOV CX,0FFFFHA1: MOV AX,4FFFHA2: DEC AX ;自减JNZ A2LOOP A1 ;计数循环POP AXPOP CXRET程序循环次数为N=(FFFF+1)*(4FFF+1),延时时间为N*n(n为程序语句执行时间) 4.控制程序模块控制程序有暂停和复位,其中暂停可以用一个循环程序来实现,当暂停键拨下时,循环程序会进入死循环状态,直至暂停键拨回。
复位则只需按条件跳转至输入初始时间的程序语句处即可。
C口低4位为输入,读入开关状态,判断“0”和“1”状态进行控制。
程序代码如下:PAUSE: CALL DIS ;调用显示子程序MOV DX,MY8255_C ;C口低4位为输入IN AL,DX ;读入C口的最低位的状态TEST AL,01H ;0000 0001BJNZ PAUSE ;最低位为1暂停倒计时RESET1: MOV DX,MY8255_C ;C口低4位为输入IN AL,DXTEST AL,02H ;0000 0010BJNZ RESET2 ;第2位置1后执行RESET2DEC TIME ;减1倒计时MOV CL,TIMECMP CL,0FFH;当从初始值减到0后继续减1则值为0FFH,说明计数结束JNZ DISPY ;倒计时未到0,继续倒计时JMP OUTPUT1 ;跳到流水灯点亮;重新开始倒计时RESET2: JMP SHURU5.LED灯点亮程序模块当程序运行至倒计时结束的语句时启动点亮LED灯程序。