微机原理与接口技术课程设计-倒计时
微机原理与接口技术课程设计-数字式秒表
微机原理与接口技术课程设计目录目录 (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倒计时秒表 实验报告
微机原理与接口技术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秒倒计时设计”
沈阳工程学院微机原理及应用课程设计课程设计题目: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数码管倒计时系统
《微机原理与接口技术》课程设计报告题目: 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五、个人感想、体会:通过此次做单片机的课程设计,使我了解了使用汇编语言时应该注意的一些根本领项。
微机原理课程设计抢答计时器
《微机实验及课程设计》课程设计报告目录一.课程设计目的与要求 (3)二.方案论证与原理设计 (3)三.详细设计 (4)四.方案实现与测试 (6)五.分析与总结 (7)1、基本要求设计一个用于智力竞赛的抢答计时器,同时能测试人的反应(响应)时间。
按启动钮,测试开始,2个八段码倒计时开始(如从10秒或20秒倒计时),一旦看到灯亮,参赛双方(或三方)分别按不同的抢答按钮参与抢答。
一旦其中一位按下按钮,相应的显示灯(LED)亮并响“嘟”的一声,此时若其它按钮按下均无效。
若一直到计数到零,无一人按下按钮,则抢答结束(以后再按抢答钮无效)。
立即按测试钮,8×8点阵显示反应时间xx.xx秒(8×8点阵用红色代表秒,绿色代表0.01秒,交替显示)。
要求:(1)编制1个随机数产生子程序,由随机数决定从按启动钮到对应LED亮的时间(如在3秒~15秒之间内任意变动),使被测试者对LED亮的时间无法预见,以确保测试结果的可信;(2)必须在见到LED亮后按测试钮才有效,即一直按着按钮或提前按下按钮无效;(3)反应时间显示xx.xx秒,准确到百分之一秒。
2、设计思路将系统分成3个大的模块:倒计时模块,计时模块,显示模块。
1)倒计时模块:通过一个子程序段获得随机数,并用这个随机数倒计时;2)计时模块:倒计时结束时灯亮,开始计数,当有人按下键并正确时,锁存所用时间;3)显示模块:将锁存的时间用八段码显示出来。
一. 课程设计目的与要求1、课程设计目的上学期在学习微机原理的基础上,我们一直在实践微机实验及课程设计教程这门实验课程,从指令与汇编语言基础开始,我们熟悉了调试工具的使用,汇编语言程序设计,I/O与存储器,简单输入输出,中断,计数/定时器,以及模数/数模转换。
平时的实验都是对各个单元单一功能的验证,并没有他们之间的联系,最后的综合课程设计将让我们学以致用,把学到的各个章节的知识根据需要联系在一起,并实现一定的功能。
微机原理课程设计报告_数字时钟的实现(附代码)
合肥工业大学计算机与信息学院课程设计课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号:姓名:一、设计题目及要求:【课题6】数字时钟1.通过8253 定时器作产生秒脉冲定时中断。
在中断服务程序中实现秒、分、小时的进位(24小时制)。
2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。
3.按“C”可设置时钟的时间当前值(对准时间)。
二、设计思想:总体思想:1、功能概述:实验箱连线:本实验建立在Dais实验箱基础上完成的基本连线及程序如下:138译码器:A,B,C,D,分别连接A2,A3,A4,GS;y0连接8253的CS片选信号;y1连接8259的CS片选信号;8253连线:分频信号T2接8253的CLK0;8253的OUT0接8259的IR7;8253的gate信号接+5V;8259连线:8259的数据线接入数据总线;本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块,(1)程序运行后,LED显示000000初始值,并且开始计数(2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值;(3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。
2、主程序设计主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。
主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。
详细流程图见图三-1。
3、LED显示子程序设计本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。
倒计时牌 课程设计
信息科学与技术学院微机原理与接口技术课程设计报告题目名称:倒计时牌学生姓名:高兴奇学号:200411113专业年级:04电信(2)班指导教师:刘恩博时间:2006-12-30一、任务与要求1.能实现日历功能2.能实现倒计时功能(显示天、时、分、秒)扩展功能:实现倒计时的时间人为设定二、功能设计宏定义:置光标位置(setf)————定义光标定位宏清屏(clearscreen)————用于将屏幕清成指定的前景背景色输入(input)————定义输入宏程序:主程序模块:根据选择显示日历的时间,或倒计时时间系统时间子程序:取得时间,并将时间存于数据段的。
系统日期子程序:取得日期星期,并将日期星期信息存于数据。
显示子程序:通过数据段的数字,将时间显示成数码管的形式。
延时子程序:通过检测61h端口,实现延时一秒。
减一秒子程序:执行延时程序后,时间减少一秒。
减一天子程序:若时间00:00:01减少一秒,则执行减一天的操作。
输出子程序————输出指定的字符串。
y定义clearscreen宏,使用BIOS的06号功能---清屏或上卷;定义setf宏,使用BIOS的02号功能---制光标位置;定义input宏,使用BIOS的01号功能---输入字符。
显示系统当前时间与日期,使用DOS的2A号功能取系统日期和2C号功能取系统时间。
定义数据段Disptime存放系统时间,Dispdata存放系统日期。
年存在ch中,月存在dh中,日存在dl中。
将年份除以10,得到它的每一位,每一位加30h,求取它的ASCII码,并将其送到指定的存储位置中。
求取时间的方法与日期相同。
五、程序段data segmentDisptimedb 00,00,":",00,00,":",00,00,"$"Dispdatadb 00,00,00,00,"-",00,00,"-",00,00," ","$",00,"$"Dispdata_1 db 32h,30h,31h,31h,".",31h,32h,".",30h,38h," ","$",00,"$"xingqidb "MON","$","TUE","$","WEN","$","THU","$","FRI","$","SUT","$","SUN","$" show_weldb "welcome to my program!!!",0dh,0ah,"$"show_menudb "Settime:sBegin:eQuit:q","$"show_menu_1db "Settime:sChange:cQuit:q","$"show_resetdb "The reset time is:","$"flag db 0tab_1db 0b4h,0a0h,0b5h,50htab_2db 00h,04htab_3 db 31d,29d,31d,30d,31d,30d,31d,30d,31dshuzidb " _ ",0dh,0ah,"$"db "| |",0dh,0ah,"$"db "|_|",0dh,0ah,"$"db " ",0dh,0ah,"$"db " |",0dh,0ah,"$"db " |",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db " _|",0dh,0ah,"$"db "|_ ",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db " _|",0dh,0ah,"$"db " _|",0dh,0ah,"$"db " ",0dh,0ah,"$"db "|_|",0dh,0ah,"$"db " |",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db "|_ ",0dh,0ah,"$"db " _|",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db "|_ ",0dh,0ah,"$"db "|_|",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db " |",0dh,0ah,"$"db " |",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db "|_|",0dh,0ah,"$"db "|_|",0dh,0ah,"$"db " _ ",0dh,0ah,"$"db "|_|",0dh,0ah,"$"db " _|",0dh,0ah,"$"data endssetf macro dh1,dl1 ;定义光标定位宏push axpushbxpush dxmov ah,2hmov bh,0hmov dh,dh1mov dl,dl1int 10hpop dxpopbxpop axendmclearscreen macro ch1,cl1,dh1,dl1,bh1;定义清屏宏mov ah,6mov al,0mov ch,ch1mov cl,cl1mov dh,dh1mov dl,dl1mov bh,bh1int 10hendm;----------主程序---------------code segment para 'code'assumecs:code,ds:data,es:datamainproc farpush dsxorax,axpush axmovax,datamovds,axcallkaijisetf 0bh,1bhmovdx,offsetshow_welcall outputsetf 0eh,19hmovdx,offsetshow_menucall outputcallgetdatacallgettimecallchange_gtyxunhuan:mov ah,01hint 21hcmpal,'e'jz begincmpal,'c'jz changecmpal,'s'jzsettimecmpal,'q'jz quitchange: jmp change_1settime: clearscreen 00h,00h,18h,4fh,0fh setf 09h,14hmovdx,offsetshow_resetcall outputmov ah,01hint 21hand al,0fhmov [Disptime],alint 21hand al,0fhmov [Disptime+1],alint 21hint 21hand al,0fhmov [Disptime+3],alint 21hand al,0fhmov [Disptime+4],alint 21hint 21hand al,0fhmov [Disptime+6],alint 21hand al,0fhmov [Disptime+7],aljmp beginquit: jmp nextbegin: jmp begin_1change_1:setf 0bh,16hpushbxmovbl,[flag]cmp bl,0hjz ccmovdx,offsetDispdatacall outputmov [flag],0hjmp next_1cc: movdx,offset Dispdata_1call outputmov [flag],1hnext_1: pop bxjmp abegin_1:clearscreen 00h,00h,18h,4fh,02h clearscreen 05h,10h,0dh,35h,68hclearscreen 06h,12h,0ch,33h,04hsetf 0eh,14hmovdx,offset show_menu_1call outputsetf 0bh,16hmovdx,offsetdispdatacall outputsetf 0bh,24hmovdx,offsetxingqipush axpushbxmov bl,4hmov al,[dispdata+0eh]sub al,30hdec almulbladddx,axcall outputpopbxpop axA: setf 07h,13hcalldispcall delayCall dec_1smov ah,0bhint 21hinc aljnz Ajmpxunhuannext:RETmainendp;------------gettime子程序--------- gettimeproc nearpushbxpush axmov bl,0ahmov ah,2chint 21hmov ax,0moval,chdivblmov [Disptime],almov [Disptime+1],ahmov ax,0moval,cldivblmov [Disptime+3],almov [Disptime+4],ahmov ax,0moval,dhdivblmov [Disptime+6],almov [Disptime+7],ahpop axpopbxretgettimeendp;------------getdata子程序--------- getdataproc nearpush cxpush dxpush axpushbxmov ah,2ahint 21hpush axpush dxmov bx,1000d movax,cxmov dx,0hdivbxor al,30hmov [Dispdata],al movax,dxmov bl,100ddivblor al,30hmov [Dispdata+1],al moval,ahmov ah,0mov bl,0ahdivblor al,30hor ah,30hmov [Dispdata+2],al mov [Dispdata+3],ah pop dxmov ax,0moval,dhdivblor al,30hor ah,30hmov [Dispdata+5],al mov [Dispdata+6],ah mov ax,0moval,dldivblor al,30hor ah,30hmov [Dispdata+8],al mov [Dispdata+9],ah pop axor al,30hcmp al,30h jnzjieshu_getmov al,37hjieshu_get:mov [Dispdata+0eh],al mov [Dispdata_1+0eh],alpopbxpop axpop dxpop cxretgetdataendp;-----delay子程序----- delayproc nearpushbxpush axpush cxmov bl,75dwaitf2: mov cx,6632dwaitf1:inal,61hand al,10hcmpal,ahje waitf1movah,alloop waitf1decblcmp bl,0jnz waitf2pop cxpop axpopbxretdelayendp;-----dec_1s子程序-----dec_1sproc nearpush axmov al,[Disptime+7]dec almov [Disptime+7],alcmp al,00hjnz bbmov [Disptime+7],09mov al,[Disptime+6]dec almov [Disptime+6],alcmp al,00hbb: jnz returnmov [Disptime+6],05hmov al,[Disptime+4]dec almov [Disptime+4],alcmp al,00hjnz returnmov [Disptime+4],09hmov al,[Disptime+3]dec almov [Disptime+3],alcmp al,00hjnz returnmov [Disptime+3],05hmov al,[Disptime]cmp al,00hjz b_4mov al,[Disptime+1]dec almov [Disptime+1],alcmp al,00hjnz returnmov [Disptime+1],03hmov al,[Disptime]dec almov [Disptime],aljmp returnb_4: mov al,[Disptime+1] dec almov [Disptime+1],alcmp al,00hjnz returnmov [Disptime],2hmov [Disptime+1],03hcall dec_1ssetf 0bh,16hmovdx,offsetdispdatacall outputreturn: pop axretdec_1sendp;-----output子程序----- outputproc nearpush axmov ah,09hint 21hpop axretoutputendp;-----change_gty子程序----- change_gtyproc nearpush axpushbxpush cxpush dxmov ah,0hmov al,[Dispdata+3]sub al,32hmov bx,365dmulbxmovcx,axmov al,[Dispdata+5]sub al,30hmov bl,10dmulbladd al,[Dispdata+6]sub al,30hcmp al,1hjz next1add cx,31dcmp al,2hjz next1add cx,29dcmp al,3hjz next1add cx,31dcmp al,4hjz next1add cx,30dcmp al,5hjz next1add cx,31dcmp al,6hjz next1add cx,30dcmp al,7hjz next1add cx,31dcmp al,8hjz next1add cx,31dcmp al,9hjz next1add cx,30dcmp al,0ahjz next1add cx,31dcmp al,0bhjz next1add cx,30dnext1: mov al,[Dispdata+8] sub al,30hmov bl,10dmulbladd al,[Dispdata+9]sub al,31hmov ah,0haddcx,axmovax,cxsub ax,21cmp ax,0jns goonadd cx,8hmovax,cxmov bl,0ahdivblor ax,3030hmov [Dispdata_1+8],almov [Dispdata_1+9],ah goon: pop dxpop cxpopbxpop axretchange_gtyendp;-----kaiji子程序----- kaijiproc nearclearscreen 05h,0fh,13h,40h,30h clearscreen 06h,11h,12h,3eh,0fh retkaijiendp;-----disp子程序----- dispproc nearmov al,[Disptime]mov bl,12hmulblmovdx,offsetshuziadddx,axcall outputsetf 08h,13hadd dx,06hcall outputsetf 09h,13hadd dx,06hcall outputsetf 07h,16hmov al,[Disptime+1]mulblmovdx,offsetshuziadddx,axcall outputsetf 08h,16hadd dx,06hcall outputsetf 09h,16hadd dx,06hcall outputsetf 08h,1ahmov dl,1Ehmov ah,02hint 21hsetf 09h,1ahmov dl,1fhint 21hsetf 07h,1chmov al,[Disptime+3]mulblmovdx,offsetshuziadddx,axcall outputsetf 08h,1chadd dx,06hcall outputsetf 09h,1chadd dx,06hcall outputsetf 07h,1fhmov al,[Disptime+4] mulblmovdx,offsetshuzi adddx,axcall outputsetf 08h,1fhadd dx,06hcall outputsetf 09h,1fhadd dx,06hcall outputsetf 08h,23hmov dl,1Ehmov ah,02hint 21hsetf 09h,23hmov dl,1fhint 21hsetf 07h,25hmov al,[Disptime+6] mulblmovdx,offsetshuzi adddx,axcall outputsetf 08h,25hadd dx,06hcall outputsetf 09h,25hadd dx,06hcall outputsetf 07h,28hmov al,[Disptime+7] mulblmovdx,offsetshuzi adddx,axcall outputsetf 08h,28hadd dx,06hcall outputsetf 09h,28hadd dx,06hcall outputretdispendpcode endsend main六、心得体会在对《微型计算机技术及其应用》这本书的学习后,使我了解了计算机的基本结构与组成,但是在学完之后,对于这门课程的具体应用却知之甚少。
2012年微机原理与接口技术课程设计题目
微机原理课程设计题目题目一:255秒电子钟设计要求:1.采用8253对307200HZ信号进行分频作为秒脉冲。
2.采用8259中断管理器对输入的秒脉冲信号进行管理,及时更新8255控制的8个发光二极管以2进制形式显示秒。
*3.可通过8个开关任意设置初值。
题目二:步进电机的控制的设计要求:1.采用8255的一个输出口中4跟线控制步进电机所需时序(实验箱上有ULN2003芯片作为步进电机的驱动),时序应为:1000,0100,0010,0001,依次循环,假定每个循环步进电机转动30°。
2.采用8253对307200HZ信号进行分频得到的时钟,作为步进电机转速的依据。
3.采用8259中断管理器对8253分频的信号对CPU进行中断申请,要求步进电机每4秒钟转动30°。
*4.可通过开关任意设置设定转速,转速分别为每1s,2s,4s,8s,16s,32s,64s,128s,转动30°。
题目三:急救车与交通灯的设计要求:1.采用8255的一个输出口控制4个双色灯,要求显示状态分别为南北绿东西红,持续时间为4s。
南北黄东西红,闪2次,每次闪为1s。
南北红东西绿,持续时间为4s。
南北红东西黄,闪2次,每次闪为1s。
2.每个时间间隔的基准时间由8253对307200HZ信号分频得到的时钟,并且通过8259中断管理器将信号传递给CPU,然后CPU根据当前情况改变交通状态。
3.采用一个按键的形式模拟急救车出现,采用中断形式通知CPU,要求使东南西北四个方向都为红灯1s。
题目四:电子音乐发生器要求:1.采用8个按键中7个,分别代表1,2,3,,4,5,6,7,按任何一个按键将由8253(1号定时器)对307200HZ信号进行分频得到所需音节的频率信号,作为一个两输入或门的一个输入端,或门输出端连接扬声器。
或门的另一个输入端由8255输出的一个引脚进行控制,并且用8个发光二极管显示出音节状态。
微机原理与接口技术课程设计资料讲解
微机原理与接口技术课程设计微机原理与接口技术课程设计题目:交通灯显示系统学院:计算机科学与技术学院专业班级:计算机科学与技术0904班一.设计任务利用唐都实验箱,模拟十字路口交通灯显示系统。
具体要求如下:一:东西与南北的交通灯定时30秒交换红绿灯一次。
二:每次红绿灯交换之间要求黄色灯闪烁3秒。
三:在紧急车辆(如消防车、救护车)通过时,四边街道均显示红灯,以便紧急车辆顺利通过,而其它车辆暂停行驶。
紧急车辆通过后,交通灯自动恢复原来的颜色标志。
四:当一个方向绿灯亮后6秒无车通过则切换到另一路绿灯亮。
五:在数码管上显示已计时多少时间。
二.方案设计本实验用到的芯片有8253、8255A、8259A,其中8253利用计数器2来计时,8255A的A、B口作输出与七段显示数码管和发光二极管连接,8259A 用来中断控制及紧急情况。
三.电路原理图、接线图1.实物接线图2.硬件接线图四.程序流程图延时子程序:五.源代码STACK SEGMENT STACKDB 64 DUP(?)STACK ENDSDATA SEGMENTMSG1 DB 'START', 0AH, 0DH, 00HMSG2 DB 'STOP', 0AH, 0DH, 00HMSG3 DB 'NO CAR', 0AH, 0DH, 00HMSG4 DB 'RESTART', 0AH, 0DH, 00HTABLE DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH LED DB 4 DUP(0)COUNT DB 0FLAG1 DB 1FLAG2 DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKRUN MACRO ADDR ;宏调用,数码管两位显示LEA DI, ADDRMOV AX,[DI]AAD ;除法非压缩指令(AH)<-(AH)*10+(AL),(AH)<-0DEC ALCMP AL, 0AAM ;乘法非压缩指令,将(AL)/0AH,(AH)<-商,(AL)<-余数MOV [DI], AXENDMINF MACRO MSGMOV AH, 06HLEA BX, MSGINT 10HENDMSTART: MOV AX, DATAMOV DS, AXPUSH DSMOV AX, 0000HMOV DS, AXLEA AX, IRQ7 ;取中断程序入口地址ADD AX, 2000H ;IP=2000HMOV SI, 003CH ;中断7的中断向量MOV [SI], AX ;填偏移量矢量MOV AX, 0000H ;段地址CS=0000MOV SI, 003EHMOV [SI], AX ;填段地址矢量LEA AX, IRQ6ADD AX, 2000HMOV SI, 0038H MOV [SI], AX MOV AX, 0000H MOV SI, 003AH MOV [SI], AXLEA AX, IRQ2 ADD AX, 2000H MOV SI, 0028H MOV [SI], AX MOV AX, 0000H MOV SI, 002AH MOV [SI], AXLEA AX, IRQ1 ADD AX, 2000H MOV SI, 0024H MOV [SI], AX MOV AX, 0000H MOV SI, 0026H MOV [SI], AXCLIPOP DSIN AL, 21H AND AL, 39H OUT 21H, ALINF MSG1MOV AL, 80H ;A、B输出,方式0OUT 63H, AL ;8255A控制寄存器MOV AL, 0B6H ;计数器2,方式3,二进制OUT 43H, AL ;8253控制寄存器MOV AX, 0000HOUT 42H, ALMOV AL, AHOUT 42H, ALSTIA0: CALL GO1CALL GO2CALL GO3CALL GO4JMP A0GO1 PROC NEAR LEA DI, LEDMOV AX, 0207HMOV [DI], AXMOV AX, 0300HMOV [DI+2], AXA1: CMP FLAG1, 0JZ A2MOV AL, 10111101B ;红灯2:27秒绿灯1:30秒OUT 61H, ALCALL DISPCMP COUNT, 15JL A1MOV COUNT, 0RUN LEDCMP AX, 0JZ A2RUN LED+2CMP AX, 0JZ A2JMP A1A2: MOV FLAG1, 0RETGO1 ENDPGO2 PROC NEARLEA DI, LEDMOV AX, 0003HMOV [DI], AXMOV AX, 0003HMOV [DI+2], AXA3: CALL DISPCMP COUNT, 15JL A3MOV COUNT, 0MOV AL, 11111001B ;黄灯2:3秒绿灯1:3秒OUT 61H, ALCALL DELLYMOV AL, 11111101BOUT 61H, ALRUN LEDCMP AX, 0JZ A4RUN LED+2JMP A3A4: RETGO2 ENDPGO3 PROC NEARLEA DI, LEDMOV AX, 0300HMOV [DI], AXMOV AX, 0207HMOV [DI+2], AXA5: CMP FLAG1, 1JZ A6MOV AL, 01111110B ;绿灯2:30秒红灯1:27秒OUT 61H, ALCALL DISPCMP COUNT, 15JL A5MOV COUNT, 0RUN LEDCMP AX, 0JZ A6RUN LED+2CMP AX, 0JZ A6JMP A5RETGO3 ENDPGO4 PROC NEARLEA DI, LEDMOV AX, 0003HMOV [DI], AXMOV AX, 0003HMOV [DI+2], AXA7: CALL DISPCMP COUNT, 15JL A7MOV COUNT, 0MOV AL, 11101110B ;绿灯2:3秒黄灯1:3秒OUT 61H, ALCALL DELLYMOV AL, 11111110BOUT 61H, ALRUN LEDCMP AX, 0JZ A8RUN LED+2JMP A7A8: RETGO4 ENDPIRQ1: MOV FLAG2, 1 ;重新开始OUT 20H, ALIRETIRQ2: MOV AL, 00111111B ;暂停OUT 61H, ALINF MSG2STIMOV FLAG2, 0I3: CALL DISPCMP FLAG2, 0JZ I3INF MSG4MOV AL, 20HOUT 20H, ALIRETIRQ6: INF MSG3 ;在LED显示到计时24秒以下(6秒内某一方向无车STI 辆通过),按动K0切换到另一方向绿灯车辆通过LEA DI, LEDMOV AX, 0205HCMP FLAG1,0JZ I4CMP [DI+2], AXJG I5MOV FLAG1, 0JMP I5I4: CMP [DI], AXJG I5MOV FLAG1, 1I5: MOV AL, 20HOUT 20H, ALIRETIRQ7: INC COUNTMOV AL, 20HOUT 20H, ALIRETDISP PROC NEARLEA DI,LEDMOV CL, 0FEHD1: MOV AL, CLTEST AL, 10H ;测试指令,最高位为1则转移,否则顺序执行JZ D2OUT 62H, ALROL AL, 01HMOV CL, ALMOV AL, [DI]LEA BX, TABLEXLAT ;换码指令,将TABLE中的数显示到数码管上OUT 60H, ALCALL DELLYINC DIJMP D1D2: RETDISP ENDPDELLY PROC NEAR ;延时子程序PUSH CXMOV CX, 1000D3: LOOP D3POP CXRETDELLY ENDPCODE ENDSEND START六.实验结果分析在8259A芯片中,所用的中断有IRQ1、IRQ2、IRQ6、IRQ7,其中IRQ1与KK1+连接来控制继续,IRQ2与KK2+连接控制暂停,IRQ6与K0连接控制紧急情况时的切换,IRQ7与8253的OUT2相连来控制延时。
8086倒计时课程设计
8086倒计时课程设计一、课程目标知识目标:1. 理解并掌握8086微处理器的内部结构及其工作原理;2. 学习并掌握8086的倒计时编程方法,包括中断处理、寄存器操作和循环控制;3. 掌握相关汇编语言的指令使用,如MOV、ADD、SUB、JMP等。
技能目标:1. 能够独立编写简单的8086倒计时程序,展示基本的编程能力;2. 学会运用汇编语言实现基本的输入输出操作;3. 培养学生的逻辑思维能力和问题解决能力,能够对程序进行调试和优化。
情感态度价值观目标:1. 培养学生对计算机硬件及编程的兴趣和热情,激发探索精神;2. 培养学生团队合作意识,学会在小组讨论中分享观点和解决问题;3. 引导学生认识到编程在实际应用中的重要性,提高对学习成果的实际应用意识。
分析课程性质、学生特点和教学要求,将目标分解为以下具体学习成果:1. 学生能够详细描述8086微处理器的内部结构和功能;2. 学生能够编写并运行一个简单的8086倒计时程序;3. 学生能够通过小组合作,共同解决编程过程中遇到的问题,展示良好的沟通与协作能力;4. 学生能够体验编程的乐趣,提高学习积极性,培养对计算机硬件及编程的热爱。
二、教学内容本课程以《计算机组成原理》教材中关于8086微处理器的内容为基础,结合课程目标,组织以下教学内容:1. 8086微处理器内部结构:介绍8086的内部结构,包括CPU、内存、I/O 接口等,重点讲解寄存器组、标志寄存器、中断系统等组成部分。
2. 汇编语言基础:回顾汇编语言的基本概念,如指令、寄存器、地址等,并学习相关汇编指令,如MOV、ADD、SUB、JMP等。
3. 倒计时编程原理:讲解倒计时编程的基本原理,包括循环控制、中断处理和计时器等。
教学大纲安排如下:第一课时:1. 介绍8086微处理器内部结构,让学生了解CPU的基本组成;2. 学习汇编语言基础知识,为后续编程打下基础。
第二课时:1. 讲解倒计时编程原理,引导学生理解程序设计思路;2. 通过示例,演示如何编写简单的8086倒计时程序。
数字钟_接口课设报告_8086微机原理与接口技术课程设计报告书
接口技术基础实验报告学院:计算机科学与技术学院班级:计091学号:0913022032:恒楼指导老师:顾晖时间:2012/6/16目录数字钟的设计 (3)1 设计需求分析与解决方案 (3)1.1 设计需求分析 (3)1.1.1 题目要求 (3)1.1.2 根据题目要求提出问题 (3)1.2 解决问题方法及思路 (3)1.2.1 硬件设计选择部分 (3)1.2.2 软件设计分析 (4)2 硬件设计 (5)2.1 选择芯片8255 (5)2.1.1 芯片8255 A在本设计中的功能作用 (5)2.1.2 芯片8255 A的功能分析 (5)2.1.3 8255 A 方式控制字 (5)2.1.4 8255 A与外设相连的逻辑图 (6)2.2 选择器件 LED (6)2.2.1 LED在本设计中的作用 (6)2.2.2 LED功能分析 (6)2.2.3 LED技术参数 (7)2.3 硬件设计思路及连线图 (7)2.3.1 硬件设计思路 (7)2.3.2 硬件接线原理图、连接图 (7)3 软件设计思路及程序控制流程框图 (8)3.1 软件设计思路 (8)3.2 程序流程图的相关说明 (9)3.3 程序控制流程框图 (9)3.4 程序清单(见附录) (11)4 实验环境 (11)5 上机调试过程 (11)5.1 硬件调试 (11)5.2 软件调试 (13)5.3 软、硬件联立调试 (13)5.4 调试结果 (13)6 实验运行结果、分析 (15)6.1 实验运行结果与分析 (15)6.2 问题讨论 (15)7 实验心得 (16)8 参考文献 (17)附录(源代码) (17)数字钟的设计一、设计需求分析与解决方案1.1 设计需求分析1.1.1 题目要求设计一个接口与七段LED显示器,显示一个计时时钟,显示初值为0,每隔一秒改变一次显示值,60s为一分钟,60min为一小时,LED显示器循环显示时、分、秒的动态值。
倒计时钟课程设计报告资料
合肥学院计算机科学与技术系课程设计报告2008 ~2009 学年第一学期课程微机原理课程设计名称倒计时数字钟学生姓名田元学号0604032038专业班级06网工二班指导教师肖连军2009-2-15倒计时数字钟一. 题义分析及解决方案:设计一个接口与七段LED显示器,显示一个倒计时时钟,显示初值为60分00秒,每隔一秒改变一次显示值,60秒为一分钟,LED显示器显示分、秒的动态值。
1 题义需求分析:根据题意设计一个接口和七段LED显示器,本设计能显示一个具有固定初值的倒计时钟,能每隔固定时间间隔(1s),动态刷新显示值,并且能用LED显示器显示分秒的动态值,需要解决如下问题:1).选择怎样的接口问题?2).显示设备的选择问题?3).初值的设置和输入问题?4).计数值与显示码的转换及动态值显示问题?5).相关芯片与译码器的选择问题?2解决问题方法及思路:1)硬件部分:根据七段LED显示器的硬件结构,为减少器件的使用量,可以选择芯片8255A,将七段LED显示器与8255A的两个八位并行输出口连接,比如使用8255的A口和B口。
其中,A口用于位选,确定选择哪一个显示灯;B口用于段选择,通过改变B口中的段码,使得显示灯能够显示出相应的时间数字。
8255与七段LED显示器采用的共阴极的接法。
2)软件部分:根据题义要求,可以设立一个段码表和一个显示缓冲区,以动态刷新的方式,显示四位数字表示的时间。
前者存放的是共阴极方式下数字0---9的段码;后者存放的是显示初值。
设置好8255的工作方式后,运行显示程序,将缓冲区中的数字通过LED灯显示出来。
为消除串码和闪烁,应让每位数字显示2~5毫秒后,关闭显示,之后再显示下一个数字。
四位数字显示完成后,将缓冲区中的时间减少一秒,重复显示,直到时间减少到00分00秒。
二.硬件选择分析1、8255芯片:并行输入/输出接口1) 8255的功能分析:(1)芯片8255在本设计中主要用于选择位码和输出段码,同时也减少了器件数量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术课程设计报告题目:倒计时学院:西安理工大学专业:机械实际制造及其自动化班级机械四班学号:学生姓名刘小虎指导教师课程成绩完成日期 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灯程序。