利用8255A芯片实现流水灯闪烁设计

合集下载

利用8255A实现LED的流水点亮实验

利用8255A实现LED的流水点亮实验
moval,00000100b
outdx,al
;-
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,40h
outdx,al
movdx,211h
moval,00000010b
outdx,al
;A
movdx,211h
moval,00000000b
outdx,al
moval,7fh
outdx,al
movdx,211h
moval,00100000b
outdx,al
;2
movdx,211h
moval,00000000b
outdx,al
movdx,210h
moval,5bh
outdx,al
movdx,211h
moval,00010000b
outdx,al
;5
movdx,211h
movdx,210h
moval,77h
outdx,al
movdx,211h
moval,00000001b
outdx,al
loop lp ;转至lp
jmplop ;跳至lop
hlt ;使处理器处于暂时停机状态.
codeends
end start
在数码管上显示“8255-A”。
三、实验分析
实验要求利用8255芯片8个开关来控制8个LED灯的开关。我们在课堂上学过8255有ABC三个口,可以输入和输入。因此首先可以想到的就是,把PA口A0-A7接8个波动开关K1-K7,并将A口调整为读入。同时将A口读入的信号用B口输出,这样就可以通过拨动开关来控制LED灯的明灭。为了让灯亮的时间足够人眼分辨出来,需要在程序里加入延时语句,其中加零语句就可以实现延时。

通过51单片机控制24个发光二极管形成流水灯效果的亮灭状态

通过51单片机控制24个发光二极管形成流水灯效果的亮灭状态

成绩实验名称:单片机系统简单扩展实验
一、实验目的
1、了解单片机系统的扩展方法
2、熟悉8255A在单片机系统扩中的使用方法。

3、熟悉仿真软件Proteus以及编程软件Keil的使用。

二、实验仪器
三、实验内容
四、实验原理
实验报告
五、实验步骤
步骤:
1、根据给定的实验要求,分析实验的目的以及实验要求。

2、通过计算机仿真软件Proteus,根据实验目的设计电路,并且绘制电路原理图。

3、根据自己设计的电路,编写控制程序。

4、调试所编写的控制程序,直至程序没有语法及语意错误,可以通过编译。

5、将所编写的无错误的程序下载至仿真软件,并进行调试,根据仿真结果修改程序。

6、重复上一步骤,知道仿真效果达到实验要求,即可完成。

六、实验程序
#include <reg51.h>
#include<absacc.h>。

《微机系统与接口技术》8255流水灯实验报告

《微机系统与接口技术》8255流水灯实验报告

《微机系统与接口技术》预习报告学院:计算机学院专业:网络工程班级学号:学生姓名:小发实验日期:指导老师:成绩评定:五邑大学计算机学院制表一,实验目的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

微机实验-流水灯8255

电子信息工程系实验报告课程名称:微机原理与接口技术实验项目名称: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读取信息或数据。

交通灯设计-8255-8254(附连线图和源代码)

交通灯设计-8255-8254(附连线图和源代码)

西安郵電學院硬件课程设计报告题目:微机原理与接口课程设计;^院系名称:计算机学院专业名称:软件工程班级:软件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,用中断的方式实现定时器。

8255 16LED流水灯设计 代码

8255 16LED流水灯设计    代码

题目: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。

利用8255A芯片实现流水灯闪烁设计

利用8255A芯片实现流水灯闪烁设计

目录摘要 (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 控制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秒。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要··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禁止,置位无效。

相关文档
最新文档