微机原理课程设计报告(电子秒表)
微机原理课程设计电子秒表

沈阳航空航天大学课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:电子秒表院(系):计算机学院专业:计算机科学与技术班级:04010101学号:2010040101024姓名:指导教师:訾学博完成日期:2013年7月5日目录第1章总体设计方案 (1)1.1课程设计的内容和要求 (1)1.2设计原理 (1)1.3设计思路 (2)1.4实验环境 (3)第2章详细设计方案 (4)2.1主程序设计 (4)2.2功能模块的设计与实现 (5)2.3程序连线图 (7)第3章结果测试及分析 (9)3.1结果测试 (9)3.2结果分析 (9)参考文献 (10)附录 (11)第1章总体设计方案1.1 课程设计的内容和要求一、课程设计内容:设计一个带时间显示的电子秒表,具体内容如下:1.电子秒表的初始状态为零,分别显示分、秒、毫秒;2.设计一个按钮,按第一次开始计时,按第二次计时暂停,显示当前记录的时间,按第三次计时停止,回到初始态;3.有时间显示的功能,当不用电子秒表的功能时,显示当先的时间,分别为时、分、秒形式。
二、课程设计要求:1.独立完成课程设计任务;2.通过老师当场验收;3.交出完整的课程设计报告。
1.2 设计原理根据课程设计任务书的内容与要求,要设计一个带时间显示的电子秒表,设计一个按钮带有计时开始、计时暂停、计时清零功能,还要可以进行时钟显示。
在本次设计中主要使用了8253定时/计数器芯片、8259A中断控制芯片以及8279键盘/显示芯片来完成电子秒表的计时过程和时钟显示过程的模拟。
程序开始时扫描键盘判断是否按键,如有则读出相应的控制键,来决定做什么操作,例如开始计时、暂停计时、停止计时、时钟显示等等。
利用8253定时/计数器芯片实现分频功能,使其产生100HZ(10毫秒)的方波,使计时周期为10ms;利用8259A中断控制芯片产生中断响应,通过8253控制8259每10毫秒产生一次中断,使秒表加1,实现计时功能;利用8279键盘/显示芯片在数码管上进行显示,将秒表的计时过程、时钟的当前时间显示在数码管上。
微机原理课设_电子秒表

湖南文理学院芙蓉学院微机原理课程设计报告课程名称:电子秒表专业班级:计科1001班学生学号: 10170119 学生姓名:李资鑫指导教师:杨红杰完成时间: 2013年上学期第15周目录目录第1章总体设计方案 (1)1.1课程设计的内容和要求 (1)1.2课程设计原理 (1)1.3课程设计思路 (2)1.4设计环境 (2)第2章详细设计方案 (3)2.1实现方法 (3)2.2模块的设计与实现 (4)2.2.1主程序模块 (4)2.2.2初始化模块 (5)2.2.3时钟模块 (6)2.2.4秒表模块 (6)2.3程序连线图 (8)第3章调试及结果分析 (9)3.1调试步骤及方法 (9)3.1.1程序的语法错误 (9)3.1.2时钟模块调试过程 (9)3.1.3秒表模块调试过程 (11)3.2实验结果 (11)参考文献 (13)附录(源程序) (14)第1章总体设计方案1.1课程设计的内容和要求一、课程设计内容:设计一个带时间显示的电子秒表,具体内容如下:1.电子秒表的初始状态为零,分别显示分、秒、毫秒;2.设计一个按钮,按第一次开始计时,按第二次计时暂停,显示当前记录的时间,按第三次计时停止,回到初始态;3.有时间显示的功能,当不用电子秒表的功能时,显示当先的时间,分别为时、分、秒形式。
二、课程设计要求:1.独立完成课程设计任务;2.通过老师当场验收;3.交出完整的课程设计报告。
1.2课程设计原理题目要求实现电子秒表功能和显示当前时间的功能。
这两部分的共同点是都需要实现时间显示和时间运行功能。
除此之外,电子秒表还需要有开始计时和停止计时功能。
因此电子秒表是本次课程设计的主要部分。
在本次设计中主要使用了8255A并行接口芯片,8253定时/计数器,8259A 中断控制器,8279键盘/显示芯片。
具体原理和功能如下:1.利用8255A芯片实现时钟和秒表之间的切换。
将其连接到一个开关上,读取开关的电位,以此来判断是时钟模式还是秒表模式。
电子秒表课程设计报告

电子秒表课程设计报告————————————————————————————————作者:————————————————————————————————日期:电子秒表课程设计报告目录一、设计要求 (2)二、设计的目的与作用 (2)三、设计的具体体现 (2)1. 电子秒表的基本组成 (3)2.电子秒表的工作原理 (3)3.电子秒表的原理图 (4)4. 单元电路设计 (4)5.设计仿真与PCB制版 (12)四、心得体会 (17)五、附录 (18)六、参考文献 (20)一、设计要求1.以0.1秒为最小单位进行显示。
2.秒表可显示0.1~60秒的量程。
3.该秒表具有清零、开始计时、停止计时功能。
二、设计的目的与作用1.培养我们运用有关课程的基础理论和技能解决实际问题,并进一步提高专业基本技能、创新能力。
通过课程设计,学习到设计写作方法,能用文字、图形和现代设计写作方法系统地、正确地表达课程设计和研究成果。
2. 熟悉555方波振荡器的应用。
3.熟悉计数器的级联及计数、译码、显示电路的整体配合。
4.建立分频的基本概念。
三、设计的具体体现1.电子秒表的基本组成电子秒表电路的基本组成框图如图所示,它主要由基本RS触发器、多谐振荡器、计数器和数码显示器4个部分组成。
电子秒表电路的基本组成(方框图)如下:图(1)电子秒表基本组成方框图2.电子秒表的工作原理 由555定时器构成多谐振荡器,用来产生50Hz 的矩形波。
第Ⅰ块计数器作5分频使用,将555输来的50Hz 的脉冲变为0.1秒的计数脉冲,在输出端Qd 取得,作为第2块计数器的始终输入,第2、第3块计数器QA 与CP2相连,都已接成8421码十进制计数电路 ,第4块接成六进制形式,其输出端与译码显示器的相应输入端连接,可显示0.1-0.9s,1-9s,10-60s.3.电子秒表的原理图基本RS 多谐单稳态计译码图(2)原理图4.单元电路设计(1)由NE555P组成的多谐振荡器(多谐振荡器)ne555是一种应用特别广泛作用很大的的集成电路,属于小规模集成电路,在很多电子产品中都有应用。
微机原理秒表时钟课程设计

微机原理秒表时钟课程设计一、课程目标知识目标:1. 学生能理解微机原理中秒表时钟的基本工作原理,掌握其硬件组成和软件编程方法。
2. 学生能够掌握秒表时钟的设计思路,了解其功能模块的划分和实现。
3. 学生能够了解微机原理在实际应用中的重要性,认识到秒表时钟在日常生活和工程领域的应用价值。
技能目标:1. 学生能够运用所学知识,设计并实现一个简单的秒表时钟程序,具备基本的编程能力。
2. 学生能够通过分析问题、解决问题,培养创新思维和动手实践能力。
3. 学生能够熟练使用相关硬件设备,提高实际操作能力。
情感态度价值观目标:1. 学生通过本课程的学习,培养对微机原理的兴趣,激发学习热情,形成积极的学习态度。
2. 学生能够认识到团队合作的重要性,学会与他人协作,培养团队精神和沟通能力。
3. 学生能够在实际操作过程中,培养耐心、细心和责任心,养成良好的学习习惯。
课程性质:本课程为实践性课程,注重理论联系实际,培养学生的动手能力和创新意识。
学生特点:本年级学生已具备一定的微机原理基础知识,具有较强的学习能力和求知欲,喜欢动手实践。
教学要求:结合学生特点,以实际操作为主线,注重培养学生的编程能力和团队协作能力,提高学生的实际应用能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的达成。
将课程目标分解为具体的学习成果,便于后续教学设计和评估。
二、教学内容本课程教学内容主要包括以下几部分:1. 微机原理基础知识回顾:引导学生复习已学过的微机原理基础知识,如微处理器、存储器、输入输出接口等,为后续学习秒表时钟设计打下基础。
相关教材章节:第一章 微机原理概述2. 秒表时钟硬件组成:讲解秒表时钟的硬件组成,包括时钟芯片、微处理器、显示模块等,分析各部分的功能和相互关系。
相关教材章节:第三章 微机接口技术3. 秒表时钟软件编程:介绍秒表时钟的软件编程方法,包括编程语言选择、程序结构设计、功能模块划分等。
相关教材章节:第五章 嵌入式系统编程4. 实践操作:安排学生进行实际操作,设计并实现一个简单的秒表时钟程序,培养学生的动手能力和编程技巧。
微机原理电子秒表课程设计模板

微机原理电子秒表课程设计电子秒表设计报告设计要求:用89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电 子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间 (如10S, 20S, 60S),并启动倒计时功能。
能用按键选择以上两功能 之一。
实现原理:利用12M 晶振的一个机器周期为 1微秒,经过循环产生1秒时 间延迟,扫描单片机中所存放的时间的值 (可正记时,也可倒计时), 并经过输出显示在数码管上。
电路图:PO.O — P0.7对应了两个接数码管的A,B,C,D,E,F,G 和小数点位P2.6接显示个位数的数码管的 3、8引角,P2.7则接十位数的。
P3. &F3. VITIL1C1C王晶掘P3.6、P3.7分别接按键 流程框图:ZZE : |Y|初疏<_按键2圣否按下?”>灌气計时. ADC "丸?程序代码:A_BIT EQU 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 TEMP EQU 22H ;计数器数值存放内存位置ZEE功能:初箱化¥ J 功能2 IF杖结化 按键1是否按下?〉 按谴z 星否按下?^按堤1是否按下?;显示題序 * ~计贬开始 「 伽1是否初?;开机初始化MOV P3,#0FFH; 对P3 口初始化,设置为高电平,用于按键输入MOV P0,#0FFH; 使显示时间数码管熄灭;等待按键输入;根据按键的输入判断执行什么功能;按键1 按下则执行功能1START:JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10; 延时10 毫秒触点消抖JB P3.6,START1;如果是干扰就返回JNB P3.6,$;等待按键松开LJMP GN15按键 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。
微机原理课程设计报告(电子秒表)

微机原理课程设计报告(电⼦秒表)⼀、设计⽬的培养和锻炼在学习完本门课后综合应⽤所学理论知识,解决实际⼯程设计和应⽤问题的能⼒。
通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的⽅法、设计步骤,得到微机开发应⽤⽅⾯的初步训练。
掌握8255、8259、8253等芯⽚使⽤⽅法和编程⽅法,通过本次课程设计,学以致⽤,进⼀步理解所学的相关芯⽚的原理、内部结构、使⽤⽅法等,学会相关芯⽚实际应⽤及编程,系统中采⽤8086微处理器完成了电⼦秒表系统的独⽴设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试⽅法,掌握⼀般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
⼆、设计内容设计⼀个可任意启动/停⽌的电⼦秒表,要求⽤6位LED数码显⽰,计时单位为1/100秒。
利⽤功能键进⾏启/停控制。
其功能为:上电后计时器清0,当第⼀次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停⽌计时,再⼀次按启/停键时清零后重新开始计时。
可⽤开关控制,也可⽤按键控制三、设计要求1、基本要求:1)设计可以显⽰1~60秒的⽆存储功能的秒表,最⼩单位为毫秒。
2)通过键盘按键控制秒表清零、暂停、继续,退出等。
其中数字0控制清零,数字1控制继续和退出。
2、提⾼要求:1)秒表可以分组存储、批量显⽰、倒计时等。
2)采⽤图像显⽰,界⾯精美,设置报警声等四、设计原理与硬件电路1、整体设计思想使⽤8253⼯作在⽅式0计数,对1/100S计数,并讲计数值写⼊bl中并与100⽐较若不相等,则将计数值装换为10进制后送8255控制端显⽰,如相等则1S计数程序加1之后并与59⽐较若不相等则将计数值装换为10进制后送8255控制端显⽰,如相等则1min计数程序加1之后并与59⽐较若不相等则将计数值装换为10进制后送8255控制端显⽰,如相等则计数程序加1之后产⽣溢出,跳转清零程序将计数清零,同时数码管清零。
2、使⽤各芯⽚的作⽤及⼯作原理1)定时器/计数器8253⽤系统8253定时器提供的55ms定时单位,设计秒表定时程序。
微机原理电子秒表课程设计报告

目录一、设计内容与要求 -----------------------------------------21.1 设计要求1.2 附加功能二、设计原理 -----------------------------------------------22.1 原理概述2.2 延时原理2.3 字符及字符串显示原理2.4 压缩BCD码转为ASCII原理2.5 动态扫描键盘原理2.6 整分报时原理2.7 记忆功能原理三、程序流程图 ---------------------------------------------43.1 主程序流程图3.2 各子程序流程图四、源程序及运行结果----------------------------------------- 7五、程序调试 -----------------------------------------------7六、心得体会 -----------------------------------------------8七、参考资料 ----------------------------------------------10八、附录(源程序代码)---------------------------------------10一、设计内容与要求1.1设计要求1. 具有秒和百分之一秒计时并显示于图案中央2. 具有启/停、复位功能1.2附加功能1. 具有记忆功能,可实现分别记时功能2.具有正分报时功能二、设计原理2.1 原理概述通过调用INT 21H的8号功能实现控制字符的输入, 2号功能实现字符的输出,9号功能实现字符串的输出。
通过调用INT 10H 的2号功能实现光标定位,AH=0H号功能设置显示方式、AH=7H号功能实现向下滚屏、AH=13H号功能实现彩色输出。
利用系统执行指令的时钟周期,编写延时程序,通过调用延时程序实现一秒的计时。
电子秒表课程设计报告

电子秒表课程设计报告电子信息工程专业10级学生单片机原理课程设计任务书电子秒表的设计一、设计要求设计一个电子秒表,与通用秒表功能类似,有启动,暂停、复位等键。
计时长长度为300秒,需显示百分秒。
二、设计方案分析1.方案设计数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。
本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。
本系统采用C51系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。
其中软件系统采用汇编语言编写程序,硬件系统利用*****强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
本设计利用*****2单片机的定时器/计数器定时和计数的原理,使其能精确计时。
利用中断系统使其能实现开始暂停的功能。
根据要求知道秒表设计主要实现的功能是计时和显示。
因此设置了两个按键和LCD显示时间,两个按键分别是开始、停止和复位按键。
利用这两个建来实现秒表的全部功能,而LCD则能显示最多4.59.99秒的计时。
电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。
硬件电路图按照图1.1进行设计。
图1.1 数字秒表硬件电路基本原理图本设计中,数码管显示的数据存放在内存单元31H-33H中。
其中31H存放分钟变量,32H存放秒钟变量,33H存放10ms计数值,即存放毫秒位数据,每一地址单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。
显示时,先取出31H-33H 某一地址中的数据,然后查得对应的显示位,并从P1口输出,就能显示该地址单元的数据值。
计时通过INT1中断完成,定时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到4.59.99秒重新复位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。
通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。
掌握8255、8259、8253等芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8086微处理器完成了电子秒表系统的独立设计。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、设计内容设计一个可任意启动/停止的电子秒表,要求用6位LED数码显示,计时单位为1/100秒。
利用功能键进行启/停控制。
其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
可用开关控制,也可用按键控制三、设计要求1、基本要求:1)设计可以显示1~60秒的无存储功能的秒表,最小单位为毫秒。
2)通过键盘按键控制秒表清零、暂停、继续,退出等。
其中数字0控制清零,数字1控制继续和退出。
2、提高要求:1)秒表可以分组存储、批量显示、倒计时等。
2)采用图像显示,界面精美,设置报警声等四、设计原理与硬件电路1、整体设计思想使用8253工作在方式0计数,对1/100S计数,并讲计数值写入bl中并与100比较若不相等,则将计数值装换为10进制后送8255控制端显示,如相等则1S计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则1min计数程序加1之后并与59比较若不相等则将计数值装换为10进制后送8255控制端显示,如相等则计数程序加1之后产生溢出,跳转清零程序将计数清零,同时数码管清零。
2、使用各芯片的作用及工作原理1)定时器/计数器8253用系统8253定时器提供的55ms定时单位,设计秒表定时程序。
有关系统定时方法:PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK 信号,频率:f=1.1931816MHz。
定时器0输出方波的频率:fout=1.1931816/65536=18.2Hz。
输出方波的周期Tout=1/18.2=54.945ms。
8253A每隔55ms引起一次中断,作为定时信号。
可用55945ms作基本计时单位。
用BIOS调用INT 1AH可以取得该定时单位。
例:1秒=18.2 (计时单位)8253的引脚图及硬件连接图如下图示:《8253引脚图》硬件连接图当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8 253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连。
计数器(0 ~ 2)即三个计数器/定时器通道。
每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。
作定时器用:其CLK端上的输入脉冲应是标准的、精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。
采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 = 时钟脉冲周期X预置的计数初值。
控制功能表WR A1A0功能CSRD0 1 0 0 0 写计数器00 1 0 0 1 写计数器10 1 0 1 0 写计数器20 1 0 1 1 写控制字寄存器0 0 1 0 0 读计数器00 0 1 0 1 读计数器10 0 1 1 0 读计数器20 0 1 1 1 无操作1 X X X X 禁止使用0 1 1 X X 无操作每个通道:CLK 计数脉冲或标准脉冲输入端GATE 允许端,当GATE=1时允许计数UT 计数值为0时输出一个脉冲由于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口按位置位/ 复位控制字格式如图所示:3. 锁存器27374LS273是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. 数据收发器245当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)*DIR=“1”,信号由 A 向B 传输;(发送)当/CE为高电平时,A、B均为高阻态5、译码器74ls15474ls154为4—16线制译码器其引脚图如下图所示6. 7段数码管数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
开 始等于1S不等等于59不等等于59不等等于231S 计数60S 计数60min 计数24h 计数BVD 处 理产 生 溢 出清 空BCD 码调整指令10进制显示a1 equ 0000hb1 equ 0002hc1 equ 0004hctr1 equ 0006h ;8255各端口地址a2 equ 0200h ;8253计数器0端口地址ctr2 equ 0206h ;8253控制端口地址a3 equ 0100hdata segment; keynum db 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH, 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77Htab db 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H ,7CH,39H,5EH,79H,71Hbuf db 0,0,0,0buf1 db 0,0,0,0,0,0,0,0buf2 db 0,0;前为第一开关次数buf3 db 80 dup(?)data endscode segment 'code'assume ds:data,cs:codestart: mov ax,datamov ds,ax;设中断入口地址设置mov ax,0mov es,axmov di,08mov ax,offset intr_keycldstoswmov ax,seg intr_keystoswmov ax,datamov es,ax;8255写入控制字mov al,10001001b ;A口B口输出显示,C口高四位低四位输入mov dx,ctr1out dx,aln3: call jishujmp n3n2: lea si,buf2mov bh,00hmov bl,1h[si]lea di,buf3add di,bxadd bl,8mov 1h[si],bllea si,buf1cldmov cx,8rep movsbn4: call disjmp n4n5: lea si,buf2mov bh,00h微机原理课程设计报告mov bl,1h[si]cmp bl,0jz n1lea di,buf1sub bl,8mov 1h[si],bllea si,buf3add si,bxcldmov cx,8rep movsbn6: call disjmp n6n1: call qinlinjmp n1;jmp startjishu proc near ;计数子程序 lea si,bufmov bl,[si]cmp bl,100jnz s6s1: mov bl,0mov [si],blmov ah,1h[si]cmp ah,59jz s2inc ahmov 1h[si],ahjmp s6s2: mov ah,0mov 1h[si],ahmov ah,2h[si]inc ahmov 2h[si],ahjmp s6s6:call chumov cx,3s5:call disloop s5call delay1sinc byte ptr[si]retjishu endpchu proc ;rukou al ;数处理子程序 push sipush bxmov bl,4lea di,buf1lea si,bufnext:lodsbmov ah,00mov cl,10div clxchg ah,alstosbmov al,ahstosbdec bl微机原理课程设计报告 jnz nextpop bxpop siretchu endpdis proc near ;显示buf1中的值push bxpush cxlea bx,tablea di,buf1mov cx,8mov ah,7Fhloop1: mov al,[di]xlat ;换码mov dx,a1out dx,almov dx,b1mov al,ahout dx,almov bh,1call delaycall qplea bx,tabror ah,1inc diloop loop1pop cxpop bxretdis endp delay1s proc near ;8253延时子程序 push dxpush axmov dx,ctr2 ;8253 控制mov al,00110000bout dx,al ;8253计数器0控制字方式0 out端作为中断请求信号mov dx,a2mov al,01hout dx,almov al,00hout dx,almov dx,a3M1: in al,dxtest al,01hjz M1pop axpop dxretdelay1s endpqp proc near ;清频子程序mov al,0ffhmov dx,b1out dx,alretqp endpdelay PROC NEAR ;内部延时之程序PUSH bx微机原理课程设计报告PUSH CXwait0: MOV CX,06hwait1: LOOP wait1DEC bhJNZ wait0POP CXPOP bxRETdelay ENDPintr_key proc near ;中断服务子程序 call keytest al,2hjz n1test al,4hjz n5lea di,buf2mov bh,[di]inc bhmov [di],bhtest bh,1hjnz n2jmp n3iretintr_key endpqinlin proc ;键盘清零子程序 mov ax,0 lea di,bufmov cx,14cldrep stosbcall disqinlin endpkey proc ;读取键盘程序 mov dx,c1in al,dxretkey endpcode endsend start七、程序及硬件系统调试情况按下暂停键实现暂停功能继续计数后按下清零键实现清零功能八、设计心得经过这次课程设计,我觉得我有了很大的收获,:1.我大大地锻炼了自己搞科研的能力,作为我们大学生,尤其是工科的大学生,对于科研能力,能够自主开发课题,项目有着很高的要求,而我们很多大学生动手研发的能力还不是很强。