微机原理课程设计-8255控制交通灯(共7篇)
1.微机原理课程设计-8255控制交通灯 篇一
HEFEI UNIVERSITY
微机原理设计报告
题
目 交通信号灯的控制 系
别 电子信息与电气工程系
班 级 11级电子信息工程(2)班 姓
名 钟文俊
学 号 1105012012 指导 老师 丁健
完成 时间 2013年5月28日
交通信号灯控制系统
摘要:本文介绍了以8086微处理器为核心.利用可编程并行接口芯片8255A的软硬件功能,实现对交通灯控制,主要是模拟十字路口的红绿灯,介绍了交通灯控制器的原理以及电路接线。在设计中所用到的编程语言是汇编语言,延时采用的是软件延时(即通过汇编指令)。关键词:8086微处理器;交通灯;8255A
一、课程设计任务
1.1 设计目标
利用ZY15MicInt12BB微机原理及接口实验箱上的8086微处理器模块、并行接口8255A模块,地址译码单元以及0—1LED灯显示等模块,根据所学的微机原理知识,按照实际交通情况设定一种交通灯规则,设计一个简单的交通信号灯控制系统。
1.2 设计要求
在一个十字路口,东西方向和南北方向各有两组交通指示灯,每组有红、黄绿三个灯。东西方向同色灯连在一起,南北方向同色灯连在一起。对各组的交通灯进行控制,以保证车辆在各道上通畅运行。
两组组的交通灯工作过程为:
1.南北方向亮绿灯允许通行,东西方向亮红灯禁止通行 2.当延时25秒后,南北方向的黄灯同时变亮,且延时5秒。3.延时后,东西方向转为绿灯,南北方向转为红灯,且延时25秒。
4.25秒后,转为东西方向黄灯亮,延时5秒后,回到第一步,以次重复进行,不断循环。5.当遇到道路障通,或紧急情况时,A、B道全为红灯。
二、原理说明与硬件设计
2.1原理说明 在本次课程设计当中,采用的是以8086微处理器为核心,以8255A芯片作为接口芯片,运用软件定时(即通过汇编指令)控制LDE灯(即交通灯)按照设定的交通规则显示。
2.2 8086简介
8086微处理器是Intel系列的第三代微处理器,拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器,其主频为5MHz/10MHz,地址总线宽度为20位,可寻址的内存空间打1MB。
8086微处理器的内部功能结构由两个独立的工作部件——执行部件EU(Execution Unit)和总线接口部件BIU(Bus Interface Unit)构成。其中,(1)BIU和EU可以并行工作,提高CPU效率。BIU监视着指令队列。当指令队列中有2个空字节时,就自动把指令取到队列中。(2)EU执行指令时,从指令队列头部取指令,然后执行。如需访问存储器,则EU向BIU发出请求,由BIU访问存储器。(3)在执行转移、调用、返回指令时,需改变队列中的指令,要等新指令装入
队列中后,EU才继续执行指令。8086CPU的内部功能结构框图如图2-1所示。
图2-18086CPU的内部功能结构框图
8086微处理器采用40引脚的DIP封装,其引脚图如图2-2所示。8086 CPU到底可以工作在最大模式或最小模式两种工作模式下,这完全由硬件决定。处于不同工作模式时,其部分引脚的功能是不同的。
图2-2 8086的引脚
(1)两种工作方式下功能相同的引脚
MM/MX:最小/最大模式输入控制信号。引脚用来设置8086 CPU的工作模式。当为高电平(接+5V)时,CPU工作在最小模式;当为低电平(接地)时,CPU工作在最大模式。AD15 ~AD0:地址/数据总线,双向,三态。这是一组采用分时的方法传送地址或数据的复用引脚。根据不同时钟周期的要求,决定当前是传送要访问的存储单元或I/O端口的低16位地址,还是传送16位数据,或是处于高阻状态。
A19/S6~A16/S3:地址/状态信号,输出,三态。这是采用分时的方法传送地址或状态的复用引脚。
BHE(低)/S7:允许总线高8位数据传送/状态信号,输出,三态。为总线高8位数据允许信号,当低电平有效时,表明在高8位数据总线D15 ~D8上传送1个字节的数据。S7为设备的状态信号。
RD,WR:读信号和写信号,输出,三态,低电平有效。
READY:准备就绪信号,输入,高电平有效。READY信号用来实现CPU与存储器或I/O端口之间的时序匹配。
TEST:等待测试控制信号,输入,低电平有效。信号用来支持构成多处理器系统,实现8086 CPU与协处理器之间同步协调的功能,只有当CPU执行WAIT指令时才使用。NMI:非屏蔽中断请求信号,输入,高电平有效。
当NMI引脚上有一个上升沿有效的触发信号时,表明CPU内部或I/O设备提出了非屏蔽的中断请求,CPU会在结束当前所执行的指令后,立即响应中断请求。
RESET:复位信号,输入,高电平有效。
CLK:时钟信号,输入。
VCC,GND:电源输入引脚和接地引脚。8086 CPU采用单一+5V电源供电。(2)CPU工作于最小模式时使用的引脚信号
当MM/MX引脚接高电平时,CPU工作于最小模式。此时,引脚信号24~31的含义及其功能如下。
M/IO:存储器、I/O端口选择控制信号。信号指明当前CPU是选择访问存储器还是访问I/O端口。为高电平时,访问存储器,表示当前要进行CPU与存储器之间的数据传送。为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。
INTR:可屏蔽中断响应信号,输出,低电平有效。CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。
ALE:地址锁存允许信号,输出,高电平有效。CPU利用ALE信号可以把AD15 ~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。DT/R:数据发送/接收信号,输出,三态。DT/信号用来控制数据传送的方向。DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。
DEN:数据允许控制信号,输出,三态,低电平有效。信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。
HOLD:总线保持请求信号,输入,高电平有效。
HLDA:总线保持响应信号,输出,高电平有效。
2.3 8255简介
本次设计灯的亮与灭以及闪烁是用8255的A口和B口控制的,工作在方式0,A口和B口均为输出。并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2-3所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-4所示。
图2-3 8255的内部结构及引脚
图2-4 8255工作方式控制字和C口按位置位/复位控制字格式
三、流程图及电路接线图
1、软件流程图如下:
图3-1软件流程图
2系统汇编源程序
系统采用汇编程序,利用延时子程序实现定时,具体程序如下:
PORT_A EQU
2A0H
;声明8255A口地址 PORT_B EQU
2A1H
;声明8255B口地址 PORT_C EQU
2A2H
;声明8255C口地址
CMD_PORT EQU
2A3H
;声明8255A控制字寄存器端口地址 PORT_CS EQU
2A3H CODE SEGMENT
ASSUME CS:CODE START:
MOV AL,10000001B
;方式控制字:B口为输出
MOV DX,2A3H
OUT DX,AL
;写方式控制字到8255A控制字寄存器端口 SHOW:
NLDH: MOV DX,PORT_B
MOV AL,00101000B
;状态1:南北方向亮绿灯东西方向亮红灯
OUT DX,AL
MOV BL,0
;BL清0 YS1:
CALL DELAY
INC BL
CMP BL,500
JNG YS1
NHDH : MOV DX,PORT_B
MOV AL,00011000B
OUT DX,AL;
MOV BL,0 YS2:
CALL DELAY
INC
BL
CMP BL,100
JNG YS2
NHDL:
MOV DX,PORT_B
MOV AL,01000100B
OUT DX,AL
MOV BL,0 YS3:
CALL DELAY
INC BL
CMP BL,500
JNG YS3
NHDH:
MOV DX,PORT_B
MOV AL,01000010B
OUT DX,AL
MOV BL,0 YS4:
CALL DELAY
INC BL
CMP BL,100
;延时25秒;(BL)++;比较
;(BL)<=500,转移到l1;状态2:南北方向亮黄灯东西方向亮红灯;延时5秒;状态3:南北方向亮红灯东西方向绿灯;延时25秒
;状态4:南北方向亮红灯东西方向黄灯;延时5秒
JNG YS4
JMP SHOW DELAY PROC
;50ms延时子程序
PUSH BX
;保护现场
PUSH CX
MOV BL,5
NEXT: MOV CX,2801
;内循环次数(实现延时10 ms)W10MS: LOOP W10MS
;
DEC BL
;修改外循环计数值
JNZ NEXT
;BX不等于0则进行外循环
POP CX
;恢复现场
POP BX
RET
;退出子程序,返回主程序 DELAY ENDP
;结束过程 CODE ENDS END START
四、总结
通过此次课程设计,结合所学的《微机原理与接口技术》这门课程的知识,对其应用之一——交通灯控制器进行设计与实现。总体感觉收获比较多,因为可以将书本上的知识应用到实践当中。刚开始的时候,翻阅了一些资料,还是没有什么头绪,后来在几个同学的帮助下,经过多次的上机练习和调试终于找到了入口点,接下来的事情就相对的容易一些了。首先,把握整个的设计的大概的流程,然后再对每一个分快进行设计,最后进行调试。在设计的过程中,很重要的一点是要熟悉可编程并行通信接口芯片8255A的初始化及其端口的使用。此次课程设计感觉收获很多,比如,翻阅资料提高了自学能力,和同学一起讨论汲取别人的长处。希望老师能够引导学生应该如何去把握、分析课程设计的主题,找出突破点,让学生积极主动进行课程设计,以使学生更好地提高自学的能力。
参考文献:
[1] 洪永泉.微型计算机原理与接口技术[M].合肥:中科大出版社,2008 [2] 徐泽明.利用微机控制交通指示灯[J] .软件导刊,2007(5)[3] 项新建.微机交通灯控制系统[J].ASPT来源刊,1997(09)
2.微机原理课程设计-8255控制交通灯 篇二
【关键词】逻辑设计;目标定位;教学内容;模式手段
一、微机原理与接口技术课程目标与定位
1.课程目标
(1)知识目标:建立微机系统的整体概念,了解计算机逻辑编程结构及工作原理,理解课程的主要概念、基本原理和技术要点,拓宽计算机应用的领域和范围的思路和概念;掌握80x86处理器指令系统和汇编语言程序设计方法;熟悉微机接口部件的基本原理,掌握运用主要接口部件进行应用设计的方法。
(2)能力目标:具有运用微机软、硬件技术开发应用系统的初步能力;掌握运用主要接口部件进行应用设计的方法;知道这门学科的研究范围、分析框架、研究方法、学科进展和未来方向;提高分析问题、解决问题的思维和实践能力。
(3)素质目标:具有查找、翻译专业外文文献,收集和提炼科研信息的能力;撰写读书报告或综述,并提高学员的主动学习能力和培养其初步的科研能力。培养沟通能力和团结协作能力;建立科研的基本思路和方法;培养对科学工作的严肃态度、富于逻辑性的思维方式和实事求是的科学精神。
2.课程定位
《微机原理与接口技术》课程旨在强化计算机硬件基础,培养硬件设计与应用开发能力,是学生学习和掌握计算机硬件基础知识、汇编语言程序设计及常用接口技术的基础课程。本课程强调理论与实践并重,培养学生分析问题、解决问题的能力。在硬件设计方面,主要培养学生的硬件设计能力,达到能设计接口电路的水平;在应用开发方面,主要培养学生汇编语言程序设计能力,达到能编写接口程序和设备驱动程序的水平。通过课程学习,为学生后续学习《ARM技术应用》、《嵌入式系统设计》、《PROTEL版图设计》、《嵌入式产品制作实践》等专业课程奠定坚实的基础。
二、微机原理与接口技术课程教学内容
1.教学内容选取依据
《微机原理与接口技术》是我校计算机应用技术专业学生必修的一门重要的专业基础课,通过学习和掌握计算机硬件基础知识、汇编语言程序设计及常用接口技术,提高学员微型计算机应用与开发能力。课程的任务是使学生从理论和实践上掌握现代微型计算机的基本组成、工作原理及典型接口技术,建立微机系统的整体概念,具有运用现代微机技术进行软、硬件系统开发的能力。
2.教学具体内容安排
微机系统基本知识,MPU的功能结构与工作模式,存储器技术,8086 CPU指令系统,汇编语言程序设计,输入输出接口技术,常用可编程接口芯片知识,微机总线技术,人机交互设备及接口,微机应用系统。
三、微机原理与接口技术课程教学模式与手段
1.教材编写的原则
(1)高质量原则。课程主要教材应选用近三年国家推荐使用的新版优秀教材或规划教材。教材的章节和内容要编排合理,重点突出,详略得当,应方便学生学习、阅读和理解。
(2)实用性原则。教材的内容要突出实用性,应具有丰富的实例,章节内应该有配套的练习题。
(3)系统性原则。教材应注重本课程内容的系统性、连贯性和衔接性。
(4)先进性原则。教材内容中应包含体现本学科发展的一些前沿领域和知识。
(5)根据学生的基础确定教学与教材内容的原则。
2.教学模式
在《微机原理与接口技术》的教学中,采用“项目驱动”的教学模式。建设知识点和实验的项目库,结合项目库中的项目讲解课程的重点、难点,提高学生的专业技能。
另外,通过“项目驱动”的方式,驱动学生的主动学习、自主学习,让学生在项目实现过程中学习项目开发的规范,体验团队协作过程,积累项目开发的经验,不断提高实践和创新能力,支撑课赛结合的创新实践能力培养。
3.教学方法
本课程教学中应注意理论与实践的结合,加强课前、课后的答疑辅导,注意学生应用能力的培养,使学员通过对微机工作原理、汇编语言程序设计及接口技术的理解,树立微机系统的整体观念,进而掌握运用现代微机技术进行软、硬件系统开发的初步能力。
(1)以学员为主体,注重启发和引导式教学
本门课程的基本理论具有较强的逻辑性,且相互之间具有较强的联系,因此课堂教学中要以学生为主体开展启发和引导式教学,鼓励学生主动学习、主动思考和主动构建知识结构。同时在课堂上倡导以问题为中心的教学方式,侧重应用实例的讲解,加强教学互动,提升学生的学习兴趣和积极性。
(2)优化实验内容,开展任务驱动型的实验教学模式
本着培养和提高学员应用能力的原则,在本课程的实验教学中应通过循序渐进的实验内容安排,不断对他们提出更高要求,避免学生在实验中“浅尝辄止”。同时实验教学要符合本课程的知识体系结构要求;符合学生的技能训练目标;兼顾学生学习兴趣和保证实验效果。
(3)开展第二课堂
让学有余力、学习兴趣大、应用能力较强的学生参与课外课程学习活动,也可以让学员参与部分初步的科学探讨工作。指导教师介绍他们阅读相关的专业文献或翻译英语专业文献。在整个课外指导过程中,要注意培养学员的科研思维、方法、能力和创新意识。
4.教学手段
(1)充分利用多媒体教学条件
通过教师生动的表达和对课堂的整体把握,再结合多媒体直观的展示,使得课堂教学内容更加丰富,更有利于调动学生的积极性,进一步提高了教学效果。
(2)充分发挥网络教学优势
利用学校良好的网络环境,通过课程网站提供的教学大纲、考试大纲、实验大纲、电子教案、教学视频、习题作业等教学资源,方便学生自主学习。
(3)不断提高课件制作水平
结合新的教育理念,采用先进的课件制作技术,发挥多种制作工具的优势,提高课件的信息量和互动性,提高学生的学习积极性和学习效果。
5.课程资源的开发与利用的计划和建议
(1)加强《微机原理与接口技术》课程的网络资源和素材库的建设。素材库分为图片库、文本库、视频库、动画库和音频库等。
(2)准备开设个性化的网上教学资源库或教学网站,展示自己制作的教学资源、教学课件等。也可以鼓励学习兴趣大、学有余力的学生参与教学课件的制作。
参考文献
[1]俞仲文,刘守义,朱方来.高等职业技术教育实践教学研究[M].北京:清华大学出版社,2004,5.
[2]姜大源.工学结合职业教育课程开发的实践与理论.
3.微机原理课程设计 篇三
课程设计
课
程:微机原理与接口技术设计
专业班级:计算机科学与技术班
学
号:2
姓
名:
一、设计题目及要求:
利用 8259A中断,实现对8253多种计数初值的设定: 1.在中断服务程序中设定8253的计数初值。
2.开关K1用于设定0.5秒方波的计数初值,K2用于设定1秒方波的计数初值,K3用于设定2秒方波的计数初值。
3.用8253的输出信号,控制一个发光二极管,以演示修改效果。
二、设计思想:
整体设计:
①利用8259A芯片设定IR1、IR2、IR3三个中断,分别用三个开关的高低电平触发中断。
②在三个终端的中断服务子程序里面为8253芯片通道0设定不同频率的方波计数初值,使得在触发不同中断时8253芯片产生周期为0.5秒、1,秒、2秒的方波。③将8253的输出端口与发光二极管连接,通过二极管的亮灭显示出8253内部方波的频率。
部分设计:
①8253芯片方式3初值确定:根据分频电路T(n)=T/2*公式以及0.5s、1s、2s方波的频率计算出初值分别为2580H、4B00H、9600H。
②8253芯片和8259芯片的片选方法:设定8259A和8253芯片的端口号分别为0FFE0H、0FFE1H,以及0FFFCH—0FFFFH,使得在连接138译码器时,A连A2,B连A3,C连A4,T0连接8259A芯片的CS端,T7连接8253芯片的CS端。
③8259A中断向量表写入以及芯片初始化:根据8259A各个中断在中断向量表中的地址,将IR0、IR1、IR2的中断服务程序入口地址写入向量表中;ICW4设定除中断0、1、2外其他位屏蔽。
④手动设置中断结束:为了不影响各个中断之间的交替响应,在每个中断服务程序结束之前写入中断结束方式,将20H输出到8259端口,将当前中断结束响应后再响应下一个中断。
三、功能流程图:
四、结果讨论:
附录:实验代码:(完整的源程序)
CODE
SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3400H Port0
EQU 0FFE0H
;8259芯片的端口号 Port1
EQU 0FFE1H START:
CALL F8259 P0:
CLI
MOV AX,OFFSET INT0
MOV BX,0020H
MOV [BX],AX
MOV BX,0022H
MOV AX,0000H
MOV [BX],AX
STI
P1:
CLI
MOV AX,OFFSET INT1
MOV BX,0024H
MOV [BX],AX
MOV BX,0026H
MOV AX,0000H
MOV [BX],AX
;CALL F8259
STI
P2:
CLI
MOV AX,OFFSET INT2
MOV BX,0028H
MOV [BX],AX
MOV BX,002AH
MOV AX,0000H
MOV [BX],AX
;CALL F8259
STI P:
JMP P;-----F8259: MOV AL,1BH
;8259的初始化00011011 icw1
MOV DX,Port0
OUT DX,AL
MOV AL,08H
;00001000 icw2
MOV DX,Port1
OUT DX,AL
MOV AL,01H
;00000001 icw4
OUT DX,AL
MOV AL,00H
;屏蔽只留IR0,IR1,IR2。OCW1
OUT DX,AL
RET;---------------------------INT0:
CLI
CALL FB0
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
INT1:
CLI
CALL FB1
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
INT2:
CLI
CALL FB2
STI
MOV DX,Port0
MOV AL,20H
OUT DX,AL
IRET
FB0:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,80H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,25H
OUT DX,AL
RET
FB1:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,00H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,4bH
OUT DX,AL
RET
FB2:
MOV DX,0FFFFH
MOV AL,00110110B
OUT DX,AL
MOV AL,00H
MOV DX,0FFFCH
OUT DX,AL
MOV AL,96H
OUT DX,AL
RET
;--------------------------DONE: CODE
ENDS
4.微机原理课程设计(电子时钟) 篇四
一:设计背景
电子数字钟的应用十分广泛,通过计时精度很高的石英晶振(也可采用卫星传递的时钟标准信号),采用相应进制的计数器,转化为二进制数,经过译码和显示电路准确地将时间“时”“分”“秒”用数字的方式显示出来。与传统的机械钟相比,它具有走时准确,显示直观,无机械传动,无需人的经常调整等优点。它广泛用于电子表、车站、码头、广场等公共场所的大型远距离时间显示电子钟。
二:数字钟电路设计思路
1.选用8253计数器2进行1s的定时,其输出OUT1与8259的IRQ0相连,当定时到1s时产生一个中断服务程序进行时、分、秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接数码管的段选信号。时、分、秒的数值通过对8255的编程可送到七段数码管上显示。2.此程序主要由四部分组成:
第一部分为最主要的部分定义显示界面;
第二部分为利用延时程序,并将调用的二进制表示的时间数转换成ASCII码,并将时间数存入内存区;
第三部分将存在系统内存区的时间数用七段数码管显示出来; 第四部分利用循环程序分别对秒个位、秒十位、分个位、分十位与相应的规定值进行比较,结合延时程序来实现电子钟数字的跳变,从而形成走时准确的电子钟。
该程序实现了准确显示秒和分,读数准确,走时精准。此电子钟能准确的从0时0分0秒走时到23时59分59秒,然后能自动回复到0时0分0秒循环走时。
3.基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。以8086微处理器作CPU,用8253做定时器产生时钟频率提供一个频率为10kHz的时钟信号,要求每隔10ms完成一次扫描键盘的工作。在写入控制字与计数初值后,每到10ms定时器就启动工作,即当计数器减到1时,输出端OUT0输出一个CLK周期的低电平,向CPU申请中断,当达到100次时,则输出端OUT1输出1s,向CPU申请中断,由8255控制一个数码管显示,当计数到60s时,则输出端OUT2向CPU申请中断,由另一数码管显示1min,同理由数码管显示1h.CPU处理,使数码管的显示发生变化。
电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。最大记时23:59:59超过这个时间时分秒位都清零从00:00:00重新开始。8253芯片介绍
8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制 字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数 器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
8255芯片介绍 8255特性:
①一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.②具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I /O3种模式;B组只能设置为基本I/O或闪控式I/O两种模
8255芯片
8253芯片
式,而这些操作模式完全由控制寄存器的控制字决定.8255引脚功能:
RESET:复位输入线 , CS:芯片选择信号线 , RD:读信号线 , WR:写入信号 , D0~D7:三态双向数据总线 ,PA0~PA7:端口A输入输出线 ,PB0~PB7:端口B输入输出线, PC0~PC7:端口C输入输出线, A0,A1:地址选择线 三:程序流程图
三、电
子
表
原
理
图
:
四:程序代码
D8279 equ 200H C8279 equ 202H C8253 equ 20bH D82530 equ 208H D82531 equ 209H C82590 equ 210H
C82591 equ 211H data segment HOUR
db 00 MINUTE
db 00 SECOND
db 008 STAT
db 00 LED
db 31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00H DISBUF db 8 dup(0)data ends stack segment stack
dw 100 dup(?)stack ends code segment
assume cs:code,ds:data START:
MOV AX,DATA
MOV DS,AX
CLI
MOV AL,13H
MOV DX,C82590
OUT DX,AL
MOV AL,8
MOV DX,C82591
OUT DX,AL
MOV AL,1
OUT DX,AL
MOV AX,0
MOV ES,AX
LEA AX,INT0
MOV AX,CS
MOV ES:[4*8+2],AX
MOV DX,C8253
MOV AL,36H
OUT DX,AL
MOV DX,D82530
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,C8253
MOV AL,36H
OUT DX,AL
MOV DX,D82531
MOV AX,100
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,C8279
MOV AL,00H
OUT DX,AL
MOV AL,34H
OUT DX,AL
MOV AL,0D2H
OUT DX,AL
MOV STAT,0
MOV DX,C82591
MOV AL,0FEH
OUT DX,AL
WAIT1:
MOV DX,C8279
IN AL,DX
MOV AH,AL
AND AL,80H
JNE WAIT1
MOV AL,AH
AND AL,0FH
CMP AL,00H
JE WAIT1
MOV AL,40H
OUT DX,AL CHK: MOV DX,D8279
IN AL,DX
CMP AL,33H
JNE BBB
MOV DX,C82591
MOV AL,0FFH
OUT DX,AL
MOV AL,STAT
INC AL
MOV STAT,AL
CMP AL,1
JNZ AA1
MOV SI,OFFSET DISPBUF
MOV CX,4
MOV AL,00 BB0: MOV [SI],AL
INC SI
LOOP BB0
CALL DISP
JMP CHK AA1: CMP AL,2
JNZ AA2
MOV SI,OFFSET DISPBUF
MOV AL,00
MOV [SI],AL
INC SI
MOV [SI],AL
ADD SI,2
MOV [SI],AL
INC SI
MOV [SI],AL
CALL DISP
JMP CHK AA2: CMP AL,3
JNZ AA3
MOV SI,OFFSET DISPBUF+2
MOV CX,4
MOV AL,00 BB1: MOV [SI],AL
INC SI
LOOP BB1
CALL DISP
JMP CHK AA3: MOV STAT,00
MOV AL,0FEH
MOV DX,C82591
OUT DX,AL
CALL FULLSFM
CALL DISP
JMP CHK BBB: CMP AL,3BH
JE BBB0
JMP CCC BB0: MOV AL,STAT
CMP AL,1
JNZ BBB1
MOV AL,HOUR
ADD AL,1
DAA
MOV HOUR,AL
CALL FULLSH1
CALL DISP
JMP BBB BBB1: MOV AL,STAT
CMP AL,2
JNZ BBB3
MOV AL,MINUTE
ADD AL,1
DAA
MOV MINUTE,AL
CALL FULLFEN
CALL DISP
JMP BBB BBB3:
MOV AL,STAT
CMP AL,3
JZ
BBB4
JMP
DDD BBB4:
MOV AL,SECOND
ADD AL,1
DAA
MOV SECOND,AL
CALL FULLMIAO
CALL DISP
JMP BBB
CCC:
CMP AL,3AH
JE CC0
JMP DDD CC0:
MOV AL,STAT
CMP AL,1
JNZ CCC1
MOV AL,HOUR
SUB AL,1
DAS
MOV AL,HOUR
SUB AL,1
ADD AL,1
DAA
MOV SECOND,AL
CMP AL,60H
JNZ FANHUI
MOV SECOND,0
MOV AL,MINUTE
ADD AL,1
DAA
MOV MINUTE,AL
CMP AL,60H
JNZ FANHUI
MOV MINUTE,0
MOV AL,HOUR
ADD AL,1
DAA
MOV HOUR,AL
CMP AL,24H
JNZ FANHUI
MOV HOUR,0
CALL FULLSFM
CALL DISP
POP SI
POP DI
POP BX
POP AX
IRET FULL
SFM PROC NEAR
LEA DI,DISBUF
LEA BX,LED
LEA SI,SECOND
MOV CX,3 AA4:
MOV AL,[SI]
AND AL,0FH
XLAT
MOV [DI],AL
INC DI
MOV AL,[SI]
PUSH CX
MOV CL,4
SHR AL,CL
AND AL,0FH
XLAT
MOV [DI],AL
INC DI
POP CX
INC SI
LOOP AA4
RET FULL
SFM ENDP FULL
SHI PROC NEAR
LEA SI,DISBUF
MOV AL,0
MOV CX,4 CCC0:
MOV [SI],AL
INC SI
LOOP CCC0
LEA BX,LED
MOV AL,HOUR
AND AL,0FH
XLAT
MOV [SI],AL
XLAT
MOV [SI],AL
MOV AL,HOUR
MOV CL,4
SHR
AL,CL
AND AL,0FH
XLAT
INC
SI
MOV
[SI],AL
RET FULL
SHI ENDP FULL
FEN PROC NEAR
LEA SI,DISBUF
MOV AL,0
MOV [SI],AL
INC SI
MOV [SI],AL
INC SI
LEA BX,LED
MOV
AL,MINUTE
AND AL,0FH
XLAT
MOV
[SI],AL
MOV AL,MINUTE
MOV
CL,4
SHR AL,CL
AND AL,0FH
XLAT
INC SI
MOV
[SI],AL
RET FULL
FEN ENDP FULL
MIAO PROC NEAR
LEA SI,DISBUF
LEA BX,LED
MOV AL,SECOND
AND AL,0FH
XLAT
MOV [SI],AL
MOV AL,SECOND
MOV CL,4
SHR AL,CL
AND AL,0FH
XLAT
INC SI
MOV [SI],AL
MOV AL,0
INC SI
MOV [SI],AL
INC SI
MOV [SI],AL
INC SI
MOV [SI],AL
INC SI
MOV [SI],AL
RET FULL MIAO ENDP DISP
PROC NEAR
MOV CX,8
MOV DX,D8279
LEA SI,DISBUF DISI
MOV AL,[SI]
OUT DX,AL
INC SI
LOOP DISI
RET CODE ENDS
5.微机原理课程设计题目与要求 篇五
一、设计内容
1、打开电源后,先设定水温,水温分为八档(30oC~100oC,每10 oC为一档)。
2、按下启动键后,开始测量水温并采用数码管显示,控制电热管加热。
3、上下限水位报警(声光报警)。
4、提倡创新。
二、设计任务
1、选用8086CPU和适当的存储器芯片、接口芯片完成相应的功能。
2、画出详细的硬件连接图。
3、画出各程序的详细框图。
4、给出RAM地址分配表及接口电路的端口地址。
5、给出设计思路。
6、给出程序所有清单并加上必要的注释。
7、完成设计说明书。(列出参考文献,所用器件型号)
电压采集电路设计
一、设计内容
利用《微型计算机原理》课程中所学的主要可编程接口芯片74LS138、8253、8255A、ADC0809和中断控制器8259设计一个模拟电压采集电路。采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量送至数码管LED指示,采集完100个数据后停止采集过程。
二、设计任务
1、选用8086CPU和适当的存储器芯片、接口芯片完成相应的功能。
2、画出详细的硬件连接图。
3、画出各程序的详细框图。
4、给出RAM地址分配表及接口电路的端口地址。
5、给出设计思路。
6、给出程序所有清单并加上必要的注释。
7、完成设计说明书。(列出参考文献,所用器件型号)
多功能密码锁
一、设计内容
密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同
显示00字样。当输入密码错误时,发出错误警告声音,同时显示FF字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。
二、设计任务
1、选用8086和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
7、完成设计说明书(列出参考文献,所用器件型号)。
汽车倒车测距仪
一、设计内容
1、设计一个微机控制的汽车倒车测距仪,能测量并显示车辆后部障碍物离车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近;
① 开机后先显示“———”,并有开机指示灯。
② CPU发射超声波1ms,然后显示60ms;即1ms+60ms为一个工作周期,等待回波,在次周期内完成一次探测。
③ 根据距离远近发出报警声并显示距离。障碍物距离小于1m,距离值变化5cm更换显示,否则不更换;距离在1m以上,新值与原显示值之差大于10cm更换,否则不更换。④ 用三LED位数码管显示障碍物距离
2、硬件电路原理图和软件框图; 编写控制程序,写出设计任务书(总结报告)。
二、设计任务
1、选用8086和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
6.微机原理及应用 电子琴课程设计 篇六
设计名称: 设计模拟电子琴 模拟 指导老师: 指导老师:-----设计者姓名:-----专业班级:自动化 学 号:----------设计时间: 2012.6
摘 要:本文通过 8255 和 8253 来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。输入部分:主要是由 8255 和 8 个常开型开关来完成。发音部分:CUP 通过对定时器 8253 的通道 2 进行编程,使其 I/O 寄存器接收一 个控制声音频率的 16 位计数值,端口 61H 的最低位控制通道 2 门控的开断,以 产生特殊的音响。本文用到的是 8253 的方式 3——方波发生器。关键词: 关键词:8253 定时器;8255;电子琴
1.引言
引言 :8253 芯片是常用的可编程计数器,在微机中有着极其重要的作用。常用于事件计数器,单稳态触发器,分频器,方波发生器,硬件触发的单脉冲发生器 等。计数器/定时器 8253 包括 3 个独立的 16 位计数器通道,而每个计数器都有 6 种工作方式,可以按二进制或十进制(BCD 码)进行计数。本文用到的是 8253 的方式 3——方波发生器来实现了简易电子琴的设计。
2.1 8253 简介
8253 为可编程定时/计数器,一片 8253 上有 3 个独立的 16 位计数器通道,可以作为定时器或计数器使用,每个计数器都可设定为按照二进制或 BCD 码进行 计数,计数速率可达 2MHZ,每个计数器有 6 种工作方式,可编程设置和改变。
如下图为 8253 的内部结构图。在图中可以清楚地看到,8253 主要是由数据总线 缓冲存储器,读写控制电路,控制字寄存器和 3 个通道 4 部分所组成。
8253 内部结构【1】(如图 1 所示)及外部引脚【1】(如图 2 所示)
图 1:8253 内部结构图
图 2:8253 引脚图
8253 的控制字和编程【1】 如图 3 所示
图 3:8253 控制字 2.8253 的工作方式 3——方波发生器【1】
方式 3 的波形如图 4 所示,它的特点是:
(1)输出为周期性的方波。若计数值为 N,则输出方波的周期是 N 个 CLK 脉冲 的宽度。
(2)写入控制字后,输出将变为高电平,当写入计数初值后,就开始计数,输 出仍为高电平; 当计数到初值的一半时,输出变为低电平,直至计数到 0,输出又变为高电平,重新开始计数。
(3)
若计数值为偶数,则输出对称方波;如果计数值为奇数,则前(N+1)/2 个 CLK 脉冲期间输出为高电平,后(N-1)/2 个 CLK 脉冲期间输出为低电平。
(4)
GATE 信号能使计数过程重新开始,GATE=1 允许计数,GATE=0 禁止计数。停止后 OUT 将立即变高电平,当 GATE 再次变高以后,计数器将自动装入 计数初值,重新开始计数。
图 4:8253 工作方式 3 波形
3.8255 的简介【2】
8255 是一个 40 引脚的双列直插式集成电路芯片。按功能可把 8255 分为三 个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。8255 共有三个 8 位口,其中 A 口和 B 口是单纯的数据口,供数据 I/O 使用。而 C 口则既可以作数 据口,又可以作控制口使用,用于实现 A 口和 B 口的控制功能。总线接口电路用 于实现 8255 和单片微机的信号连接。其中包括:数据总线缓冲器,读/写控制逻 辑,控制逻辑电路。
内
部的结
构
如
图
所
示
图 5:8255 结构图
8255A 的方式控制字如图 6 所示
图 6:8255A 的方式控制字
4.用 8235 和 8255 设计简易电子琴
设计任务与要求 以 K1-K8 接 8255 的 A 口做为电子琴的键盘分别输入静音、do、re、mi、fa、sol、la、si 的音,以 8255 的 B 口作为输出。用 8253 定时器产生频率 控制扬声器发生。1.以 8255 接八个开关 K1-K8,做电子琴按键输入。2.以 8253 控制扬声器,发出相应的音阶。要求: K1—静音 K2—发 si 的音 493Hz K3—发 la 的音 440Hz K4—发 sol 的音 392Hz K5—发 fa 的音 349Hz K6—发 mi 的音 329Hz K7—发 re 的音 293Hz K8—发 do 的音 261Hz
设计原理【3】:通过 8255 和 8253 来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。
输入部分:主要是由 8255 和 8 个常开型开关来完成。
发音部分:CUP 通过对定时器的通道 2 进行编程,使其 I/O 寄存器接收一个 控制声音频率的 16 位计数值,端口 61H 的最低位控制通道 2 门控的开断,以产 生特殊的音响。当定时器接收的计数值为 533H 时,能产生 896Hz 的声音,因此产生其他频率的计数值就可由下式计算
计数值=533H*896/f=1234DCH/f
当通道 2 用于发声时,采用的是模式 3,在模式 3 下,输出线为“1”和为“0” 的时间各占计数时间的一半,因而产生一系列间隔均匀的脉冲。从定时器输出的方波信号,经功率放大和滤波后驱动扬声器。送到扬声器的信号 还受到了从并行接口芯片 8255(端口地址为 61H)来的双重控制,端口 61H 的最 低位控制通道 2 的门控开断,以产生特殊的音频信号,端口 61H 的 PB1 位和定时 器的输出信号同时作为与门的输入,PB0 和 PB1 位可由程序决定为 0 还是为 1。显然只有 PB0 和 PB1 都是 1 时,才能使扬声器发出声音。控制音长的时间可以简 单地通过反复执行指令来得到。执行 2801 次 LOOP 指令约需要 10MS 的时间。因 此用 10MS 的倍数值来控制扬声器开关的时间间隔,就可控制发声的音长了。(1)程序流程图(2)程序流
程
图
如
图
所
示
:
图 7:流程图
(2)程序清单
发音部分程序源代码如下
把计数值送 8253 前,必须先把 8253 进行初始化,使其选用通道 2,工作在 方式 3 下。MOV AL,0B6H
OUT 43H,AL
;43H 为 8253 的控制字端口
计算计数初值,计数值送到 8253,用以产生需要的发音频率利用定时器发 声。这里是通过硬件即 8253 定时器产生声音。CUP 通过对定时器的通道 2 进行 编程,使其 I/O 寄存器接收一个控制声音频率的 16 位计数值,端口 61H 的最低 位控制通道 2 门控的开断,以产生特殊的音响。当定时器接收的计数值为 533H 时,能产生 896Hz 的声音,因此产生其他频率的计数值就可由下式计算: 计数值=533H*896/f=1234DCH/f MOV DX,12H MOV AX,348CH
DIV DI
;(DI)=频率
OUT 42H,AL
;42H为8253的通道2端口 MOV AL,AH OUT 42H,AL
送到扬声器的信号还受到了从并行接口芯片 8255(端口地址为 61H)来的双 重控制,端口 61H 的最低位控制通道 2 的门控开断,以产生特殊的音频信号,端 口 61H 的 PB1 位和定时器的输出信号同时作为与门的输入,PB0 和 PB1 位可由程 序决定为 0 还是为 1。显然只有 PB0 和 PB1 都是 1 时,才能使扬声器发出声音。
IN AL,61H MOV AH,AL OR AL,3
OUT 61H,AL ;开扬声器 ;
控制音长的时间可以简单地通过反复执行指令来得到。我们知道执行 2801 次
LOOP 指令约需要 10MS 的时间。因此用 10MS 的倍数值来控制扬声器开关的时间 间隔,就可控制发声的音长了。LOOP1: MOV CX,2801
;发音时间 10ms JMP LOOP2 LOOP2: PUSH AX LOOP3: IN AL,61H AND AL,10H CMP AL,AH JE LOOP3 MOV AH,AL LOOP LOOP3 POP AX
DELAY: LOOP DELAY
;延时 DEC BX JNZ LOOP1 输出 61 端口的值
MOV AL,AH OUT 61H,AL
5.结论
结论:
7.微机原理单片机课程设计报告 篇七
二、课程设计的要求
1、遵循硬件设计模块化。
2、要求程序设计结构化。
3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。
4、要求程序结构合理,语句使用得当。
5、适当追求编程技巧和程序运行效率。
三、主要仪器设备及软件
PC机、Keil软件、Proteus绘图软件及仿真等。
四、课程设计题目及要求
题目:步进电机的单步正转反转以及加速正反转
要求:通过四个按键分别控制步进电机的单步正向.单步反向转动以及快速正向转动和快速反向转动。
五、课题分析及设计思路
硬软件设计思路:
本步进电机控制系统通过四个键盘来控制步进电机的单步正转、单步反转、快速正转和快速反转,步进电机旋转的角度取决于键盘接通时间长短,接通时间越长,旋转角度越大,其功能表如表1.2.1。
表1.2.1键盘功能表
总体方案设计:在该步进电机控制系统中,需要接收键盘信息并识别,然后将数据传送给步进电机使步进电机旋转,采用了一片74LS138,1硬件设计框图 ○
2硬件设计电路图:
○
3XXXX流程图如下: ○
六、程序主要代码与分析:DATASEGMENT;数据段
SRDB01H,03H,02H,06H,04H,0CH,08H,09H;电机激磁信号
X1DB0;控制电机正转X2DB7;控制电机反转DATAENDS
CODESSEGMENT;代码段
ASSUMECS:CODES,DS:DATA
START:MOVAX,DATA;初始化数据段MOVDS,AX
LEASI,SR;SI指向SR首地址
MOVBH,0;清除BX高四位,用于指向电机激磁信号MOVSI,0;SI清零S1:INAL,40H;读按键状态
CMPAL,0FH;检测按键是否被按下
JES1;无按键按下,继续读按键状态MOVCX,64H;LOOP$
INAL,40H;CMPAL,0FH;JES1;CALLS2;JMPS1;
S2PROC
TESTAL,01H;JES3;TESTAL,02H;JES
4TESTAL,04H;JES
5TESTAL,08H;JES6
RET;S2ENDP
S3PROC;PUSHAX;PUSHBX
S7:INAL,40H;TESTAL,01H;JES7;MOVBL,X1;BLMOVAL,[BX+SI];BX+SIOUT48H,AL;CMPX1,07;JES8;INCX1;X1JMPS9;NOP;S8:MOVX1,00H;X1有按键按下,延时去抖动 读按键状态
检测按键是否被按下
无按键按下,继续读按键状态 判断几号按键按下,处理相应状态 继续读取按键状态 测试是否是一号按键按下 若一号键按下则跳转s3 测试是否是二号按键按下 测试是否是三号按键按下 测试是否是四号按键按下 子程序返回 单步正转子程序 寄存器入栈 读按键状态 仍被按下 则等待松手
等于X1指向的激磁单元
指向的地址单元内容送给AL 送电机转动
判断X1是否加到7 是则清零X
1指向下一个激磁信号 跳转到程序返回 延时一个机器周期
从新指向第一个单元
POPAXRETS3ENDP
S4PROC;单步反转子程序PUSHAXPUSHBXS10:INAL,40HTESTAL,02HJES10MOVBL,X
2MOVAL,[BX+SI]OUT48H,ALCMPX2,00HJES11DECX2JMPS12NOP
S11:MOVX2,07S12:POPBXPOPAXRETS4ENDP
S5PROC;PUSHAX;PUSHBX
MOVBL,X1;BLMOVAL,[BX+SI];BX+SINOP
OUT48H,AL;CMPX1,07;JES13;INCX1;X1JMPS14;NOP
S13:MOVX1,00;X1S14:POPBXPOPAX
RET;S5ENDP
S6PROC;快速正转子程序 寄存器入栈 等于X1指向的激磁单元
指向的地址单元内容送给AL 送电机转动
判断X1是否加到7 是则清零X1
指向下一个激磁信号 跳转到程序返回 从新指向第一个单元 子程序返回 快速反转子程序
PUSHBXMOVBL,X2
MOVAL,[BX+SI]OUT48H,ALNOP
CMPX2,00HJES15DECX2JMPS16NOP
S15:MOVX2,07HS16:POPBXPOPAXRETS6ENDP
CODESENDS
ENDSTART
七、实验结果截图
八、心得体会
这次试验之前是用C语言编写的,按下按键后,它实现的效果是单步正向和单步反向
【微机原理课程设计-8255控制交通灯】推荐阅读:
微机原理公开课10-07
微机原理考试题目类型10-04
微机原理考试试题及答案07-01
微机原理课件教学计划变更情况说明09-25
微机原理考试试题3套及答案10-22
微机原理与接口技术考试试题与答案07-29
微机控制系统与应用10-07
数字通信原理课程设计08-23
广工物联网自动控制原理实验报告10-17