微机课程设计数字秒表
课程设计任务书-数字秒表

课程设计任务书数字秒表的设计要求:(1)5V电源供电。
(2)数码管显示时间范围为:0~59秒。
(3)可自动复位和手动复位,能实现手动调整时间。
一、设计任务1、设计题目:数字秒表的设计设计要求:(1)5V电源供电。
(2)数码管显示时间范围为:0~59秒。
2、(3)可自动复位和手动复位,能实现手动调整时间。
二、设计方案:1、方框图:功能说明:此电路是由8421码十进制计数电路,译码电路,数码显示电路,自动脉冲产生电路与门电路,手动复位电路,手动脉冲产生电路和电源电路八部分组成。
数字秒表电路是利用8421码十进制计数电路的计数功能,同时利用译码驱动电路,驱动数码显示电路发光显示数字。
其中,自动脉冲产生电路同与门电路组合可以实现0~59的循环计数,手动脉冲产生电路同与门电路组合可以选择0~59的任意数值,手动复位电路实现手动清零。
三、电路设计与分析1、8421码十进制计数电路和与门电路,自动脉冲产生电路,手动脉冲产生电路,自动脉冲产生电路及手动复位电路。
A、8421码十进制计数电路采用集成异步十进制计数器74LS90。
74LS90是二一五一十进制计数器,将输入时钟脉冲CLK接于CLK0端,并将CLK1端与Q0端相连,便构成8421码集成异步十进制计数器。
74LS90的逻辑图如下:二一五一十进制计数器74LS90逻辑图集成异步十进制计数器74LS90的电路图如下:74LS90的功能表如下:数学分析:(1)列出逻辑方程组①列出时钟信号的逻辑表达式CLK1=Q0 ; CLK2=Q2 ; CLK0=CLK②激励方程组L0=K0=1 ; J1=+;K1=1 ; J2=J1=1 ; J3= ; K3=1③(2)列出状态表:B、秒表的个位是通过将该位计数器的Q3与十位计数器的CLK0相连实现逢9向十位进1的逻辑功能。
C、秒表的十位通过将计数器的Q1、Q2相连和MR1,MR2相连,实现逢6清零的功能(祥见74LS90功能表),其中的与门电路用74LS08实现,其内部逻辑图如下所示:D、自动脉冲产生电路由函数信号发生器给出,可以实现0~59的循环计数。
c51数字秒表课程设计

c51数字秒表课程设计一、课程目标知识目标:1. 学生能理解C51单片机的基本原理,掌握数字秒表的硬件设计及编程方法。
2. 学生能够运用C语言编写程序,实现秒表的启动、停止、计时的功能。
3. 学生了解数字秒表在实际应用中的重要性,如时间测量、实验数据记录等。
技能目标:1. 学生能够运用所学的C51知识,设计并实现一个具有基本功能的数字秒表。
2. 学生通过实际操作,提高动手实践能力,培养解决实际问题的能力。
3. 学生能够运用所学知识,对数字秒表进行调试和优化,提高程序运行效率。
情感态度价值观目标:1. 学生培养对单片机编程的兴趣,提高学习主动性和积极性。
2. 学生通过合作完成任务,培养团队协作能力和沟通能力。
3. 学生在解决问题的过程中,培养坚持不懈、勇于探索的精神。
本课程针对高年级学生,结合C51单片机课程内容,注重理论与实践相结合。
课程设计旨在帮助学生巩固所学知识,提高动手实践能力,培养解决实际问题的能力。
通过数字秒表的设计与实现,让学生充分体会单片机编程的乐趣,激发学生的学习兴趣,为后续课程学习打下坚实基础。
同时,课程强调团队协作和情感态度的培养,使学生在学习过程中形成积极向上的人生态度。
本章节教学内容主要包括以下几部分:1. C51单片机原理回顾:复习C51单片机的硬件结构、工作原理及编程基础,重点掌握I/O口编程、定时器/计数器等知识点。
2. 数字秒表的硬件设计:介绍数字秒表的硬件组成,包括单片机、时钟电路、显示电路等,分析各部分功能及相互关系。
3. 数字秒表的编程实现:学习如何使用C语言编写程序,实现数字秒表的功能。
内容包括:- 定时器/计数器的配置与使用;- 按键扫描程序编写;- 数码管显示程序编写;- 秒表功能模块设计(启动、停止、计时)。
4. 教学案例分析与实践:结合教材案例,分析数字秒表的设计过程,引导学生动手实践,完成一个具有基本功能的数字秒表设计。
5. 调试与优化:介绍程序调试方法,指导学生运用调试工具,对数字秒表程序进行调试和优化,提高程序运行效率。
单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。
本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。
一、设计要求1、能够实现秒表的启动、暂停、复位功能。
2、计时精度达到 001 秒。
3、能够通过数码管显示计时结果。
二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。
显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。
按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。
时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。
2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。
中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。
三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振频率选择 12MHz,为单片机提供时钟信号。
复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。
2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。
通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。
3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。
当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。
四、软件程序设计1、主程序流程系统初始化后,进入主循环。
在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。
微机原理课程设计报告(电子秒表)

电子与控制工程学院计算机原理与接口技术课程设计姓名高强强学号3206100232专业建筑设施智能技术设计题目可任意启动停止的电子秒表指导老师傅攀峰目录1电子秒表课程设计要求 (1)2关键字 (1)3摘要 (1)4综合实验目的 (1)5引言 (1)5.1.1使用各个芯片的作用及工作原理 (2)5.1.2 8253可编程外围芯片介绍 (3)5.1.3锁存器74ls273 (4)5.1.4译码器74154 (7)5.1.5七段数码管显示 (8)6程序流程图 (10)7程序源程序 (11)8程序及硬件调试图 (15)9设计心得 (17)10参考文献 (18)可任意启动/停止的电子秒表一、电子秒表课程设计要求6位LED数码显示,计时单位为1/100秒。
利用功能键进行启/停控制。
其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。
第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。
二、关键字8086 8255 8253 控制字三、摘要用汇编语言设计数字秒表,用PROTUES仿真软件搭建的硬件电路上正确显示,并且具有开始停止清零功能。
用8086作为处理器,8253做定时功能产生0.01S的脉冲,8255具备锁存和并行输出功能,驱动7段数码管正确显示,并且具有足够高的精度。
四、综合实验目的:通常,学习知识是由浅入深、由此及彼,一点点的学习和积累的,而应用知识则是综合运用所积累的知识来分析和解决实际问题、从知识的系统性来检验对各层次知识的掌握程度。
综合实验的目的是让学生把理论学习和实验教学阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。
这次综合实验大家应当把它作为毕业设计的预演。
锻炼通过各种媒体和途径主动获取知识的能力。
五、引言使用8253的通道0 工作在方式0计数,,并选用二进制技术,控制字36H,计数初值500,对1MHZ的CLK计数产生2000HZ的输出脉冲给1,2通道的CLK,通道一选用二进制计数即计数结束中断方式0,初值20产生非屏蔽中断0.01S非屏蔽中断送给8086的NMI产生中断的脉冲,8086开始计数即毫秒位计数并显示,并与10比较,等于给分秒位加一,毫秒位置清零,分秒位与6比较若相等清零秒各位加一,秒个位与10比较若等于清零秒十位加一,秒十位与6比较若等于清零分个位加1,分个位与10比较若等于清零分十位加一,分十位与6比较若等于全部清零。
微机原理秒表时钟课程设计

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

数字逻辑课程设计_秒表一、教学目标本课程旨在让学生掌握秒表的基本原理和使用方法,培养学生的数字逻辑思维和实际操作能力。
具体目标如下:1.知识目标:学生能够理解秒表的工作原理,包括时间计算、计数器等基本概念。
2.技能目标:学生能够熟练使用秒表进行时间测量和计数,并能进行简单的故障排查和维修。
3.情感态度价值观目标:通过学习秒表,培养学生对科学技术的兴趣和好奇心,提高学生的问题解决能力和团队合作意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.秒表的基本原理:介绍秒表的工作原理,包括时间计算、计数器等基本概念。
2.秒表的使用方法:教授学生如何正确使用秒表进行时间测量和计数,包括操作步骤和注意事项。
3.秒表的故障排查和维修:培养学生对秒表故障的识别和解决能力,包括常见故障的原因和维修方法。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:教师通过讲解秒表的基本原理和使用方法,让学生掌握相关知识。
2.讨论法:学生分组讨论秒表的使用心得和故障解决经验,促进学生之间的交流和合作。
3.案例分析法:教师提供一些实际的案例,让学生分析并解决秒表的使用问题,培养学生的实际操作能力。
4.实验法:学生在实验室进行秒表的操作和实践,加深对秒表的理解和掌握。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选择合适的秒表教材,为学生提供系统的学习资料。
2.参考书:提供一些相关的参考书籍,供学生进一步深入学习。
3.多媒体资料:制作一些教学视频和演示文稿,帮助学生更好地理解秒表的工作原理和使用方法。
4.实验设备:准备一些秒表和相关实验设备,让学生进行实际操作和实验。
五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估其学习态度和理解能力。
8086秒表课程设计

8086秒表课程设计一、课程目标知识目标:1. 学生能理解8086微处理器的内部结构与工作原理,掌握其时钟计数器功能。
2. 学生能掌握秒表的设计原理,包括启动、停止、计时的基本操作。
3. 学生能了解并运用相关的汇编指令,完成秒表的编程与调试。
技能目标:1. 学生能运用所学知识,设计并实现一个基于8086处理器的秒表程序。
2. 学生能通过编程实践,提高问题分析、程序设计及调试的能力。
3. 学生能通过团队协作,提升沟通与协作能力。
情感态度价值观目标:1. 学生在课程学习中,培养对计算机硬件及编程的兴趣,提高学习积极性。
2. 学生在实践操作中,培养动手能力、创新意识和解决问题的自信心。
3. 学生通过课程学习,认识到科技进步对生活的影响,增强社会责任感和使命感。
课程性质:本课程为计算机硬件及汇编语言课程的一部分,以实践操作为主,注重培养学生的动手能力和编程思维。
学生特点:学生为高中二年级学生,已具备一定的计算机硬件和汇编语言知识,具备基本的编程能力。
教学要求:结合学生特点,课程以任务驱动法为主,引导学生主动探究,注重理论与实践相结合,提高学生的实际操作能力。
通过课程目标的分解,确保学生达到预期的学习成果,为后续课程学习奠定基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 8086微处理器内部结构及工作原理回顾:重点复习时钟计数器部分,为学生设计秒表奠定基础。
2. 秒表设计原理:讲解秒表的启动、停止、计时的基本原理,引导学生理解其与硬件计数器的关联。
3. 汇编指令学习:结合教材,复习与秒表编程相关的重要指令,如MOV、ADD、SUB、JMP等。
4. 秒表编程与调试:指导学生运用所学知识,设计并实现一个基于8086处理器的秒表程序。
5. 任务驱动实践:制定以下教学进度:a. 第一周:回顾8086微处理器知识,学习秒表设计原理。
b. 第二周:学习汇编指令,编写秒表程序。
c. 第三周:调试秒表程序,进行优化。
数字秒表课程设计及仿真

数字秒表课程设计及仿真一、课程目标知识目标:1. 学生能理解数字秒表的基本原理,掌握其计时功能的工作机制。
2. 学生能描述数字秒表电路的组成,包括时钟电路、触发器、计数器等关键元件。
3. 学生能够运用所学知识,分析并解释数字秒表中时间测量的精度和误差来源。
技能目标:1. 学生能够运用仿真软件设计并搭建一个简单的数字秒表电路模型。
2. 学生通过实际操作,学会设置数字秒表,进行时间的测量和记录,掌握基本的时间计算方法。
3. 学生能够利用仿真工具对数字秒表电路进行调试,解决简单的故障问题。
情感态度价值观目标:1. 学生通过课程学习,培养对电子科技的兴趣,增强对科学探究的热情。
2. 学生能够在小组合作中发展团队协作精神,学会相互尊重和交流分享。
3. 学生通过实际操作和问题解决,培养面对挑战的积极态度和解决实际问题的自信心。
课程性质:本课程属于电子技术实践课程,结合理论教学与实际操作,强调知识的应用与创新。
学生特点:考虑到学生年级特点,课程设计将结合学生的好奇心和动手能力,通过形象直观的仿真实验,激发学生的学习兴趣。
教学要求:教学过程中应注重理论与实践相结合,强调知识的应用和技能的培养,通过课程学习,使学生能将所学知识内化为解决实际问题的能力。
教学评估将基于学生在课程中的具体学习成果进行。
二、教学内容本课程教学内容主要包括以下几部分:1. 数字秒表基本原理:介绍数字秒表的计时原理,分析时钟电路、触发器、计数器等关键元件的工作原理。
2. 数字秒表电路组成:详细讲解数字秒表的电路结构,包括时钟电路、控制电路、显示电路等组成部分。
3. 仿真软件应用:教授学生如何使用仿真软件,搭建数字秒表电路模型,并进行调试。
4. 实践操作:指导学生进行数字秒表的设置、时间测量和记录,以及基本的时间计算方法。
5. 故障分析与解决:教授学生如何分析数字秒表电路中的常见故障,并运用所学知识解决问题。
教学内容安排如下:第一课时:数字秒表基本原理及电路组成1. 介绍计时原理和关键元件2. 分析电路结构及工作原理第二课时:仿真软件应用与实践操作1. 搭建数字秒表电路模型2. 进行仿真调试和实际操作第三课时:故障分析与解决1. 分析常见故障及其原因2. 解决实际问题,提高操作技能教学内容与教材关联性:本课程内容紧密联系教材中关于数字电路、计时器等方面的知识,确保学生所学内容的科学性和系统性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1.中文摘要 (1)2.方案论证 (3)3.总体设计方案 (3)3.1硬件系统设计 (4)3.1.1 8086简介 (5)3.1.2 8255简介 (6)3.1.3 8083简介 (8)3.1.4 硬件系统原理图 (9)3.2软件系统设计 (10)3.2.1 软件设计要求及介绍 (11)3.2.2 程序设计流程 (12)3.2.3 程序清单 (13)4.实验结果及分析 (24)5.总结体会 (25)6.参考文献 (26)一、中文摘要微机原理与接口技术是一门实践性很强的电子信息工程专业的技术基础课程。
因此,微机接口课程设计是一项实践性很强的实训环节,结合运用所学的汇编语言及8086微处理芯片设计一个电子秒表,通过实践能够加深对汇编语言的理解以及对8086微处理器、8253可编程定时器、8259A可编程中断控制器、8255A可编程并行I/O接口芯片等的基本功能的认识。
本实验利用8253可编程定时器等芯片的定时和记数的原理,结合实验箱上的集成电路芯片8086、LED数码管以及实验箱上的按键来设计秒表。
将软、硬件有机地结合起来,要求实现计时单位为1/100秒,利用功能键进行启/停控制,上电后计时器清0,当第一次按下KEY1启/停键时开始计数,按一下KEY2键清零,重新开始计时,在系统能够正确地进行计时,使5位LED数码管能够正确地显示时间。
关键字:电子秒表、百分之一秒、停启控制。
二、方案论证根据课程设计的要求和我们所要增加的功能写好程序流程图,在程序流程图的基础上,结合芯片的功能写出相应的程序。
然后再进行程序调试和相应的修改,以达到能够实现所要求实现的功能的目的。
在微机原理定汇编调试软件上编辑源程序,并进行汇编,在汇编成功无误后,选择端口进行调试,然后装入程序,至此,本次设计的软件工作准备完毕。
再根据硬件原理设计图完成各芯片之间的连接,打开实验箱电源开关总体进行调试。
在整个实验过程中,在8253可编程定时器CLK端输出管脚处接上一个计数的频率为10KHZ的时钟信号,由8253定时/计数器产生0.01秒的中断并进行计数,可编程并行I/O接口芯片8255A将偏移地址写入内存单元,进中断更新数据,然后将内存数据送给LED数码管显示。
定时器中断就是定义初值,然后开中断,剩下的就在中断里写了。
保存数据段后,取中断程序入口地址,定义可编程中断控制器8259中断7中断矢量,读8259中断屏蔽字,开8259中断7,六位数码管用动态显示,挨个点亮,六个I/O控制位,十二个I/O控制段码,将8259的定时器设置在0.01秒进入一次中断,交替输出高低电平(形成时钟频率),在计数器输出使用组合逻辑电路连接LED灯的各个控制输入端。
三、总体设计方案设计一个利用微机原理与接口技术完成秒表的设计方案, 该方案主要是选择8253A的计数器2与计数器1产生一个1Hz的中断脉冲,其输出端与不可屏蔽中断请求信号端相连接。
利用1.19318MHz脉冲方波输入CLK2,设置CLK2的初值为59659,将CLK2的输出端连接到CLK1,设置CLK1的初值为20,将OUT1连接到8086CPU的NMI端。
将NMI端有一个低电平信号输入时,8086CPU将产生中断进行秒计数。
8086通过8255A将PA口作为段选信号输出端,将PB口作为片选信号输出端。
此方案的核心内容是利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8253A的计数器2和计数器1进行1s的定时,其输出于OUT1与8086的NMI相连,当定时到1s的时候产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255的A口接七段数码管的段选信号,B口接七段数码管的位选信号,秒的数值通过对8255的编程可以显示在七段数码管上面。
该方案是利用微机接口技术的典范案例,就可行性而言,也是行之有效的。
总体设计方框图3.1硬件系统设计3.1.1 8086简介Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。
它提供64K,8位元的输出输入(或32K,16位元),以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。
运算结果会储存在操作数中的一个。
Intel 8086有四个内存区段(segment)寄存器,可以从索引寄存器来设定。
区段寄存器可以让CPU利用特殊的方式存取1MB内存。
8086把段地址左移4位然后把它加上偏移地址。
而 8086 的寻址方式改变让内存扩充较有效率。
8086处理器的时钟频率介于4.77MHz(在原先的IBM PC)和10 MHz之间。
8086没有包含浮点指令部分(FPU),但是可以通过外接数学辅助处理器来增强浮点计算能力。
其I/O分配如下图所示:3.1.2 8255简介Intel 8086/8088 系列的可编程外设接口电路(ProgrammablePeripheral Interface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;方式0:基本的输入输出方式,即无须联络就可以直接进行的 I/O方式。
其中A、B、C口的高四位或低四位可分别设置成输入或输出。
方式1:选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0。
方式2:双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。
8255A 是一个并行输入、输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O 口:A组包括A口及C口高4位,B组包括B口及C组的低4位。
3.1.3 8253简介Intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz),8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
输出锁存器的值是通过程序设置的。
输出锁存器OL 用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。
顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用:3.1.4.硬件系统原理图3.2软件系统设计3.2.1软件设计要求及介绍这是一个利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8253A的计数器2与计数器1进行1s的定时,其输出于OU1与8086的NMI相连,当定时到1s的时候产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255的A口接七段数码管的段选信号,B口接七段数码管的位选信号。
我的数值通过对8255的编程可以显示在七段数码管上面。
因此可以利用8086等器件的功能来完成设计。
EMU8086是学习汇编必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。
该软件包含了学习汇编语言的全部内容。
Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug 的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程。
这里是软件设计的流程,首先对所要用到的逻辑元器件的控制端口,I/O口进行初始化,接着通过按下按键“1”来调用赋值子程序,这中间必须要应用一个延时程序来防抖,完成后就开始中断,接着判断按键“2”按下去的次数,如果是奇数次的话就继续进行秒表计时,如果按下去的是偶数次的话,那么暂停,显示当前秒表的计数值。
3.2.2程序设计流程3.2.3程序清单DIS MACRO LOCAT,CODE ;设置图形显示宏定义PUSH DXPUSH BXPUSH AXMOV DX,LOCAT ;设置光标位置MOV BH,00MOV AH,02HINT 10HMOV DL,CODE ;输出字符串MOV AH,02HINT 21HPOP AXPOP BXPOP DXENDMDAT SEGMENT ;设置数据段BUF DB 'INPUT START RESET END CONTINUE $' ;设置功能说明BUFFER DB 10 DUP(?) ;定义缓存区TIP DB 'M E M O R Y$' ;定义记忆提示NUM DB 1LOD EQU 0929HDAT ENDSCOD SEGMENT ;定义代码段START PROC FARASSUME CS:COD,DS:DATMOV AX,DATMOV DS,AXMOV DX,OFFSET BUF ;输出功能说明MOV AH,09HINT 21HCALL DISMER ;记忆区提示符置光标MOV DX,OFFSET TIP ;输出记忆提示字符MOV AH,09HINT 21HCALL CLR ;图形区清屏并设置颜色CALL CLRDAT ;秒表数字区清屏并设置颜色CALL CLRMER ;记忆区清屏并设置颜色DIS 0419H,'<' ;通过宏调用显示图形DIS 0517H,'<'DIS 0715H,'<'DIS 0914H,'<'DIS 0B14H,'<'DIS 060EH,'_'DIS 0710H,'_'DIS 0812H,'_'DIS 0913H,'_'DIS 0A14H,'_'DIS 0915H,'_'DIS 0816H,'_'DIS 0718H,'_'DIS 061AH,'_'DIS 071CH,'*'DIS 081EH,'*'DIS 091FH,'*'DIS 0B20H,'*'DIS 0D21H,'*'DIS 0F21H,'*'DIS 1120H,'*'DIS 131FH,'*'DIS 141EH,'*'DIS 151DH,'*'DIS 161BH,'*'DIS 1719H,'*'DIS 1717H,'_'DIS 1616H,'_'DIS 1514H,'_'DIS 1612H,'_'DIS 1711H,'_'DIS 170EH,'*'DIS 160CH,'*'DIS 150BH,'*'DIS 140AH,'*' DIS 1309H,'*'DIS 1108H,'*'DIS 0F07H,'*'DIS 0D07H,'*'DIS 0B08H,'*'DIS 0909H,'*'DIS 080AH,'*'DIS 070CH,'*'DIS 0C12H,'_'DIS 0C13H,'_'DIS 0C14H,'_'DIS 0C15H,'_'DIS 0C16H,'_'CALL GO ;设置初植LOAD: CALL IOSET ;光标定位CALL HALT ;等待输入MOV DX,0MOV CH,0AGAIN: CALL TIME ;调用延时程序MOV AL,DL ;百分之一秒加一ADD AL,1DAAJC NEXT1 ;满一百进位MOV DL,ALJMP DISPY ;不满一百显示NEXT1: MOV DL,0MOV AL,DH ;秒位加一ADD AL,1DAAMOV DH,ALCMP AL,60HJNE DISPYCALL BELL ;满60提示铃声并进位MOV DH,0MOV AL,CH ;分位加一ADD AL,1DAAMOV CH,ALCMP AL,60HJNE DISPY ;满60清零MOV CH,0DISPY: ;显示电子秒表MOV BX,OFFSET BUFFER ;取缓冲区地址MOV AL,CHCALL TRAN ;将分位转变为ASCII码并送缓冲区INC BXINC BXMOV AL,DH ;将秒位转变为ASCII码并送缓冲区CALL TRANINC BXINC BXMOV AL,DL ;将百分之一秒位转变为ASCII码并送缓冲区CALL TRANPUSH BXPUSH CXPUSH DXCALL IOSET ;光标置位MOV DX,OFFSET BUFFER ;输出缓冲区字符串MOV AH,09HINT 21HPOP DXPOP CXPOP BXMOV AH,0BH ;等待键盘输入INT 21HAND AL,ALJZ AGAINMOV AH,08HINT 21HCMP AL,'R' ;判断输入是否为RJNE NEXT2 ;不是则判断是否为ECALL MEMORY ;若是则调用记忆功能保存当前值MOV CH,0 ;初值清零重新计数MOV DL,0MOV DH,0JMP AGAINNEXT2:CMP AL,'E' ;判断是否为EJNE AGAIN ;不是则继续计数NEXT3: ;若是则暂停计数MOV AH,08HINT 21HCMP AL,'C' ;判断是否输入CJE AGAIN ;若是则继续计数CMP AL,'R' ;判断是否输入RJNE NEXT3 ;若不是则继续等待输入CALL MEMORY ;若是则调用记忆功能CALL GO ;重新设置初值等待重新启动CALL IOSETMOV DX,OFFSET BUFFERMOV AH,09HINT 21HJMP LOADRETSTART ENDPGO PROC ;设置初值子程序MOV BX,OFFSET BUFFERMOV AL,'0'MOV [BX],ALINC BXMOV AL,'0'MOV [BX],ALINC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,'0'MOV [BX],ALINC BXMOV AL,'0'MOV [BX],ALINC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,'0'MOV [BX],ALINC BXMOV AL,'0'MOV [BX],ALINC BXMOV AL,'$'MOV [BX],ALRETGO ENDPIOSET PROCMOV DX,0F10HMOV BH,00MOV AH,02HINT 10HRETIOSET ENDPHALT PROCMOV AH,08HINT 21HCMP AL,'S'JNE HALTRETHALT ENDPTRAN PROC ;十六进制转ASCII码子程序MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV [BX],ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV [BX],ALRETTRAN ENDPTIME PROC ;延时子程序PUSH CXPUSH AXMOV AX,0EFHMOV CX,0FFFFHA1:DEC AXJNZ A2JMP A3A2:DEC CXJNZ A2JMP A1A3:POP AXPOP CXRETTIME ENDPMEMORY PROC ;记忆功能子程序PUSH DXPUSH BXPUSH AXCMP NUM,10JE X2ADD NUM,1X1: MOV DX,LODADD DH,NUMMOV BH,00MOV AH,02HINT 10HMOV DX,OFFSET BUFFERMOV AH,09HINT 21HPOP AXPOP BXPOP DXRETX2: CALL CLRMERMOV NUM,1JMP X1MEMORY ENDPCLR PROC ;图形区清屏并设置颜色子程序MOV AH,06HMOV AL,14HMOV CX,0401HMOV DX,1721HMOV BH,0CHINT 10HRETCLR ENDPCLRDAT PROC ;数据区清屏并设置颜色子程序MOV AH,6MOV AL,1MOV CX,0F10HMOV DX,0F18HMOV BH,0BHINT 10HRETCLRDAT ENDPCLRMER PROC ;记忆区清屏并设置颜色子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV AH,6MOV AL,11MOV CX,0929HMOV DX,0F32HMOV BH,0DHINT 10HPOP DXPOP CXPOP BXPOP AXRETCLRMER ENDPDISMER PROC ;记忆提示显示子程序MOV AH,02HMOV BH,00MOV DX,0728HINT 10HRETDISMER ENDPBELL PROC ;满分钟提示音设置子程序PUSH AXPUSH DXMOV AL,07HMOV DL,ALMOV AH,02HINT 21HPOP DXPOP AXRETBELL ENDPCOD ENDS ;结束代码段END START ;结束源程序4.实验结果与分析分析:实验结果最终呈现的图样可随意改变,伪指令存在连续的存储单元中,指令依次执行则会最终呈现设计的图样。