单片机可编程8255接口实验报告
微机原理8255实验报告

四、 实验过程中遇到的问题:在第一次编写完成后,我们调试失败了,通 过检查,发现程序有一个指令编写错误,纠正后,程序仍然编译失败, 连续好几次都没有成功,后来通过向同学请教,发现我们在改正之前没 有进行复位,导致错误没有纠正,按照正确的过程改正后,终于调试成 功了,我们看到随着电脑屏幕上的程序一条条执行,LED 灯准确地将开 关的状态输出,实验终于成功了。
微机原理与接口技术实验报告
姓名
学号
专业年级
实验题目
8255 并行接口实验
实验目的 实验内容
通过实验了解 8255 的工作原理,并在实验中熟悉 8255 的初始化编程,巩固学
习的理论知识,将理论转化为实践。
实验题 1 编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。即当 开关 ki 置于 L 时,对应发光二极管 LEDi 点亮;置于 H 时熄灭
实验题 2 编写程序,使得当开关 k1 置于 L 时,LED1~LED2 皆亮; k1 置于 H 时, LED1~LED2 皆灭
实验分析
一、首先按照以下的实验连线将电路连接好: CS8255 CS0 PA0~PA1 开关 K1~K2 PB0~PB1 发光二极管 LED1~LED2
二、(打开实验箱电源)PC 机运行 8086 调试软件 TECH86---串口 COM3 或 COM4—PREST 键 编辑程序,单步运行,调试程序 调试通过后,全速运行程序,观看实验结果
start
实验二:
assume cs:code
code segment public
org
单片机实验-可编程并行接口芯片8255的应用实验

可编程并行接口芯片8255的应用实验一、实验目的和要求1、掌握单片机与可编程并行接口芯片8255的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
3、熟悉可编程并行接口芯片8255初始化程序的设计方法。
二、实验内容或原理1、在可编程并行接口芯片8255的PA口或PB口的某一口线上产生连续周期性矩形波。
2、在可编程并行接口芯片8255的PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态。
三、设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。
2、在8255PA口或PB口的某一口线上产生周期为500μS的连续方波,接示波器观察波形。
3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态四、实验报告要求1、实验目的和要求。
2、设计要求。
3、电路原理图。
4、实验程序流程框图和程序清单。
5、实验结果(波形图)。
6、实验总结。
7、思考题。
五、思考题1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化。
原理图:/*功能:PA口产生周期为500us的连续方波(方式二、查询)*/ ORG 0000HLJMP MAINORG 0030HMAIN: MOV TMOD, #02HMOV IE, #00HMOV DPTR, #0003H ;指向8255的控制口MOV A, #89H ;工作方式命令,A口输出MOVX @DPTR, A ;向控制口写控制字MOV TH0, #06H ;赋初值MOV TL0, #06HSETB TR0 ;开启定时器0LOOP: JBC TF0, LOOP1 ;判断计数溢出AJMP LOOPLOOP1: MOV DPTR, #0000H ;指向8255的A口CPL ACC.0 ;指向PA0,取反MOVX @DPTR, A ;显示波形LJMP LOOPEND/*功能:发光二级管指示按键状态*/ORG 0000HMAIN: MOV DPTR, #0003H ;指向8255的控制口MOV A, #81H ;工作方式命令,口C低半输入,高半输出MOVX @DPTR, A ;向控制口写控制字LOOP: MOV DPTR, #0002H ;指向8255的C口MOVX A, @DPTR ;按键状态读入ASW AP A ;高低字节交换,对应高四位MOVX @DPTR, A ;驱动LED发光LJMP LOOPEND。
8255试验报告(方式1查询输出)

《微型计算机接口技术》实验报告实验名称:可编程并行接口芯片8255应用(8255方式1、查询输出)姓名学号:班级:日期:广东外语外贸大学信息科学技术学院一、实验目的掌握8255方式1查询输入、输出时的使用及编程二、实验内容1、按照图示连接硬件(注意图中大多数线试验箱已经连好,只连接需要用户连接的部分,预习,参考PPT)2、编程:每按一次单脉冲按钮,ACK信号有效,8255内部输出准备好状态有效(INTR),查询输出一次数据,点亮、熄灭相应的发光二极管。
三、实验原理(8255方式1输出:结合结构图、时序图、状态字描述)8255是一片可编程并行I/O接口芯片,每片8255有两个8位的并行口(PA,PB)和两个4位并行口(PC的高、低四位),其中PA口可工作于方式0,1,2。
PB口工作于方式0,1。
PC口仅能工作于方式0。
在方式1中,将8255的三个端口分为了A、B两组,PA、PB两个口仍作为数据输入/输出口,而PC口则作为两部分,分别作为PA、PB口的联络信号。
8255A 方式1 A口输出过程由CPU响应中断开始,在中断中用OUT指令通过8255A 向外设输出数据,发出WR 信号;WR上升沿清除INTRA 中断请求信号,且使OBFA =“L”(有效),通知外设取数;当外设接受数据后,发出ACKA 应答信号,一方面使OBFA=“H”(无效),另一方面在ACKA信号的上升沿使INTRA=“H”(有效),以此向CPU发出新的中断请求,开始下一轮输出。
四、硬件设计及方案论证(完整图的信号线连接及作用:数据、地址、控制及外设线)硬件设计如图,其中:1.8255芯片中的数据总线D0—D7是和CPU的数据线直接相连的,从而CPU可以向8255发送命令、数据和8255芯片也可以向CPU发送状态、数据等等。
2.8255芯片中的A0和A1也是与CPU的地址总线直接相连,并且在控制字在以下几种情况有不同的设置,若A1A0= 00时,8255芯片中的PA口被选中,若A1A0=01时,8255芯片中的PB口被选中,若A1A0=10时,8255芯片中的PC口被选中,若A1A0=11时,则8255芯片的控制口被选中。
8255实验报告

8255实验报告关键信息项:1、实验目的:____________________________2、实验设备:____________________________3、实验原理:____________________________4、实验步骤:____________________________5、实验结果:____________________________6、结果分析:____________________________7、误差分析:____________________________8、改进措施:____________________________11 实验目的本次 8255 实验的主要目的是深入了解 8255 并行接口芯片的工作原理和编程方法,掌握通过 8255 实现输入输出数据的控制和传输。
通过实验,提高对计算机接口技术的实际应用能力,为今后在相关领域的学习和工作打下坚实的基础。
111 具体目标1111 熟悉 8255 的内部结构和引脚功能。
1112 掌握 8255 的工作方式及其设置方法。
1113 学会使用汇编语言或 C 语言对 8255 进行编程,实现数据的输入输出操作。
1114 能够通过实验现象分析和解决可能出现的问题,提高调试程序的能力。
12 实验设备121 计算机一台122 8255 实验箱一个123 导线若干13 实验原理8255 是一种通用的可编程并行接口芯片,具有三个 8 位的并行输入/输出端口:A 口、B 口和 C 口。
每个端口都可以通过编程设置为输入或输出方式,并且可以组合使用以满足不同的应用需求。
8255 内部还有控制寄存器,用于选择端口的工作方式和控制信号。
在实验中,通过对 8255 的控制寄存器进行编程,设置端口的工作方式,然后向输入端口输入数据,或者从输出端口读取数据,观察实验结果,验证 8255 的功能和编程方法的正确性。
14 实验步骤141 连接实验设备将计算机与 8255 实验箱通过数据线连接好,确保连接牢固,电源正常。
微机实验 可编程并行接口8255

微机原理实验报告实验题目:可编程并行接口8255一、实验目的1、掌握8255的基本输入输出和PC端口位控的工作方式及应用编程。
2、掌握8255的典型应用电路接法。
二、实验知识回顾8255控制字1、控制方式2、C端口置位复位控制字三、实验内容1、 8255流水灯显示,首先用逻辑电平开关预置一个数字,从A口读入,写入01H到C端口上,左移一次在进行输出,A口读入数据作为左移次数,这样循环下去,从而实现流水灯的显示。
2、用PC端口位控制法控制LED灯,依次点亮LED灯。
四、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干五、实现过程1、8255流水灯显示(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,90h ;方式0A口输入C口输出out dx,al ;mov dx,io8255a ;A口的地址存入dxin al,dx ;从dx也就是A口读入数据mov la,al ;读入的数据暂存在la变量mov dx,io8255c ;C口的地址存入dxmov al,01h ;将寄存器最低位置零out dx,al ;置位后的值输入给dx,也就是C口mov lb,al ;置位后的值暂存于变量lbloop1:call delaymov al,la ;将A口数据写入CX用以计数mov ch,00hmov cl,laloop2:call delaymov al,lbrol al,1 ;在寄存器内进行位移操作mov lb,al ;将操作后的结果重新写入变量al,为后面调用做准备mov dx,io8255c ;dx代表C口的地址out dx,al ;将al中存储的值写入dx,即C口mov ah,1 ;选择dos的模式为从键盘读取数据int 16h ;进入中断jnz quit ;ZF为0则跳到quitdec cx ;计数器减一jnz loop2 ;若cx!=0,跳到loop2quit:mov ax,4c00h ;结束程序并退出int 21hdelay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start2、位控设置C口输出点亮LED(1)流程图(2)程序源代码io8255a equ 2a0h ;8255A口地址io8255b equ 2a1h ;8255B口地址io8255c equ 2a2h ;8255C口地址io8255mode equ 2a3h ;控制寄存器地址stack1 segment stackdw 256 dup(?)stack1 endsdata segmentla db ? ;定义数据变量lb db ?data endscode segmentassume cs:code,ds:datastart:mov ax,data ;程序由start处开始mov ds,axmov dx,io8255mode ;定义8255的工作方式mov al,00001111b ;位控设置C口最高位为1out dx,almov cx,7 ;剩余未点亮灯数为7 loop1:call delaydec aldec alout dx,aldec cxjnz loop1delay proc near ;延时子程序push cxpush axmov cx,01fhd1: mov ax,0ffffhd2: dec axjnz d2loop d1pop axpop cxretdelay endpcode endsend start(3)实验结果图六、小结通过本次试验,我进一步了解了8255的可编程性,以及如何正确的通过程序控制8255,也更加熟悉了8255 C 端口的位控输出。
单片机可编程8255接口实验报告

单片机可编程8255接口实验报告可编程8255接口实验报告㈠实验目的1.掌握可编程并行接口芯片的基本工作原理及其使用方,熟悉8255可编程并行I/O扩展接口。
2.掌握8255可编程并行I/O扩展接口方法,能够利用8255可编程并行接口芯片设计简单应用系统。
㈡实验器材1. G6W仿真器一台2. MCS-51实验板一台3. PC机一台4.电源一台㈢实验内容及要求1.声光报警器实验8255是可编程的通用并行输入输出扩展接口。
8255芯片的片选信号CS4 及口地址选择线AA0、AA1分别由8051的地址线提供。
8255的A口设置为输入数据端口,B口设置为输出数据端口,通过控制位操作控制字将C口某一位置位或复位,B口与发光二极管LED相连,C口与蜂鸣器相连,读取A 口数据,只要有一位为“1”,则点亮发光二极管LED(B口输出为低,LED 亮,反之,LED 灭),同时蜂鸣器响(若 C口某一位置1,蜂鸣器不响)。
2.交通灯控制实验通过并行接口8255实现十字路nb 口交通灯的模拟控制。
L6~L8与PC5~PC7相连,作为南北路口的交通灯,L1~L3与PC0~PC2相连,作为东西路口的交通等。
编程使六个灯按以下规律变化:南北路口的“绿”灯(L8)、东西路口的“红”灯(L1)同时亮30秒(要求有倒计时显示);南北路口的“黄”灯(L7)闪烁若干次,同时东西路口“红”灯(L1)继续亮;南北路口的“红”灯(L6)、东西路口的“绿”灯(L3)同时亮30秒(要求有倒计时显示);东西路口的“黄”灯(L2)闪烁若干次,南北路口的“红”灯(L6)继续亮;重复以上步骤。
㈣实验步骤1.连接8255芯片的片选信号CS4及口地址选择线AA0、AA1,并根据片选信号及口地址选择线确定8255的各I/O口地址和控制字寄存器的地址。
2.声光报警器实验的连线①8255的A口的8位根据需要接入高低电平。
②8255的B口中任一口与TEST相连,运行程序,即可观察L9发光二极管。
实验五 8255并行接口实验

实验五 8255并行接口实验实验目的:1、学习并掌握8255的各种工作方式及其应用。
2、学习在系统接口实验单元上构造实验电路。
相关理论知识:一、8255可编程并行接口芯片介绍8255是Intel 公司生产的通用并行IO 接口芯片,它具有ABC 三个并行接口,能在以下三种方式下工作:方式0:基本输入/输出方式 方式1:选通输入/输出方式 方式2:双向选通工作方式8255工作方式控制字及C 口置位/复位控制字如下图所示:ABC 三60H~63H 。
8765432121222319208.50 8255A 工作方式控制字格式A 组控制B 口方式选择输出01010101X输入输出输入方式0方式1方式2B 组控制C 口(低4位)B 口方式选择输出010100输入输出输入方式0方式1C 口(高4位)D 7D 6D 5D 4D 3D 2D 1D 0A 组控制B 口方式选择输出010100101X 输入输出输入方式0方式1方式2B 组控制C 口(低4位)B 口方式选择输出010100输入输出输入方式0方式1C 口(高4位)实验内容及实验步骤:一、8255接口应用实验(1)按图所示实验线路编写程序,使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组发光二极管上,然后通过对8255芯片编程来实现输入/输出功能。
STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,SS:STACKSTART: MOV AL, 82HOUT 63H ,ALA1:IN AL,61HOUT 60H,ALJMP A1CODE ENDSEND START实验步骤:(1)按图接线,接通电源。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)运行程序,拨动开关组,观察发光二极管与开关组状态的对应关系。
单片机可编程8255接口实验报告

单片机可编程8255接口实验报告可编程8255接口实验报告㈠实验目的1.掌握可编程并行接口芯片的基本工作原理及其使用方,熟悉8255可编程并行I/O扩展接口。
2 .掌握8255可编程并行I/O扩展接口方法,能够利用 8255可编程并行接口芯片设计简单应用系统。
㈡实验器材1 . G6W 仿真器一台2. MCS-51 实验板一台3. PC 机一台4 . 电源一台㈢实验内容及要求1.声光报警器实验8255是可编程的通用并行输入输出扩展接口。
8255芯片的片选信号 CS4及口地址选择线 AA0AA1分别8051的地址线提供。
8255的A 口设置为输入数据端口, B 口设置为输出数据端口,通过控制位操作控制字将 C 口某一位置位或复位,B 口与发光二极管 LED相连,C 口与蜂鸣器相连,读取A 口数据,只要有一位为“ 1”,则点亮发光二极管LED, 同时蜂鸣器响。
2・交通灯控制实验通过并行接口 8255实现十字路 nb 口交通灯的模拟控制。
L6〜L8与PC厂PC7相连,作为南北路口的交通灯,L1〜L3与PC0- PC2相连,作为东西路口的交通等。
编程使六个灯按以下规律变化:南北路口的“绿”灯、东西路口的“红”灯同时亮 30秒(要求有倒计时显示);南北路口的“黄” 灯闪烁若干次,同时东西路口“红”灯继续亮;南北路口的“红”灯、东西路口的“绿”灯同时亮 30秒(要求有倒计时显示);东西路口的“黄”灯闪烁若干次,南北路口的“红”灯继续亮;重复以上步骤。
㈣实验步骤1 .连接8255芯片的片选信号 CS4及口地址选择线AA0 AA1,并根据片选信号及口地址选择线确定 8255的各I/O 口地址和控制字寄存器的地址。
2 .声光报警器实验的连线①8255的A 口的8位根据需要接入高低电平。
②8255的B 口中任一口与 TEST相连,运行程序,即可观察L9发光二极管。
③在实验板上接入蜂鸣器,并且8255的PC7与BEEP相连,运行程序,即可听到蜂鸣器鸣响声。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程8255接口实验报告㈠实验目的1.掌握可编程并行接口芯片的基本工作原理及其使用方,熟悉8255可编程并行I/O扩展接口。
2.掌握8255可编程并行I/O扩展接口方法,能够利用8255可编程并行接口芯片设计简单应用系统。
㈡实验器材1. G6W仿真器一台2. MCS-51实验板一台3. PC机一台4.电源一台㈢实验内容及要求1.声光报警器实验8255是可编程的通用并行输入输出扩展接口。
8255芯片的片选信号CS4 及口地址选择线AA0、AA1分别由8051的地址线提供。
8255的A口设置为输入数据端口,B口设置为输出数据端口,通过控制位操作控制字将C口某一位置位或复位,B口与发光二极管LED相连,C口与蜂鸣器相连,读取A 口数据,只要有一位为“1”,则点亮发光二极管LED(B口输出为低,LED 亮,反之,LED 灭),同时蜂鸣器响(若 C口某一位置1,蜂鸣器不响)。
2.交通灯控制实验通过并行接口8255实现十字路nb 口交通灯的模拟控制。
L6~L8与PC5~PC7相连,作为南北路口的交通灯,L1~L3与PC0~PC2相连,作为东西路口的交通等。
编程使六个灯按以下规律变化:南北路口的“绿”灯(L8)、东西路口的“红”灯(L1)同时亮30秒(要求有倒计时显示);南北路口的“黄”灯(L7)闪烁若干次,同时东西路口“红”灯(L1)继续亮;南北路口的“红”灯(L6)、东西路口的“绿”灯(L3)同时亮30秒(要求有倒计时显示);东西路口的“黄”灯(L2)闪烁若干次,南北路口的“红”灯(L6)继续亮;重复以上步骤。
㈣实验步骤1.连接8255芯片的片选信号CS4及口地址选择线AA0、AA1,并根据片选信号及口地址选择线确定8255的各I/O口地址和控制字寄存器的地址。
2.声光报警器实验的连线①8255的A口的8位根据需要接入高低电平。
②8255的B口中任一口与TEST相连,运行程序,即可观察L9发光二极管。
③在实验板上接入蜂鸣器,并且8255的PC7与BEEP相连,运行程序,即可听到蜂鸣器鸣响声。
3.交通灯控制实验的连线8255的PC口与J2相连。
㈤思考题1.8051和 8255的接口电路同单片机CPU与I/O之间的数据传送方式有关,传送方式可分为无条件传送方式、查询传送方式和中断传送方式。
本实验是采用无条件传送方式,那么在中断传送方式中8255与单片机之间是如何连接的?说明8255A的A口在方式1的选通输入方式下的工作过程。
解:当外设输入一个数据并送到PA7-PA0上时,输入设备自动在选通输入线STBA 向8255A发送一个低电平选通信号。
8255A收到选通信号后:首先把PA7-PA0上输入的数据存入A口的输入数据缓冲/锁存器;然后使输入缓冲器输出线IBFA变成高电平,以通知输入设备,8255A的A口已收到它送来的输入数据。
8255A 检测到联络线STBA由低电平变成了高电平、IBFA为1状态和中断允许触发器INTEA为1时,使输出线INTRA(PC3)变成高电平,向8031发出中断请求。
(INTEA 的状态可由用户通过对PC4的置位/复位来控制。
8031相应中断后,可以通过中断服务程序从A口的输入数据缓冲/锁存器读取外设发来的输入数据。
当输入数据被CPU读走后,8255A撤销INTRA上的中断请求,并使IBFA变为低电平,以通知输入外设可以送下一个输入数据。
2.用实验结果来说明8255方式0的特点。
3.用实验结果来说明8255方式1的工作情况。
1.方式0一般使用在同步传送和查询式传送中。
2. 方式1的输出端口一般用于中断方式与CPU 相联系。
方式1有如下特点:①端口A 和端口B 可分别作为两个数据口工作于方式1,并且任何一个端口可作为输入或输出口。
②若只有一个端口工作于方式1,则端口C 有三位被规定配合其工作,其余共13位可工作于方式0。
③若两个端口都工作于方式1,则端口C 有6位被规定配合其工作,端口C 所剩2位仍可作为输入或输出。
3.方式2应用于分时工作的双向外设(输入输出设备)的连接4.如何实现对8255的复位,有哪些方法,你实践的结果如何?8255引脚功能RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O 口均被置成输入方式。
5.如何实现8255输出连续的方波信号,有哪些方法?如何实现?6.实验中遇到什么问题,有什么建议?声光报警器流程图:无有声光报警器实验:ORG 0000HAJMP MAINORG 0030HMAIN:MOV DPTR,#7FFFHDMOV A,#90H ;写方式控制字,PA 口方式0输入,PB 口方式0输出MOVX @DPTR,ASTART:将PA 口内容读入A 中 判断A 中是否有一位为1 执行NEXT2,L9亮,蜂鸣器响 执行完后返回继续读PA 口内容写方式控制字 进行数据回放 执行NEXT2,L9灭,蜂鸣器不响MOV DPTR,#7FFCHMOV A,@DPTR ;将PA口内容读入A中ANL A,#01H ;屏蔽PA口高七位JZ NEXT1 ;PA为0,则执行NEXT1NEXT2: ;PA有一位为1,则执行NEXT2MOV DPTR, #7FFDHMOV A , #00HMOVX @DPTR,A ;PB.0复位,L9亮MOV DPTR, #7FFEHMOV A, #00HMOV @DPTR,A ;PC.7复位,蜂鸣器响JMP STARTNEXT1:MOV DPTR, #7FFDHMOV A, #FFHMOVX @DPTR,A ;PB.0置位,L9灭MOV DPTR, #7FFEHMOV A, #0FFHMOV @DPTR,A ;PC.7置位,蜂鸣器不响JMP START实验一小结:首先是在一轮判断响应结束后返回时,不要反复写控制字,控制字只要写一次就够了;其次是弄懂了A口,B口,C口的地址究竟是怎样确定的;最后是学会了将PA口内容输入,怎样将PB口,PC口的输出,对于8255的无条件传送方式得到了进一步的理解。
交通灯流程图:写方式控制字,PC口输出进行初始化,为显示和计时做准备南北路口的“绿”灯(L8)、东西路口的“红灯(L1)同时亮倒计时30S并进行显示南北路口的“黄灯”灯(L7)闪烁、东西路口的“红灯(L1)继续亮黄灯闪烁5次南北路口的“红”灯(L6)、东西路口的“绿灯(L3)同时亮倒计时30S并进行显示东西路口的“黄灯”灯(L2)闪烁、南北路口的“红灯(L6)继续亮黄灯闪烁5次交通灯实验:状态一:南北路口的“绿”灯(L8,PC7)、东西路口的“红”灯(L1,PC0)同时亮30秒(要求有倒计时显示);状态二:南北路口的“黄”灯(L7,PC6)闪烁若干次,同时东西路口“红”灯(L1,PC0)继续亮;状态三:南北路口的“红”灯(L6,PC5)、东西路口的“绿”灯(L3,PC3)同时亮30秒(要求有倒计时显示);状态四:东西路口的“黄”灯(L2,PC2)闪烁若干次,南北路口的“红”灯(L6,PC5)继续亮;重复以上步骤。
ORG 0000HMOV DPTR,#7FFFHMOV A,#90H ;写方式控制字,PC口输出MOVX @DPTR,AMAIN:MOV 41H,#0BBH ;对几个存放地址进行初始化MOV 42H,#0BBHMOV 43H,#0BBHMOV 44H,#0BBHMOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0LCALL LED ;初始化显示MOV SP,#60HMOV 21H,#1FH ;装入定时次数,共30SMOV 22H,#1EH ;显示时间初值STA TE1:MOV DPTR,#7FFEHMOV A,#81HMOVX @DPTR,A ;写C口位控制字,南北路口的“绿”灯亮,东西路口的“红”灯亮TIME1:MOV A,22HMOV B,#0AHDIV ABLCALL LED ;显示时间LCALL DELAY ;1S未到,继续显示状态一DEC 22HDJNZ 21H,TIME1STA TE2:MOV DPTR,#7FFEHMOV R1,#05H ;黄灯闪五次TWINKLE1:MOV A,#41HMOVX @DPTR,A ;东西路口的“红”灯亮,南北路口的“黄”灯亮LCALL DELAYMOV A,#01HMOVX @DPTR,A ;东西路口的“红”灯亮,南北路口的“黄”灯灭LCALL DELAYDJNZ R1, TWINKLE1STA TE3:MOV DPTR,#7FFEHMOV A,#24HMOVX @DPTR,A ;南北路口的“红”灯亮,东西路口的“绿”亮MOV 21H,#1FH ;装入中断次数,共30SMOV 22H,#1EH ;显示时间初值TIME2:MOV A,22HMOV B,#0AHDIV ABLCALL LED ;显示时间LCALL DELAY ;1S未到,继续显示状态一DEC 22HDJNZ 21H,TIME2STA TE4:MOV DPTR,#7FFEHMOV R1,#05H ;黄灯闪五次TWINKLE2:MOV A,#22HMOVX @DPTR,A ;南北路口的“黄”灯亮,东西路口的“红”灯亮LCALL DELAYMOV A,#20HMOVX @DPTR,A ;南北路口的“黄”灯灭,东西路口的“红”灯亮LCALL DELAYDJNZ R1, TWINKLE2JMP MAINLED: ;显示子程序MOV DPTR,#DA TAMOVC A,@A+DPTR ;调用段选号MOV 42H,A ;显示十位MOV A,BMOVC A,@A+DPTRMOV 41H,A ;显示个位DISPLAY:MOV R5,#04H ;共四位需要显示MOV R0,#41HDISPLAY1:MOV A,@R0MOV SBUF,ADISPLAY2:JNB TI,DISPLAY2 ;是否传完了CLR TIINC R0DJNZ R5,DISPLAY1RETDELAY: MOV R6,#14H ;定时1SMOV TMOD,#01HDS3:MOV TH0,#3CHMOV TL0,#0B0H ;50msSETB TR0LOOP:JNB TF0,LOOPCLR TF0CLR TR0DJNZ R6,DS3 ;1s到,中断返回RETDA TA:DB 0BBH 09H 0EAH 6BH ;段码表DB 59H 73H 0F3H 0BHDB 0FBH 7BH 00H 0DBHDB 0F1H 0B2H 0E9H 0F2HDB 0D2H 40H实验二小结:这次实验可以算是一个比较综合性的实验,用到了之前学习过的定时和LED显示,这两块由于之前反复练习过,还算比较熟练。