利用8255A芯片实现流水灯闪烁设计
- 格式:doc
- 大小:644.00 KB
- 文档页数:22
成绩实验名称:单片机系统简单扩展实验
一、实验目的
1、了解单片机系统的扩展方法
2、熟悉8255A在单片机系统扩中的使用方法。
3、熟悉仿真软件Proteus以及编程软件Keil的使用。
二、实验仪器
三、实验内容
四、实验原理
实验报告
五、实验步骤
步骤:
1、根据给定的实验要求,分析实验的目的以及实验要求。
2、通过计算机仿真软件Proteus,根据实验目的设计电路,并且绘制电路原理图。
3、根据自己设计的电路,编写控制程序。
4、调试所编写的控制程序,直至程序没有语法及语意错误,可以通过编译。
5、将所编写的无错误的程序下载至仿真软件,并进行调试,根据仿真结果修改程序。
6、重复上一步骤,知道仿真效果达到实验要求,即可完成。
六、实验程序
#include <reg51.h>
#include<absacc.h>。
《微机系统与接口技术》预习报告学院:计算机学院专业:网络工程班级学号:学生姓名:小发实验日期:指导老师:成绩评定:五邑大学计算机学院制表一,实验目的1,学习并掌握8255 的工作方式及其应用。
2,掌握 8255 典型应用电路的接法。
3,掌握程序固化及脱机运行程序的方法。
二,实验设备PC机器一台,TD-PITE实验装置或TD-PITC实验装置一套三,实验内容1,基本输入输出实验。
编写程序,使 8255 的 A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2,流水灯显示实验。
编写程序,使 8255 的 A 口和 B 口均为输出,数据灯 D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与 D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
四实验内容及步骤1. 基本输入输出实验本实验使 8255 端口 A 工作在方式 0 并作为输入口,端口 B 工作在方式 0 并作为输出口。
实验接线图如图 6 所示,按图连接实验线路图。
用一组开关信号接入端口 A,端口 B 输出线接至一组数据灯上,然后通过对 8255 芯片编程来实现输入输出功能。
具体步骤如下述:(1)实验接线图如图 1-4所示,按图连接实验线路图。
(2)编写实验程序,经编译、连接无误后装入系统。
(3)运行程序,改变拨动开关,同时观察 LED 显示,验证程序功能。
(4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。
(5)将短路跳线 JDBG 的短路块短接到 RUN 端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。
(6)实验完毕后,请将短路跳线 JDBG 的短路块短接到 DBG 端。
图1-4 8255基本输入输出实验接线图实验程序清单(A82551.ASM)SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1: MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY: PUSH CXMOV CX, 0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODE ENDSEND START流水灯显示实验:使 8255 的 A 口和 B 口均为输出,数据灯 D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与 D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
电子信息工程系实验报告课程名称:微机原理与接口技术实验项目名称:8255并行接口流水灯实验 实验时间:2009.12班级: 姓名: 学号:一、实 验 目 的:(1)掌握8255的工作方式及应用编程。
(2)掌握8255的典型应用电路接法。
二、实 验 设备:PC 机一台,实验箱及外部线路一套。
三、实验内容:编写程序,使8255的A 口作为LED 灯的输出,实现8位数据灯的相对循环显示。
(思考:用B 口的一位作为输入,控制LED 灯的循环方向。
)四、实 验 原理:INTEL8255是一种通用的可编程并行I /O 接口芯片,是专为INTEL 公司的微处理器设计的,也可用于其它系列的微型机系统中。
利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。
8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。
可与外设并行进行数据交换。
A 口和B 口内具有中断控制逻辑,在外设与CPU 之间可用中断方式进行信息交换。
8255能与许多外部设备连接,例如:键盘、显示器、打印机等。
1、8255芯片特性(1)一个并行输入/输出的LSI 芯片,多功能的I/O 器件,可作为CPU 总线与外围的接口.(2)具有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种模式。
2、8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU 进行通讯;/CS=1时,8255无法与CPU 做数据传输.RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU 发送数据或状态信息,即CPU 从8255读取信息或数据。
西安郵電學院硬件课程设计报告题目:微机原理与接口课程设计;^院系名称:计算机学院专业名称:软件工程班级:软件0802学生姓名:王晶晶学号(8位): 04085047指导教师:刘军设计起止时间:2011年05月23日~2011年05月27日[一、设计目的通过可编程并行接口芯片8255A和可编程定时器/计数器芯片8253/8254以及中断控制器 8259实现十字路口交通灯的模拟控制,进一步掌握并行接口和定时器/计数器及数码管控制的实际应用。
二、设计内容1.用试验台提供的发光二极管(红绿黄各两支,共六支)作为南北路口(红绿黄各一支)和东西路口(红绿黄各一支)的模拟交通灯。
2.用可编程并行接口芯片8255A控制模拟交通灯的亮与灭和数码管的倒计时显示。
3.用可编程定时器/计数器芯片8253实现模拟交通灯亮与灭的时间延迟控制。
4.用数码管作为模拟交通灯亮与灭的时间延迟控制的倒计时显示。
'5.用汇编语言编程使六个灯按交通灯变化规律“亮/灭”。
交通灯变化规律要求:① 南北路口的绿灯,东西路口的红灯同时亮30秒,且数码管30秒倒计时显示。
② 南北路口的黄灯闪烁3秒(三亮三灭),同时东西路口的红灯继续亮,且数码管3秒倒计时显示。
③ 南北路口的红灯,东西路口的绿灯同时亮20秒,且数码管20秒倒计时显示。
④ 南北路口的红灯继续亮,同时东西路口的黄灯闪烁3秒(三亮三灭),且数码管3秒倒计时显示。
⑤ 转①重复⑥按压“东西紧急键”,则东西方向绿灯,南北方向红灯;再次按压“东西紧急键”,解除东西紧急通行状态。
(“东西紧急键”可是键盘键,亦可是逻辑开关键)⑦按压“南北紧急键”,则南北方向绿灯,东西方向红灯;再次按压“南北紧急键”,解除南北紧急通行状态。
(“南北紧急键”可是键盘键,亦可是逻辑开关键)"⑧按 <ESC>键退出程序。
备注:1、按键用 8255A 芯片的 PC 口实现或用键盘模拟实现。
2、8253定时到可以通过8259,用中断的方式实现定时器。
题目:16LED流水灯设计:8255A口,B口输出,连接小灯,8254用于延时,控制灯光移动速度,为实现速度随时可调,将8254计数器0与计数器1级联,给计数器1赋不同值,延时时间不同,用开关完成该操作,开关1上拨,为速度等级1,开关2上拨,为速度等级2,开关3上拨,为速度等级3,开关4上拨,为速度等级4,开关8上拨,程序结束。
接口:8255C端口连接开关,为输入;AB口连接小灯,为输出,8255接片选信号CS0,8254接片选信号CS1,CLK0接47K,OUT0接CLK1,OUT1接PC4。
源程序如下;8255的A、B口输出,C口的低四位接开关控制,8254计数器0和计数器1 级联,8255片选接CS1开关调速;8254接CS2;.486CODE SEGMENT USE16ASSUME CS:CODEORG1000HBEG:JMP STARTSTART:MOV DX,30CHMOV AL,10001001BOUT DX,ALMOV DX,300HMOV AL,0FFHOUT DX,ALMOV DX,304HMOV AL,0FFHOUT DX,AL ;初始化小灯,AB口均送1,灭掉十六个小灯;开关复位程序KAIGUAN:MOV AL,0MOV DX,308HIN AL,DX ;读入C口AND AL,00001111BTEST AL,00000001B;检查开关状态,只能最慢开始(一个高电平最快,三个高电平最慢,四个结束程序)JZ KAIGUANAG0: MOV BH,11111110B ;从左到右循环分支L0: MOV DX,300H ;A口MOV AL,BHMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001B ;开关1 高电平,速度等级1JZ LA1CMP AL,00000011B ;开关1、2高电平,速度等级2JZ LA2CMP AL,00000111B ;开关1、2、3高电平,速度等级3JZ LA3CMP AL,00001111B ;开关1、2、3、4高电平,速度等级4 JZ LA4CMP AL,10001111B ;拨开关8,程序结束JZ END1LA1: MOV CX,50JMP F0LA2: MOV CX,100JMP F0LA3: MOV CX,150JMP F0LA4: MOV CX,200JMP F0F0: CALL DELAYROL BH,1CMP BH,11111110BJNZ L0MOV DX,300HMOV AL,0FFHOUT DX,ALMOV BH,0FFHMOV BH,01111111BL1: MOV DX,304H ;B口MOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LB1CMP AL,00000011BJZ LB2CMP AL,00000111BCMP AL,00001111BJZ LB4CMP AL,10001111BJZ END1LB1: MOV CX,50JMP F1LB2: MOV CX,100JMP F1LB3: MOV CX,150JMP F1LB4: MOV CX,200JMP F1F1:CALL DELAYROR BH,1CMP BH,01111111BJNZ L1MOV DX,304HMOV AL,0FFHOUT DX,ALAG1: MOV BH,11111110B ;右到左R0: MOV DX,304HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LC1CMP AL,00000011BJZ LC2CMP AL,00000111BJZ LC3CMP AL,00001111BJZ LC4CMP AL,10001111BJZ END1LC1: MOV CX,50LC2: MOV CX,100JMP F2LC3: MOV CX,150JMP F2LC4: MOV CX,200JMP F2F2:CALL DELAYROL BH,1CMP BH,11111110BJNZ R0MOV DX,304HMOV AL,0FFHOUT DX,ALMOV BH,01111111BR1:MOV DX,300HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LD1CMP AL,00000011BJZ LD2CMP AL,00000111BJZ LD3CMP AL,00001111BJZ LD4CMP AL,10001111BJZ END1LD1: MOV CX,50JMP F3LD2: MOV CX,100JMP F3LD3: MOV CX,150JMP F3LD4: MOV CX,200JMP F3F3:CALL DELAYROR BH,1CMP BH,11111110BJNZ R1MOV DX,300HMOV AL,0FFHOUT DX,ALAG2:MOV BH,01111111B ;两边向中间M0:MOV DX,300HMOV AL,BHOUT DX,ALMOV DX,304HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LE1CMP AL,00000011BJZ LE2CMP AL,00000111BJZ LE3CMP AL,00001111BJZ LE4CMP AL,10001111BJZ END1LE1: MOV CX,50JMP F4LE2: MOV CX,100JMP F4LE3: MOV CX,150JMP F4LE4: MOV CX,200JMP F4F4:CALL DELAYROR BH,1CMP BH,01111111BJNZ M0MOV DX,300HMOV AL,0FFHOUT DX,ALAG3:MOV BH,11111110B ;中间向两边M1:MOV DX,300HMOV AL,BHOUT DX,ALMOV DX,304HMOV AL,BHOUT DX,ALMOV DX,308HIN AL,DXAND AL,10001111BCMP AL,00000001BJZ LF1CMP AL,00000011BJZ LF2CMP AL,00000111BJZ LF3CMP AL,00001111BJZ LF4CMP AL,10001111BJZ END1LF1: MOV CX,50JMP F5LF2: MOV CX,100JMP F5LF3: MOV CX,150JMP F5LF4: MOV CX,200JMP F5F5:CALL DELAYROL BH,1CMP BH,11111110BJNZ M1MOV DX,304HMOV AL,0FFHOUT DX,ALCYCLE: JMP AG0DELAY PROC NEAR ;8254MOV DX,32CHMOV AL,00110110B ;通道0 ,方式0,二进制方式OUT DX,ALMOV DX,320H ;通道0MOV AX,470 ;写入计数初值OUT DX,ALMOV AL,AHOUT DX,AL ; clock接4.7kHz,计数器0输出0.01s脉冲信号MOV DX,32CHMOV AL,01110110BOUT DX,AL ;计数器1方式2MOV DX,324HMOV AX,CXOUT DX,ALMOV AL,AHOUT DX,AL ;CX的值给到计数器1AGAIN: MOV DX,308HIN AL,DXAND AL,00010000BTEST AL,00010000BJNZ AGAINNEXT: MOV DX,308HIN AL,DXAND AL,00010000BTEST AL,00010000BJZ NEXTRETDELAY ENDPEND1: MOV DX,304HMOV AL,0FFHOUT DX,ALMOV DX,300HMOV AL,0FFHOUT DX,ALWT: JMP WTCODE ENDSEND START。
目录摘要 (2)第1章利用8255A芯片实现流水灯闪烁设计的概述 (2)第2章三种方案的论述与最终方案的确定 (2)2.1第一种方案的论述 (2)2.2第二种方案的论述 (5)2.3第三种方案(最终方案)的论证 (10)第3章测试结果及体会心得 (13)第4章致谢 (14)第5章参考文献 (14)附录1 方案一Proteus仿真电路效果图 (15)附录2 方案一源程序代码 (16)附录3 方案二Proteus仿真电路效果图 (18)附录4 方案二源程序代码 (19)附录5 方案三(最终方案)Proteus仿真电路效果图 (20)附录6 方案三(最终方案)源程序代码 (21)摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。
通过对它进行编程,芯片可工作于不同的工作方式。
此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。
通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。
关键词:8086芯片AT89C51单片机8255A芯片LED流水灯第1章利用8255A芯片实现流水灯闪烁设计的概述流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。
此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。
在实验中8255A的A和B两个端口不能同时赋值,从而我们可以用通用寄存器BX对所需要赋值的数据进行存储,因为BX可以分从高8位寄存器BH和低8位寄存器BL两部分进行独立的操作,我们用寄存器BH对A口进行赋值,用寄存器BL对B口进行赋值,通过延时一段时间再对BH 和BL进行移位和输出,实现了流水灯的效果。
8255 控制led灯亮灭编程题第一种:基于8255芯片控制LED灯的亮灭编程,需要以下步骤:首先需要将8255芯片的PA口接LED灯,通过控制PA口的输出状态来控制LED灯的亮灭。
2.设置8255芯片的控制字,以确定芯片的工作方式和工作模式。
3.使用汇编语言编写程序,控制8255芯片的PA口输出状态,从而实现LED 灯的亮灭控制。
以下是一份基于8255芯片控制LED灯亮灭的汇编程序示例:ORG 0HDB 0B0H, 0B1H, 0B2H, 0B3H ; 控制字,确定8255芯片的工作方式和模式LED DB 0FFH ; 定义LED灯的状态,初始值为全灭LOOP:MOV AL, LED ; 将LED灯的状态存入AL寄存器OUT 0A0H, AL ; 将AL寄存器的值输出到8255芯片的PA口,控制LED灯的状态MOV AL, LED ; 将LED灯的状态存入AL寄存器ADD AL, 001 ; 将LED灯的状态翻转,实现亮灭变化SHL AL, 1 ; 将AL寄存器的值左移一位,更新LED灯的状态MOV LED, AL ; 将更新后的LED灯状态存入变量中JMP LOOP ; 重复以上操作,实现LED灯的持续亮灭控制在上述程序中,控制字被定义为0B0H、0B1H、0B2H和0B3H,分别对应8255芯片的四种工作方式和模式。
LED变量存储LED灯的状态,初始值为全灭。
在循环中,先将LED灯的状态输出到8255芯片的PA口,然后更新LED灯的状态并再次输出,实现LED灯的亮灭控制。
程序中的SHL指令是将AL寄存器的值左移一位,相当于将LED灯的状态翻转。
最后,程序通过JMP指令实现循环操作,让LED灯持续亮灭控制。
第二种:以下是使用8255芯片控制LED灯亮灭的编程题示例:假设LED灯连接在8255芯片的PA口,端口A的低4位控制LED的亮灭。
现在需要编写一个程序,让LED灯在PA口的低4位上以二进制方式从0000到1111逐位亮灭,每次亮灭的时间为1秒。
随着计算机科学技术的不断发展,微型计算机得到了广泛的应用,是人们利用计算机设计和开发各种应用系统的基础。
同时微型计算机接口技术也是一门实践性较强的课程,理论与实践相结合可以更好的掌握知识,这也是这次交通灯系统控制的设计目的。
交通灯是交通安全的关键,已广泛应用于城乡的十字路口,它的有无作为交通安全检查的重要依据,是交通秩序正常进行的有力保障。
十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。
当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。
它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。
交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。
但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。
采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。
它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。
目前,有一种使用“模糊控制”技术控制交通灯的方法。
能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。
但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。
本次的交通灯控制系统主要由8255A并行口、8253定时/计算器、8259单极中断控制器以及74LS139译码器实验等芯片组成。
整个课程设计主要使用8255A的A口和B口模拟十字路口交通灯的闪烁情况。
主要包括以下五个方面:1.课程设计题目名称;2.课程设计要求完成的任务;3.系统设计文档(包括了总体设计、详细设计以及程序设计等文档);4、课程设计总结;5.参考文献本次课程设计以固定的程序实现对交通灯实行控制,没有实现智能化,但智能化是交通控制系统是交通控制系统发展的必然趋势,也是满足日益发展的社会需要。
※※※※※※※※※※※※※※※※※※※※※※※※微机原理课程设计报告书课题名称 8255 并行接口流水灯显示实验姓名学号院、系、部物理与电信工程系专业指导教师一、设计任务及要求:设计任务:流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
要求:指导教师签名:2009年6月8日二、指导教师评语:指导教师签名:2009 年6月8 日三、成绩验收盖章2009年6 月8日8255 并行接口流水灯显示实验一、设计目的1. 学习并掌握8255 的工作方式及其应用;2. 掌握8255 典型应用电路的接法。
二、设计要求流水灯显示实验。
编写程序,使8255 的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。
三、电路及连线设计并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。
CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255 的内部结构及引脚如图2-6-1 所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示图2-6-1 8255内部结构及外部引脚图(a)工作方式控制字(b)C口按位置位/复位控制字图2-6-2 8255控制字格式图2-6-5 8255流水灯实验接线图四、使用说明使8255的A口和B口均为输出,数据灯D7~D0 由左向右,每次仅亮一个灯,循环显示,D15~D8 与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
用单片机实现流水灯的控制设计1.引言当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
学习单片机的最有效方法就是理论与实践并重,本设计课题是流水灯的控制设计,流水灯是一串按一定的规律像流水一样连续闪亮。
流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。
2.硬件组成2.1 总体方案设计分析要求用8255的A口和B口做为输出,接16个发光二极管,从而实现16位流水灯的显示效果,基本的界限可如下图A所示,在C口的地两位接两个开关,实现两个扩展功能的控制。
i:基本流水灯显示电路A口和B口两个端口不能同时复制,从而在试验中可以用BX进行需要复制的数据的存储,因为BX可以分从BH BL两个部分进行独立的操作,在本次试验中用BH对A口进行赋值,用BL对B口进行赋值,通过演示一段时间再对BH BL 进行移位和输出,实现流水灯的效果。
ii:正反方向选择把PC.0口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.0为高电平的时候则灯进行左移,同时B口与A口相反。
iii:快慢速度控制把PC.1口接在开关上,编写程序对C端口的数据进行读取,并进行判断,使得当PC.1为高电平的时候则延时的时间缩短,使得流水灯的流水速度加快,低电平的时候则进行延时的时间变长,使得流水灯的流水速度加快。
3硬件原理设计A该模块的WR.RD分别练到PC总线接口模块的XIOW和XIORB该模块的数据(AD0~AD7)、地址线(A0~A7)分别连到PC总线接口模块的数据(D0~D7)、地址线(A0~A7)C 8255模块选通线CA连到PC总线接口模块的IOY3D 8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16E 8255的PC0 PC1分别练到开关K0 K1F 软件流程框图及程序清单按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
8255 控制led灯亮灭编程题8255是一种通用并行输入/输出(GPIO)芯片,可以通过编程来控制外部设备,如LED灯。
编程使用的语言和平台可能有所不同,这里提供一个简单的汇编语言的例子,演示如何通过8255控制LED灯的亮灭。
假设LED灯连接到8255芯片的输出端口,具体的引脚配置和接线方式需要根据硬件连接进行调整。
section .database_port equ 0x378 ; 设置8255的基地址端口,具体地址根据实际情况调整section .textglobal _start_start:; 初始化8255的控制寄存器,设置为输出模式mov dx, base_port + 2 ; 控制寄存器地址 = 基地址 + 2mov al, 0b00110000 ; 设置8255为输出模式out dx, al; 使LED灯亮mov dx, base_port ; 数据端口地址 = 基地址mov al, 0xFF ; 设置输出数据,具体值根据LED 连接方式确定out dx, al; 停留一段时间,让LED保持亮的状态call delay; 使LED灯灭mov dx, base_port ; 数据端口地址 = 基地址mov al, 0x00 ; 设置输出数据,具体值根据LED 连接方式确定out dx, al; 程序结束mov eax, 1 ; 系统调用号为退出程序xor ebx, ebx ; 返回值为0int 0x80 ; 调用系统中断delay:; 延时函数,简单粗暴的方式mov cx, 0xFFFFdelay_loop:dec cxjnz delay_loopret这是一个简单的汇编语言程序,演示了如何通过8255控制LED 灯的亮灭。
请注意,这只是一个示例,实际应用中需要根据具体的硬件连接和需求进行调整。
在实际项目中,可能会使用更高级的编程语言(如C、C++)和开发环境进行开发。
4.3 8255A可编程并行接口实验4.3.1 实验目的1、掌握8255A并行接口芯片的基本结构及工作原理。
2、掌握8255A工作方式0的特点及其使用方法。
3、掌握8255A的A口或B口工作于方式1时的特点及其使用方法;掌握方式1输入或输出时C口用作联络信号的引脚的定义及功能。
4.3.2 实验提示基本输入输出实验程序流程图流水灯显示实验程序流程图4.3.3 实验内容1.基本输入输出实验。
编写程序,使8255A的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
完整源代码:code segmentassume cs:codestart: mov al,10000010bmov dx, 1443hout dx, alnext: mov dx, 1441hin al, dxmov dx, 1442hout dx, almov ah,0bhint 21hcmp al,0je nextmov ah,4chint 21hcode endsend start2.流水灯显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
完整源代码:MY8255_A EQU 1460HMY8255_B EQU 1461HMY8255_C EQU 1462HMY8255_MODE EQU 1463HDA TA SEGMENTLA DB ?LB DB ?DA TA ENDSCODE SEGMENTA SSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODEMOV AL,80HOUT DX,ALMOV DX,MY8255_AMOV AL,7FHOUT DX,ALMOV LA,ALMOV DX,MY8255_BMOV AL,0FEHOUT DX,ALMOV LB,ALCALL DALL YA1: MOV AL,LAROR AL,1MOV LA,ALMOV DX,MY8255_AOUT DX,ALMOV AL,LBROL AL,1MOV LB,ALMOV DX,MY8255_BOUT DX,ALCALL DALL YCALL BREAKJMP A1DALL Y: MOV CX,3FFHD1: MOV AX,0FFFFHD2: DEC AXJNZ D2LOOP D1RETBREAK PROC NEARMOV AH,06HMOV DL,0FFHINT 21HJE RETURNMOV AX,4C00HINT 21HRETURN:RETBREAK ENDPCODE ENDSEND START实验小结:通过本次实验,我对8255并行接口有了进一步的了解,实验过程中,有很多问题使得实验很难进行,最后通过和同学的讨论并且在网上查资料等,问题很快得到了解决。
西北工业大学明德学院实验报告实验项目 微机原理及应用 班 级 121204 姓 名 田家豪 王辰硕 学 号 121566 121567 指导老师 伍明高时 间 2015-4-21实验题目8255并口控制器应用实验实验目的(1) 掌握8255的工作方式及应用编程。
(2) 掌握8255的典型应用电路接法。
实验内容(1) 基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就改变。
(2) 流水灯显示实验。
编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。
实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
实验说明及步骤1.基本输入输出实验本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
实验步骤如下。
(1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(2) 如图1所示连接实验线路。
(3) 首先运行CHECK程序,查看I/O空间始地址。
(4) 利用查出的地址编写程序,然后编译链接。
(5) 运行程序,拨动开关,看数据灯显示是否正确。
图12.流水灯显示实验首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。
实验步骤如下:(1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。
(2) 首先运行CHECK程序,查看I/O空间始地址。
微机原理课程设计流水灯控制系统姓名:XX学院:物理电气信息学院班级:2010电子姓名:12010245…流水灯控制系统一、设计内容:本课程设计选用8086对8255A的A口控制来实现模拟流水灯功能的实现。
编写相关程序,通过proteus仿真软件来实现我名字“安亮”两个字的闪烁,“安”字接8255的A口的P0,“亮”字接A口的P1。
先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪烁八次,再跳到开始,以此循环。
二、设计目的:1、了解流水灯的基本工作原理2、熟悉8255A并行接口的各种工作方式和应用3、利用8255A接口,LED发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。
三、实验原理在8086系统中,采用16位数据总线,进行数据传输时,CPU总是将低8位数据线上的数据送往偶地址端口,而过高8位数据线上的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低8位数据线传送到CPU,从奇地址端口取得的数据总是通过高8位数据线送到CPU。
在8086系统中,将8255A的A1端和地址总线的A29255A 在对CPU并且,相连,A1端和地址总线的A0的8255A而将相连,的端口进行访问时,将地址总线的A0位总是设置为0。
本课程设计通过对8255A的A口控制来实现模拟流水灯功能的实现。
“安”接A 口的P0,“亮”接A口的P1,实现两个字按一定规律的一个闪烁。
8255的内部结构255A内部结构由以下四部分组成:数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。
端口A:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。
端口B:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器,可作为数据输入或输出端口,但不能工作于方式2。
基于8086和8255的流水灯式安全出口标志设计一、设计目的:1. 通过简单的设计来掌握8086以及8255A 芯片的工作原理。
2. 利用设计来掌握简单的汇编。
二、设计要求:1.利用8086做CPU,用74HC373进行锁存,用8255进行控制LED 灯的亮灭的时间和规律。
2.用74HC373锁存器控制8255A 的地址数据A0,A1。
3.用8255A 的A 口控制箭头中的流水灯,用其B 口控制四个字‘安全出口’的闪烁。
4.首先让所有的灯都亮两秒,接着所有灯灭掉,随后四个字流动闪烁一次,接着箭头中的灯依次进行闪烁,当最后一个灯闪烁完之后跳到起初,所有的灯亮,整个过程进行循环。
三.系统工作原理此方案是通过并行接口芯片8255A 和8086计算机的硬件连接,以及通过74HC373的锁存方法,来实现安全出口标语的模拟控制。
如硬件连接图所示,四个字“安全出口”和箭头分别接在8255的A 口和B 口的高四位,PA0,PA1,PA2,PA3,PA4,PA5,PA6,PA7分别接箭头中的灯,B 口的高四位接四个字。
8086工作在最小模式,低八位端口AD 0~AD 7接到8255和74HC373的AD 0~AD 7, 8255两个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。
四、硬件和接线原理:1.8086各个引脚的接法(1)BHE 引脚:通常用此引线产生片选信号,当为BHE =1,0A =0编码时,在数据总线低8位和偶地址之间进行字节传送(0AD ~7AD )。
(2)CLK (Clock )时钟信号(输入):CLK 为CPU 和总线控制器提供基本的定时脉冲。
时钟周期是非对称的,当它为有效高电平的时间和时钟周期的比为33%时,提供最佳的内部定时。
由8284时钟发生器产生,8086CPU 使用的时钟频率,因芯片型号不同,时钟频率不同。
这里采用5MHz 。
(3)CC V (+5V),GND(地):CPU 所需电源CC V =+5V 。
目录摘要··2第1章利用8255A芯片实现流水灯闪烁设计的概述··2第2章三种方案的论述与最终方案的确定··22.1第一种方案的论述··22.2第二种方案的论述··52.3第三种方案(最终方案)的论证··10第3章测试结果及体会心得··13第4章致谢··14第5章参考文献··14附录1 方案一Proteus仿真电路效果图··15附录2 方案一源程序代码··16附录3 方案二Proteus仿真电路效果图··18附录4 方案二源程序代码··19附录5 方案三(最终方案)Proteus仿真电路效果图··20附录6 方案三(最终方案)源程序代码··21摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。
通过对它进行编程,芯片可工作于不同的工作方式。
此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。
通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。
关键词:8086芯片AT89C51单片机8255A芯片LED流水灯第1章利用8255A芯片实现流水灯闪烁设计的概述流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。
此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。
在实验中8255A的A和B两个端口不能同时赋值,从而我们可以用通用寄存器BX对所需要赋值的数据进行存储,因为BX可以分从高8位寄存器BH和低8位寄存器BL两部分进行独立的操作,我们用寄存器BH对A口进行赋值,用寄存器BL对B口进行赋值,通过延时一段时间再对BH 和BL进行移位和输出,实现了流水灯的效果。
第2章三种方案的论述与最终方案的确定2.1第一种方案的论述第一种方案,我们使用了8086CPU芯片与8255A芯片一起实现了流水灯闪烁的设计,同时还使用了地址锁存器74LS373芯片。
74ls373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。
在方案一中,当8086CPU的引脚ALE(地址锁存允许信号,输出,高电平有效,用作地址锁存器74LS373的锁存控制信号)处于下降沿时将8086CPU输出的地址信息进行锁存,以定义8255A的工作方式。
下面先对74LS373芯片进行简介:1.地址锁存器74LS373的内部电路与工作原理引脚功能图注:管脚引出端功能符号:D0~D7 数据输入端OE 三态允许控制端(低电平有效)Q0~Q7 输出端LE 锁存允许端74373 三态缓冲输出的8D锁存器(3S,锁存允许输入有回环特性),其输出端Q0~Q7 可直接与总线相连,74LS373的LE端直接与8086CPU的ALE信号连接。
1脚是三态允许控制端(OE),是低电平有效。
当1脚是高电平时,不管输入3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)如何,也不管11脚(LE 锁存允许端)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态)。
当1脚是低电平时,只要11脚(LE 锁存允许端)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的状态。
11脚是锁存允许端(LE),当LE由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。
当三态允许控制端OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。
当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0~Q7 状态与输入端D1~D7状态相同;当LE发生负的跳变时,输入端D0~D7 数据锁入Q0~Q7。
2.方案一的工作流程简述电路图硬件连接:硬件连线图注:8086CPU芯片与74LS373芯片在方案一中视为PC总线接口模块①8255A的引脚WR(写选通信号)、RD(读选通信号)分别连到PC总线接口模块的WR端口、RD端口。
②8255A的数据端(AD0~AD7)、地址线(A0~A1)分别连到PC总线接口模块的数据线(D0~D7)、地址线(A1~A2)。
③8255模块选通线CS连到PC总线接口模块的IOY1(CS 片选信号,低电平有效,由地址总线经I/O端口译码电路产生)。
④8255的PA0~PA7连到发光二极管的L1~L8;8255的PB0~PB7连到发光二极管的L9~L16。
程序流程简述:8255A的片选信号CS与地相连,处于低电平有效状态,8086CPU与8255A之间始终保持通信,8086CPU对8255A进行读/写等操作。
当8086CPU的地址锁存信号ALE处于高电平有效时,在T1状态,8086CPU通过地址/数据总线上传送地址信息,在ALE的下降沿将地址信息锁存到地址锁存器74LS373中,定义了8255A的工作方式,使其A口和B口为输出口,定义了8255A各端口地址。
8086CPU先后写A、B口的起始数据,并调用延时子程序点亮A口灯、B 口灯。
然后分别调用左移、右移指令将A口起始数据左移再写入A口、B口起始数据右移再写入B口,点亮下一站盏灯,以此循环实现流水灯效果。
程序框图结论:第一种方案虽然实现了流水灯闪烁效果,但由于8086CPU芯片所需的程序无法通过KC51实现编程,不能达到本次课程设计的培训目的,即对单片机的程序编程进行训练掌握,要求较高,方案实现的难度较大,所以我们没有把方案一作为最终方案。
2.2第二种方案的论述第二种方案,我们使用了AT89C51单片机实现了流水灯闪烁设计。
AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。
因此,方案二中设计的流水灯实际上是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
下面先对AT89C51单片机进行简介:1. AT89C51单片机的简介AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes 的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可以提供许多高性价比的应用场合,可灵活应用于各种控制领域。
AT89C51管脚分布注:管脚引出端功能符号:◆VCC:供电电压。
◆GND:接地。
◆P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
◆P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH 编程和校验时,P1口作为第八位地址接收。
◆P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
◆P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口。
P3口同时为闪烁编程和编程校验接收一些控制信号。
◆P3口管脚备选功能:·P3.0 RXD(串行输入口)·P3.1 TXD(串行输出口)·P3.2 / INT0(外部中断0)·P3.3 / INT1(外部中断1)·P3.4 T0(记时器0外部输入)·P3.5 T1(记时器1外部输入)·P3.6 / WR(外部数据存储器写选通)·P3.7 / RD(外部数据存储器读选通)◆RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
◆ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。