微机原理与接口技术课程设计-倒计时
微机原理与接口技术课程设计-倒计时
微机原理与接口技术课程设计报告题目:倒计时学院:西安理工大学专业:机械实际制造及其自动化班级机械四班学号:学生姓名刘小虎指导教师课程成绩完成日期 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实现退出当前的倒计时并开始新一轮的倒计时。
plc倒计时课程设计
plc倒计时课程设计一、课程目标知识目标:1. 学生能理解PLC(可编程逻辑控制器)的基本原理和功能。
2. 学生能掌握倒计时程序在PLC中的应用及其逻辑设计。
3. 学生能描述倒计时过程中涉及的输入输出信号及其作用。
技能目标:1. 学生能够操作PLC编程软件,编写并调试简单的倒计时程序。
2. 学生能够运用逻辑思维和问题解决技巧,分析并优化倒计时程序。
3. 学生能够通过小组合作,共同完成倒计时PLC程序的调试和运行。
情感态度价值观目标:1. 学生培养对自动化控制技术的兴趣,激发学习PLC技术的热情。
2. 学生在小组合作中学会沟通、协作,培养团队精神。
3. 学生认识到PLC技术在生产生活中的重要性,增强实践操作能力和创新意识。
课程性质:本课程为实践操作课,以学生动手实践为主,结合理论知识,培养学生的实际操作能力。
学生特点:学生处于高年级阶段,已具备一定的PLC基础知识和操作能力,具备较强的逻辑思维和分析能力。
教学要求:教师应充分引导学生参与实践,关注学生的个体差异,提高学生的动手能力和问题解决能力。
在教学过程中,注重理论与实践相结合,培养学生的创新意识和团队合作精神。
通过本课程的学习,使学生能够将所学知识应用于实际工程案例中,提高综合应用能力。
二、教学内容本节教学内容主要包括:1. PLC基本原理回顾:使学生巩固PLC的工作原理、结构组成以及其在工业控制中的应用。
2. 倒计时程序设计:学习PLC编程中倒计时功能的实现,包括计数器的使用、程序逻辑设计等。
- 教材章节:第三章“PLC程序设计基础”,第五节“计数器与定时器”。
- 内容列举:倒计时原理、计数器操作指令、程序流程图绘制。
3. PLC编程软件操作:教授学生如何使用PLC编程软件进行程序编写、调试和运行。
- 教材章节:第四章“PLC编程软件的使用”,第一节“软件界面及功能介绍”。
- 内容列举:软件基本操作、程序输入与下载、调试与监控。
4. 倒计时程序实践:指导学生分组进行倒计时程序的设计、编程和调试。
微机原理与接口技术 课程设计任务书
微机原理与接口技术课程设计任务及指导书(适用于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个彩灯依次点亮和依次熄灭。
微机原理电子秒表课程设计
电子秒表设计报告设计要求:用89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S,60S),并启动倒计时功能。
能用按键选择以上两功能之一。
实现原理:利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。
电路图:P0.0—P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。
P3.6、P3.7分别接按键。
流程框图:程序代码:A_BIT EQU 20H ;数码管个位数存放内存位置B_BIT EQU 21H ;数码管十位数存放内存位置TEMP EQU 22H ;计数器数值存放内存位置;开机初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入 MOV P0,#0FFH;使显示时间数码管熄灭;等待按键输入;根据按键的输入判断执行什么功能;按键1按下则执行功能1START:JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,START1;如果是干扰就返回JNB P3.6,$;等待按键松开LJMP GN1;按键2按下则执行功能2START1: JB P3.7,$;循环判断开始按钮K2是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.7,START;如果是干扰就返回JNB P3.7,$LJMP GN2;数码管显示秒表时间的程序GN1: ;先初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入 MOV P0,#0FFH;使显示时间数码管熄灭MOV A,#0MOV TEMP,AGOON1: MOV R2,#2JS1: MOV R3,#250TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BMOV DPTR,#NUMTAB ;指定查表启始地址MOV R0,#4DPL1: MOV R1,#250 ;DPLOP1: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码MOV P0,A ;送出个位的7段代码CLR P2.7 ;开个位显示ACALL DELY1;显示1毫秒SETB P2.7;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DELY1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C1: JB P3.6,B1ACALL DELAY10;延时10毫秒消抖JB P3.6,C1JNB P3.6,$;等待按键松开ZT1: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入 JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT1;如果是干扰就返回JNB P3.6,$;等待按键松开B1: JB P3.7,LOOP1ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP1: DJNZ R3,TIME1 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS1 ;循环执行2次,时间为1 秒钟INC TEMP;满一秒钟对时间加1MOV A,TEMPCLR CSUBB A,#60JNZ GOON1;判断TEMP的数值是否为60?不为60循环ACALL OVERRETGN2: MOV A,#14H ; 设定倒计时的时间20SMOV TEMP,A;数码管显示倒计时时间的程序;初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入 MOV P0,#14H;使显示时间为设定的倒计时时间GOON2: MOV R2,#2JS2: MOV R3,#250TIME2: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BMOV DPTR,#NUMTAB ;指定查表启始地址MOV R0,#4DPL2: MOV R1,#250 ;DPLOP2: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码MOV P0,A ;送出个位的7段代码CLR P2.7 ;开个位显示ACALL DELY1;显示1毫秒SETB P2.7;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DELY1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C2: JB P3.6,B2ACALL DELAY10;延时10毫秒消抖JB P3.6,C2JNB P3.6,$;等待按键松开ZT2: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入 JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT2;如果是干扰就返回JNB P3.6,$;等待按键松开B2: JB P3.7,LOOP2ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP2: DJNZ R3,TIME2 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS2 ;循环执行2次,时间为1 秒钟DEC TEMP;满一秒钟对时间加1MOV A,TEMPJNZ GOON2;判断TEMP的数值是否为0?不为0循环ACALL OVERRET;结束定时OVER: AJMP START;退到开机初始化状态;1毫秒延时子程序DELY1: MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1RET;10毫秒延时子程序DELAY10: MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RET;实验板上的两位一体的数码管0~9各数字的显示代码NUMTAB: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24HEND。
顺计时秒表及倒计时秒表设计--单片机与微机原理及应用课程设计报告
单片机微机原理课程设计——顺计时秒表及倒计时秒表设计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为止。
时间倒数计时器课程设计
时间倒数计时器课程设计一、课程目标知识目标:1. 学生理解时间倒数计时器的基本概念,掌握其工作原理和应用场景。
2. 学生能够运用所学知识,设计并搭建一个简单的时间倒数计时器电路。
3. 学生了解时间倒数计时器在日常生活和科技领域的应用,提高对时间观念的认识。
技能目标:1. 学生通过实践操作,掌握电路连接、调试和故障排查的方法。
2. 学生能够运用编程软件,编写简单的程序控制时间倒数计时器。
3. 学生提高团队协作和沟通能力,学会在项目中分工与协作。
情感态度价值观目标:1. 学生培养对科学技术的兴趣和求知欲,激发创新意识。
2. 学生在学习过程中,养成积极思考、勇于实践的良好习惯。
3. 学生认识到时间的重要性,学会珍惜时间,提高时间管理能力。
课程性质分析:本课程为信息技术学科,结合学生年级特点,注重理论知识与实践操作的相结合,以培养学生的动手能力、创新能力和团队协作能力为主要目标。
学生特点分析:学生处于好奇心强、求知欲旺盛的阶段,对新鲜事物充满兴趣。
但注意力容易分散,需要通过生动有趣的教学方式和实践操作来吸引学生注意力。
教学要求:1. 教师需具备扎实的专业知识和实践经验,能够引导学生进行有效的学习。
2. 教学过程中注重启发式教学,引导学生主动探究、发现问题。
3. 教师要关注学生的个体差异,给予个性化指导,确保每个学生都能在课程中学有所得。
二、教学内容1. 基本概念与原理- 时间倒数计时器的定义与分类- 计时器工作原理及电路组成- 时间倒数计时器在各领域的应用案例2. 实践操作与技能培养- 电路连接、调试及故障排查方法- 编程软件的使用与简单程序编写- 设计并搭建时间倒数计时器电路3. 教学内容安排与进度- 第一课时:介绍时间倒数计时器的基本概念、工作原理和应用案例- 第二课时:学习电路连接、调试及故障排查方法,进行实践操作- 第三课时:学习编程软件的使用,编写控制时间倒数计时器的程序- 第四课时:设计并搭建时间倒数计时器电路,进行团队协作4. 教材章节与内容列举- 教材第三章:“计时器及其应用”- 3.1 计时器的定义与分类- 3.2 计时器的工作原理- 3.3 计时器电路的组成与应用- 教材第四章:“实践操作与技能培养”- 4.1 电路连接与调试方法- 4.2 编程软件的使用- 4.3 设计与搭建时间倒数计时器电路教学内容确保科学性和系统性,以培养学生的动手能力、创新能力和团队协作能力为目标,注重理论与实践相结合,提高学生对时间倒数计时器的认识和应用。
微机原理与接口技术课程设计-倒计时
微机原理与接口技术课程设计-倒计时题目:倒计时学院:西安理工大学专业:机械实际制造及其自动化班级机械四班学号: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)知识目标:建立微机系统的整体概念,了解计算机逻辑编程结构及工作原理,理解课程的主要概念、基本原理和技术要点,拓宽计算机应用的领域和范围的思路和概念;掌握80x86处理器指令系统和汇编语言程序设计方法;熟悉微机接口部件的基本原理,掌握运用主要接口部件进行应用设计的方法。
(2)能力目标:具有运用微机软、硬件技术开发应用系统的初步能力;掌握运用主要接口部件进行应用设计的方法;知道这门学科的研究范围、分析框架、研究方法、学科进展和未来方向;提高分析问题、解决问题的思维和实践能力。
(3)素质目标:具有查找、翻译专业外文文献,收集和提炼科研信息的能力;撰写读书报告或综述,并提高学员的主动学习能力和培养其初步的科研能力。
培养沟通能力和团结协作能力;建立科研的基本思路和方法;培养对科学工作的严肃态度、富于逻辑性的思维方式和实事求是的科学精神。
2.课程定位《微机原理与接口技术》课程旨在强化计算机硬件基础,培养硬件设计与应用开发能力,是学生学习和掌握计算机硬件基础知识、汇编语言程序设计及常用接口技术的基础课程。
本课程强调理论与实践并重,培养学生分析问题、解决问题的能力。
在硬件设计方面,主要培养学生的硬件设计能力,达到能设计接口电路的水平;在应用开发方面,主要培养学生汇编语言程序设计能力,达到能编写接口程序和设备驱动程序的水平。
通过课程学习,为学生后续学习《ARM技术应用》、《嵌入式系统设计》、《PROTEL版图设计》、《嵌入式产品制作实践》等专业课程奠定坚实的基础。
微机原理倒计时器课程设计
倒计时器设计摘要本次设计采用的是8255A、数码管、按键开关以及拨位开关组成的一个简单的倒计时器。
电路具有时间显示功能,能在一位数码管上从9开始递减,每隔1秒钟,计时器减1。
有外部开关能控制其暂停、复位,在倒计时为零0时发出声光警报。
目录前言 (4)第一章倒计时器的设计要求与设计方案…………………………51.1倒计时器的设计的要求 (5)1.2设计方案的论证与比较 (5)1.3设计方案的确定 (5)第二章倒计时器的硬件设计................................................62.1倒计时的硬件框图 (6)2.28255A的基本资料 (6)2.3显示电路的连接 (9)2.4控制电路的连接 (9)2.5报警电路的连接 (10)第三章倒计时器的软件设计.............................................113.1主程序框图 (11)3.2源程序的设计 (11)第四章安装与调试............................................................134.1硬件的调试 (13)4.2软件调试 (13)4.3调试过程 (13)第五章设计体会与总结………………………………………………14附录……………………………………………………………………………………15附一系统硬件原理图 (15)附二源程序与参考文献 (15)前言微机原理和接口技术是一门实践性强的学科,其中很多的原理、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。
在进行课程设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而帮助学生系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。
本次设计的基于单片的倒计时器相较传统机械式倒计时器具有可以灵活可调、性价比高等优点,有在现实生活中得到广泛应用的发展潜力。
倒计时牌 课程设计
信息科学与技术学院微机原理与接口技术课程设计报告题目名称:倒计时牌学生姓名:高兴奇学号: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六、心得体会在对《微型计算机技术及其应用》这本书的学习后,使我了解了计算机的基本结构与组成,但是在学完之后,对于这门课程的具体应用却知之甚少。
倒计时程序
我的提问 我的回答 积分商城
(0)条消息等待处理
今天你做任务了没?全部任务知道学院 +990.辰龙贺岁,答题送宝 +5.新秀集训 +10.茁壮成长 +100..进入个人中心
jz done
cmp al,"p" ;暂停程式
jz pause
cmp al,"c" ;继续程式
jz continue
cmp ispause,0
jg timer
cmp osec,dh ;检查秒数的变化
jnz interval
DATAS ENDS
STACKS SEGMENT
db 64 dup(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
push ax
push bx
push cx
push dx
MOV AX,DATAS
MOV DS,AX
lea dx,startmsg
call puts
;读取时间
mov ah,2ch
int 21h
mov osec,dh ;记下秒数
timesup db 13,10,"Times up!"
endmsg db 13,10,"Thanks for using, bye~$"
secStr
curpg db 0
ispause db 0
微机原理与接口技术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秒的方波。
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倒计时程序。
微机原理与接口技术课程设计-倒计时
*微机原理与接口技术课程设计报告题目:倒计时/《"学院专业计算机科学与技术班级学号学生姓名指导教师课程成绩完成日期 2011年6月23日目录一.设计功能 (3){二.设计原理及原理图 (3)1.系统总设计原理 (3)2.硬件框架原理图 (3)3.硬件介绍 (4)4.功能电路 (7)三.程序模块及流程图 (8)1.8255A初始化 (8)2.显示程序模块 (8)*3.延时程序模块 (9)4.控制程序模块 (9)5.LED灯点亮程序模块 (10)四.源程序 (11)五.实验结果 (15)六.总结 (16)附录1:系统硬件框架 (17)附录2:系统总程序流程图 (18)【附录3:8086/88计算机主板图 (19)题目:倒计时一.设计功能本次课程设计我们在TD-PIT+实验系统和PC机平台上利用并行接口8255A、键盘及数码管显示单元、开关及LED显示单元、键盘按键和电脑显示屏设计成一个倒计时器。
具体功能包括:1.用2位8段共阴数码管显示倒计时时间;2.(3.使用开关K0实现暂停/启动功能,开关K1实现倒计时复位功能;4.倒计时为0时8盏LED灯实现跑马灯功能;5.利用数字键输入倒计时初始数值,按键“r”实现重新启动倒计时器,按键“e”实现退出程序进入DOS环境下,并对其他按键进行屏蔽;6.屏幕显示相应的提示信息,包括提示用户输入数据、倒计时结束、倒计时结束后用户进行的操作;7.可以任意设定倒计时的初始时间,每隔1秒钟计时器减1,直到为0;8.在倒计时过程中可通过开关K1实现退出当前的倒计时并开始新一轮的倒计时。
二.设计原理及原理图1.系统总设计原理^我们选择并行接口8255A芯片,在程序中使用延时语句来输出秒脉冲,并在其中调用显示函数不断刷新数码管进行数值显示。
使用8255A作为输入/输出接口,其中A端口为输出口,连接LED显示单元的D8~D15;B端口为输出口,连接数码管的A~Dp,进行数码管的段锁存;C端口高4位为输出口,连接数码管的X4~X1,进行位锁存,低4位为输入端,连接开关的K3~K0。
微机接口课程设计倒计时牌
《微机原理与接口技术》课程设计题目名称:倒计时牌学生姓名:学号:专业年级:指导教师:时间:目录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)日期显示模块:实现系统时间的获取和存储,并将时间以图形方式刷新输出到显示器,设计过程中主要任务是将系统日期格式化存储显示。
课程设计报告“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.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
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个发光二极管显示出音节状态。
倒计时钟课程设计报告
合肥学院计算机科学与技术系课程设计报告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)。
微机原理与接口技术课程设计报告题目:倒计时学院专业计算机科学与技术班级学号学生姓名指导教师课程成绩完成日期 2011年6月23日目录一.设计功能 (3)二.设计原理及原理图 (3)1.系统总设计原理 (3)2.硬件框架原理图 (3)3.硬件介绍 (4)4.功能电路 (7)三.程序模块及流程图 (8)1.8255A初始化 (8)2.显示程序模块 (8)3.延时程序模块 (9)4.控制程序模块 (9)5.LED灯点亮程序模块 (10)四.源程序 (11)五.实验结果 (15)六.总结 (16)附录1:系统硬件框架 (17)附录2:系统总程序流程图 (18)附录3:8086/88计算机主板图 (19)题目:倒计时一.设计功能本次课程设计我们在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。
这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。
表1 8段LED显示字形段码字型共阴极字形代码字型共阴极字形代码字型共阴极字形代码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灯程序。
A口连接LED显示单元的D15~D8,通过A口送入的数据控制LED灯的点亮情况。
程序代码如下:OUTPUT1: PUSH CX ;点亮流水灯,流水灯0灭1亮MOV CX,7 ;循环计数初值MOV LA,80H ;流水灯从左往右依次点亮P4: MOV AL,LAMOV DX,MY8255_AOUT DX,AL ;通过A口输出控制LED点亮CALL DALLYROR AL,1 ;不进位的循环右移MOV LA,ALLOOP P4MOV CX,8MOV LB,01H ;流水灯从右往左依次点亮P5: MOV AL,LBMOV DX,MY8255_AOUT DX,ALCALL DALLYROL AL,1 ;不进位的循环左移MOV LB,ALLOOP P5JMP prompt ;流水灯显示结束跳转到prompt四.源程序;利用8255A设计倒计时,其中A端口连接LED显示单元的D8~D15,B口连接数码管的A~Dp,;进行段锁存,C口高4位连接数码管的X4~X1,进行位锁存,C口的低4位作为输入端,连;接开关的K3~K0,其他引脚与系统总线相连;***************根据CHECK配置信息修改下列符号值*******************IOY0 EQU 9C00H ;PCI卡中断控制寄存器地址;*****************************************************************MY8255_A EQU IOY0+00H*4 ;8255计数器0端口地址MY8255_B EQU IOY0+01H*4 ;8255计数器1端口地址MY8255_C EQU IOY0+02H*4 ;8255计数器2端口地址MY8255_MODE EQU IOY0+03H*4 ;8255控制寄存器端口地址;*****************************************************************DATA SEGMENTDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;对应0~9TIME DB ;存储倒计时的初始时间CHU DB 10 ;存储被除数10LA DB ;存储数码管从左往右亮的数值LB DB ;存储数码管从右往左亮的数值BUF DB ;存储输入的十位数TISHI DB 13,10,"Input the time:","$"TIMESUP DB 13,10,"Times up!","$"STRMSG DB 13,10,"press [r] to restart, [e] to exit:","$"ENDMSG DB 13,10,"Thanks for using!","$"DATA ENDS;*****************************************************************STACK1 SEGMENT STACKDW 256 DUP()STACK1 ENDS;*****************************************************************CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATAMOV DS,AX ;装载数据段MOV DX,MY8255_MODE ;初始化8255MOV AL,81H;置8255的C口PC0~PC3输入开关状态,PC4~PC7进行数码管的位锁存B;口的PB0~PB7进行数码管的段锁存,A口的PA0~PA7控制流水灯的点亮 OUT DX,ALSHURU: LEA DX,TISHI ;给出输入时间提示MOV AH,09HINT 21H ;显示输入倒计时时间的提示MOV AH,01HINT 21H ;输入第1个数作为十位数SUB AL,30H ;将AL的ASCLL减30H变为十进制的值MOV CL,10MUL CL ;将操作数10和AL相乘结果存入AX中MOV BUF,AL ;把十位数存入BUF中MOV AH,01H ;输入第2个数作为个位数INT 21HSUB AL,30H ;将AL的ASCII减30H变为十进制的值ADD AL,BUF ;将两数相加作为倒计时的开始时间MOV TIME,AL ;将数给TIMEDISPY: MOV BX,OFFSET DTABLE ;取DTABLE的偏移值MOV AL,TIME ;初值给ALCBW ;将AX的高8位置0MOV CL,CHU ;除数10给CLDIV CL ;商/十位数存入AL,余数/个位数存入AH MOV SI,3000H ;定义一个缓冲区MOV [SI],AL ;商/十位数存入[SI],X3中MOV [SI+1],AH ;余数/个位数存入[SI+1],X4中PUSH AX ;保护现场PUSH CXMOV CX,1FFFH ;通过延时不断刷新数码管C1: MOV AX,0FFFHC2: DEC AXCALL DIS ;调用显示子程序JNZ C2LOOP C1 ;通过循环调用不断刷新数码管显示POP CXPOP AX ;弹出现场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 SHURU ;重新开始倒计时OUTPUT1: PUSH CX ;点亮流水灯,流水灯0灭1亮MOV CX,7 ;循环计数初值MOV LA,80H ;流水灯从左往右依次点亮P4: MOV AL,LAMOV DX,MY8255_AOUT DX,AL ;通过A口输出控制LED点亮CALL DALLYROR AL,1 ;不进位的循环右移MOV LA,ALLOOP P4MOV CX,8MOV LB,01H ;流水灯从右往左依次点亮P5: MOV AL,LBMOV DX,MY8255_AOUT DX,ALCALL DALLYROL AL,1 ;不进位的循环左移MOV LB,ALLOOP P5JMP prompt ;流水灯显示结束跳转到promptDALLY: PUSH CX ;流水灯点亮延时函数PUSH AXMOV CX,0FFFFHA1: MOV AX,4FFFHA2: DEC AXJNZ A2LOOP A1POP AXPOP CXRETDIS 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 ENDPDALLY1 PROC NEAR ;数码管显示延时函数 PUSH AXPUSH CXMOV CX,0FFHC3: MOV AX,0FFHC4: DEC AXJNZ C4LOOP C3POP CXPOP AXRETDALLY1 ENDPprompt: LEA DX,TIMESUP ;将TIMESUP字符串输出 CALL PUTSLEA DX,STRMSG ;将STR字符串输出CALL PUTSP3: MOV AH,1INT 21H ;键盘输入单个字符,AL=输入字符的ASCII码 CMP AL,72H ;测试按下的键为‘r’重新开始JZ P1CMP AL,65H ;测试按下的键为‘e’退出JZ P2JMP P3 ;不处理其他按键的输入P1: JMP RESET2 ;重新开始P2: LEA DX,ENDMSGCALL PUTSMOV AH,4CH ;退出程序INT 21HPUTS: MOV AH,9INT 21H ;进行字符串显示RETCODE ENDS ;程序结束END START五.实验结果图8 课设平台图9 系统连线图10 数码管显示图11 LED灯点亮显示图12 PC显示屏提示显示六.总结通过本次微机接口课程设计,让我对微机原理与接口技术和汇编语言的了解更加深刻。