MCS-51单片机并行IO接口的扩展

MCS-51单片机并行IO接口的扩展
MCS-51单片机并行IO接口的扩展

第九章MCS-51单片机并行I/O接口的扩展

(一)学习要求

1、熟悉74LS377、74LS245外围芯片的特性和扩展方法。

2、掌握8255A芯片的结构和工作方式。

3、掌握8155A芯片的结构和工作方式。

4、掌握8155A的RAM和I/O端口寻址方法。

(二)内容提要

1、I/O接口的扩展

当所需扩展的外部I/O口数量不多时,可以使用常规的逻辑电路、锁存器进行扩展。这一类的外围芯片一般价格较低而且种类较多,常用的如:74LS377、74LS245、74LS373、74LS244、74LS273、74LS577、74LS573。

1)74LS377

74LS377是一种8D触发器,它的E端和CLK端是控制端,当它的E端为低电平时只要在CLK端产生一个正跳变,D0~D7将被锁存到Q0~Q7端输出,在其它情况下Q0~Q7端的输出保持不变。

可以利用74LS377这一特性扩展并行输出口。如图9-2使用了一片74LS377扩展输出口,如果将未使用到的地址线都置为1则可以得到该片74LS377的地址为7FFFH。如果单片机要从该片74LS377输出数据的可以执行如下指令:

MOV DPTR,#7FFFFH

MOVX @DPTR,A

2)74LS245。

74LS245是一种三态输出的八总线收发/驱动器,无锁存功能。它的G端和DIR端是控制端,当它的G端为低电平时,如果DIR为高电平则74LS245将A端数据传送至B端,如果DIR为低电平则74LS245将B端数据传送至A端,在其它情况下不传送数据,并输出高阻态。

可以利用74LS245这一特性扩展并行输入口。如图9-4使用了一片74LS245扩展输入口,如果将未使用到的地址线都置为1则可以得到该片74LS245的地址为7FFFH。如果单片机要从该片74LS377输出数据的可以执行如下指令:

MOV DPTR,#7FFFFH

MOVX A,@DPTR

2、8255A可编程I/O接口设计及扩展技术

8255A是一种常见的8位可编程并行接口芯片,本接将着重介绍8255A的工作原理、编程方式和应用。

1)8255A芯片的结构

引脚功能如下:

RESET:复位信号输入端,高电平有效,有效时清除8255A内部寄存器,

同时三个端口自动设为输入端;

D 0-D

7

:数据线;

V

CC

:电源;

GND:接地线。

PA: A组8位I/O口;

PB: B组8位I/O口;

PC: C组8位I/O口,还具备其它控制功能;

CS:片选信号输入线,低电平有效;

RD:读选通信号输入线,低电平有效;

WR:写选通信号输入线,低电平有效;

A0A1:端口信号选择端,用于决定当前对哪一个端口进行操作,2)8255A的控制字和工作方式

8255A共有三种工作方式:方式0、方式1和方式2。方式0为基本的输入输出方式,方式1为有应答的单向输入输出方式,方式2为有应答的双向输入输出方式。

方式0

方式0为基本的输入输出方式。8255A的PA、PB、PC

0-3、PC

4-7

可以分别被定义方式0输

入和方式0输出。方式0输出具有锁存功能,输入没有锁存功能,因此方式0适合于无条件传送一组数据,比如可以读一组开关状态、控制一组指示灯,这种工作方式下,CPU可以随时读入开关状态,也可以随时将一组数据送指示灯显示。

方式1

方式1为有应答的单向输入输出方式。8255A的PA、PB可以分别被定义方式1输入和方式1输出,PC的某些位作为状态控制线和应答信号,剩余的线可以作为I/O口使用。

方式2

方式2为有应答的双向输入输出方式。只有8255A的PA可以分别被定义方式2,PC的某些位作为状态控制线和应答信号,剩余的线可以作为I/O口使用。

3)8255A的控制字

8255A由两种控制字:方式控制字和PC口的复位/置位控制字。这两个控制字的地址一样,它们的差别在于方式控制字的最高位为1,PC口的复位/置位控制字的最高位为0。3、8255A应用举例

8255A可以直接与MCS-51系列的单片机进行接口。

1)方式0应用

如图9-13是8051扩展8255A的接口逻辑图,要求控制接于PA口上的8各指示灯,实现LO~L3灭,L4~L7亮。

计算8255A相关的地址,在图9-13中8255A的A0、A1分别接地址总线的A0、A1,片选端CS接P2.7口,根据表9-1可以计算出8255A的PA口的地址为7FFCH、PB口的地址为7FFDH、PC口的地址为7FFDH、控制字口的地址为7FFFH。

确定8255A的工作方式,根据要求可以采用PA口方式0输出。

决定如何控制,从图9-13可以看出,当PA口的某一位输出高电平时指示灯将灭,当PA

口的某一位输出低电平时指示灯将亮,如果要实现LO~L3灭,L4~L7亮,则要求PA口输出0FH。

根据以上分析可以编制如下子程序:

LED: MOV DPTR,#7FFFH ;写方式控制字,PA口方式0输出

MOV A,#80H

MOVX @DPTR,A

MOV DPTR,#7FFCH ;往PA口写数,控制灯

MOV A,#0FH

MOVX @DPTR,A

RET

2)方式1应用

如图9-14是8051扩展8255A的另一种接口逻辑图,要求根据外部设备的输入信号控制接于PA口上的8各指示灯,当外部设备输入0时L0亮,其它灭;输入1时L1亮,其它灭;……当外部设备输入值大于7时所有灯全灭。当外部设备输入数值后,会产生一负脉冲。

与前一例一样根据接线图可以确定8255A相关的地址,PA口的地址为7FFCH、PB口的地址为7FFDH、PC口的地址为7FFDH、控制字口的地址为7FFFH。

根据要求可以决定8255A的工作方式:PA口方式0输出,PB口方式1输入。

根据要求可以编制出如下完整程序:

LED: LJMP MAIN

ORG 0003H

LJMP INT_0

MAIN: MOV SP,#60H ;初始化中断相关参数

MOV IE,#81H

MOV DPTR,#7FFFH ;写方式控制字,PA口方式0输出,PB口方式1输入

MOV A,#86H

MOVX @DPTR,A

MOV A,#05H ;将PC2置为1,允许中断

MOVX @DPTR,A

SJMP $ ;等待外部设备输入数据

INT_0: MOV DPTR,#7FFDH ;从PB口读数据

MOVX A,@DPTR

MOV DPTR,#7FFCH ;准备对PA口操作

CJNE A,#08H,NOR

JNC DARK ;读入的数大于或等于8,所有灯全灭

JZ OUT0 ;读入的数等于0,L0亮

MOV R7,A ;根据读入的数控制灯

MOV A,#0FEH

PRE: RLC A

DJNZ R7,PRE

SJMP EXIT

OUT0: MOV A,#0FEH

SJMP EXIT

DARK: MOV A,#0FFH

EXIT: MOVX @DPTR,A

RETI

END

3、8155可编程接口及扩展技术

8155是一种较为常用的斩和扩展器件,它内部有如下资源:

256字节的静态RAM从存储器;

三个可编程的通用的输入输出口,其中PA、PB口为8位,PC口为6位,同时PC口还可以作为控制和状态口使用;

有一个14位的定时器/计数器。

1)8155芯片的结构

其引脚功能如下:

RESET:复位信号输入端,高电平有效,复位后三个端口被设为输入端;

AD

0-AD

7

:数据、地址复用总线,该总线采用分时复用的方法实现传输地址

和数据信息;

V

CC

:电源;

GND:地线。

PA: A组8位I/O口;

PB: B组8位I/O口;

PC: C组6位I/O口,还具备其它控制功能;

CS:片选信号输入线,低电平有效;

IO/M: I/O口和RAM选择线,当该端输入0(低电平)时选中8155的片

内RAM,当该端输入1(高电平)时选中8155的片内其它资源:

I/O口、定时/计数器、命令/状态寄存器,;

RD:读选通信号输入线,低电平有效;

WR:写选通信号输入线,低电平有效;

ALE:地址锁存允许信号。该信号在下降沿时将AD

0-AD

7

总线上的状态

锁存到8155内部锁存器中;

TIMER IN:定时/计数器输入端;

TIMER OUT:定时/计数器输出端;

2)8155的RAM和I/O端口寻址方法及应用

8155在单片机应用扩展系统中的编址是和外部数据存储器进行统一编址的,由于8155有地址锁存允许信号ALE,因此在实际使用时可以将单片机的P0口与AD0-AD7相接,单片机的ALE端与8155的ALE端相连,具体的读写操作见表9-2:

在使用时只要根据表9-2计算出要操作单元的地址,就可以使用MOVX指令对该单元进行读写操作。

3)命令字及状态字的格式及用法

8155的命令字和状态字寄存器共用一个地址,命令字寄存器只能写不能读,状态字寄存器只能写不能写。

图9-16和9-17详细的说明了8155命令字和状态字的格式。

4)8155可编程接口控制应用

8155的PA口、PB口、PC口和定时器/计数器都是可以通过编程来实现不同的功能,其中并行口具有多种工作方式,具体的工作方式定义可以根据图9-16的8155命令字设定。8155并行口的工作方式与8255A并行口的工作方式一致。

5)8155内部定时器应用

8155的定时器/计数器是一个14位的减法计数器。它的计数初值可以为0002H~3FFFH,最高计数速率为4MHZ。

使用8155的定时器/计数器时,可以通过对定时器/计数器的高低字节寄存器编程实现设置其工作方式和计数初值,通过设置8155的命令字可以实现启动、停止定时器/计数器。(三)习题与思考题

1、在一个系统中采用同一个地址扩展一片74LS377作为输入口和一片74LS245作为输出口。

2、在一个系统中扩展一片8255A,试编制8255A的初始化程序:A口方式0输出,B口方式1输入。

3、在一个系统中扩展一片8155,试编制8155的初始化程序:A口为选通输出,B口基本I/O输入。

4、在一个系统中扩展一片8155,如果TI的输入脉冲为1MHZ,希望从TO输出频率为10KHZ 的方波。

1单片机并口简单应用(流水灯)

试验1 单片机并口简单应用(流水灯) 实验目的 1、了解单片机C语言程序的基本结构 2、了解单片机C语言程序的设计和调试方法 3、掌握顺序控制程序的简单编程 4、熟悉51单片机的端口使用 实验仪器 单片机开发试验仪、稳压电源、计算机 实验原理 1、硬件电路 如图1所示,流水灯硬件电路由发光二极管、单片机并口(P0)、限流电阻等组成。发光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,二极管公共端阳极就接成高电平,然后再按一定规则从P0口输出数据,发光二极管就会点亮。 图1 流水灯电路图 2、程序流程图如下。

实验内容:1、开发板接线图 延时 P0口初态循环右移1位 P0口状重新赋值0XFE 开始 P0口输出0XFE P0是否等于0X00 Y N

2、开发环境设置 打开keil软件,版本μ Vision2 ,μvision3,μvision4 都一样,在这里用μvision4版本演示,打开之后如下图,有的时候会默认打开上次使用的工程,单击Project 菜单,选择 Close Project 关闭了默认打开的工程,显示下图界面: 我们要建立新的工程,选择Project→ newμ vision projiect… 选择工程要保存的路径,输入工程文件名,如图

点击保存后会弹出一个对话框,要求用户选择单片机型号,可以根据用户使用的单片机来选择,我们使用的STC90单片机是兼容51内核的,Keil C51 几乎支持所有的51内核单片机,51内核具有通用型,如果程序用的资源不是太复杂,我们可以选择任意一款51单片机内核就行。例程以添加Atmel 的AT89C51来说明。如图,然后,单击确定(OK)。 功能描述 如果出现下面的界面:单击是就可以,意思是将单片机的启动代码添加到工程,我们不用修改。 到目前我们还没建立一个完整的工程,只是有工程的名字,框架,工程中还没有任何文件代码,(除了启动代码,有的keil 版本不显示启动代码),接下来我们添加文件及代码。 单击菜单File→New 选项,或者单击界面上的快捷图标,新建文件串口如下。

-单片机的并行扩展技术

第六章单片机的并行扩展技术 6·1 什么是并行外围扩展? 并行外围扩展有哪两种方式?这两种方式本质上的区别是什么? 答:(1)并行外围扩展 单片机的并行外围扩展是指单片机与外围扩展单元采用并行接口的连接方式,数据传输为并行传送方式。并行扩展体现在扩展接口数据传输的并行性。 (2)并行外围扩展的方式 并行外围扩展方式有两种I/O方式与总线方式。题图6-1是80C5l两种并行外围扩展接口示意图。图中的并行口数据宽度为8位。 ①并行I/O口方式: I/O口并行扩展由I/O口完成与外围功能单元的并行数据传送任务,单片机与外围功能单元数据传送过程中的握手交互也由I/O口来完成的。 ②并行总线方式:并行扩展采用三总线方式,即数据传送由数据总线DB完成;外围功能单元寻址由地址总线AB完成;控制总线CB则完成数据传输过程中的传输控制,如读、写操作等。 (3)两种方式本质上的区别 两种并行外围扩展方式本质上的区别列于题表6-1中。 6·2 单片抗应用系统中有哪几种键盘类型?为什么这些键盘都是通过I/O 口扩展? 答: (1)单片机应用系统中的键盘类型 与通用计算机键盘相比,单片机应用系统中的键盘种类很多,键盘中按键数量的设置依系统操作要求而定。一般说来,单片机应用系统中键盘有独立式和行列式两种,如题图6-2 所示。

题图6-2 ①独立式键盘: 独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立如题图6-2(a)所示。I/O口通过按键与地相连。I/O口有上拉电阻,无键按下时,引脚端为高电平;有键按下时,引脚端电平被拉低。1/0端口有内部上拉电阻时,外部可不接上拉电阻。 ②行列式键盘: 行列式键盘采用行列电路结构。行列交点处通过按键相连,列线为输出口,行线为输人口,如题图6-2(b)所示。列线口输出全零电平时,若没有键按下则行线引脚上全部为高电平"1"状态;若有任何一个按键按下则行线引脚上为非全"1"状态;在有键按下后,通过列线逐个送"0",然后逐行检查哪根行线为"0"状态,即可查出是哪个键按下。 (2)键盘通过I/O口扩展 键盘所采用的I/O口并行扩展电路都是外设接口的典型电路。这类接口只有操作原理 时序,没有器件的时序协议,故而都适宜于通过I/O口扩展。 6·3 请叙述行列式键盘的工作原理。中断方式与查询方式的键盘其硬件和软件有何不同? 答: (1)行列式键盘的工作原理 行列式键盘采用行列电路结构。行列交点处通过按键相连,列线为输出口,行线为输入口,如题图6-2(b)申所示。 其工作原理是:列线口输出全零电平时,若没有键按下则行线引脚上全部为高电平"1"状态,若有任何一个按键按下则行线引脚上为非全"1"状态;在有键按下后,通过列线逐个送"0",然后逐行检查哪根行线为"0"状态,即可查出是哪个键按下。 (2)中断方式与查询方式的键盘的区别 单片机对键盘的操作方式可分为查询方式和中断方式。题图6 - 2中为查询方式键盘的接口电路; 题图6-3所示为中断方式键盘的接口电路。 在查询方式中,单片机要不断查询键盘中有无键按下。中断方式下单片机不必查询键盘情况,只需开放键盘中断请求。当有键按下时,会请求中断,在中断服务程序中再检查是哪个键按下。

第3章 单片机并行存储器扩展练习题

第3章单片机并行存储器扩展 (一)填空题 1.使用8KB×8位的RAM芯片,用译码法扩展64KB×8位的外部数据存储器,需要(8) 片存储芯片,共需使用(16 )条地址线,其中(13 )条用于存储单元选择,(3)条用于芯片选择。 2.三态缓冲器的三态分别是(低电平)、(高电平)和(高阻抗)。 3.80C51单片机系统整个存储空间由4部分组成,分别为(256 )个地址单元的内部(数 据)存储器,(4kb )个地址单元的内部(程序)存储器,(64kb)个地址单元的外部(数据)存储器,(60kb )个地址单元的外部(程序)存储器。 4.在80C51单片机系统中,为外扩展存储器准备了(16)条地址线,其中低位地址线由 (p0口)提供,高位地址线由(P2口)提供。 5.在80C51单片机系统中,存储器并行外扩展涉及的控制信号有(ALE)、(WR)、 (RD)、(PSEN)和(CE),其中用于分离低8位地址和数据的控制信号是(ALE),它的频率是晶振频率的(6)分之一。 6.起止地址为0000H ~ 3FFFH的外扩展存储器芯片的容量是(16KB)。若外扩展存 储器芯片的容量为2KB,起始地址为3000H,则终止地址应为(37FFH)。 7.与微型机相比,单片机必须具有足够容量的程序存储器是因为它没有(外存)。 8.在存储器扩展中,无论是线选法还是译码法,最终都是为扩展芯片的(片选)引脚端 提供信号。 9.由一片80C51和一片2716组成的单片机最小系统。若2716片选信号CE接地,则该存 储芯片连接共需(11)条地址线。除数据线外,系统中连接的信号线只有(PSEN)和(ALE)。 (二)单项选择题 1. 下列有关单片机程序存储器的论述中,错误的是(D) (A)用户程序保存在程序存储器中 (B)断电后程序存储器仍能保存程序 (C)对于程序存储器只使用MOVC一种指令 (D)执行程序需要使用MOVC指令从程序存储器中逐条读出指令 2. 下列有关单片机数据存储器的论述中,错误的是(A)

单片机并行口实验报告

单片机并行口实验报告

实验二并行口实验报告 班级: 学号: 姓名: 教师:

一、实验目的 通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。 二、实验内容 1、输出实验 如图4-1所示。以8031的P2口为输出口。通过程序控制发光二极管的亮灭。 2、输入实验 如图4-1所示。以8031的P1口为输入口。用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。 3、查询输入输出实验 如图1-1所示。以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。

图1-1 三、编程提示 1、输出实验程序 (1)设计一组显示花样,编程使得P2口按照设计的花样重复显示。 (2)为了便于观察,每一状态加入延时程序。 2、输入实验程序 开关打开,则输入为1;开关闭合,则输入为0。读取P1.0~ P1.3的状态,并将它们输出到P2.4~ P2.7,驱动发光二极管。所以发光二极管L1~L4的亮灭应与开关P1.0~ P1.3的设置相吻合。 3、查询输入输出程序 (1)编程计数P1.0按键次数,按键不去抖动。 (2)编程计数P1.6按键次数,按键不去抖动。 (3)编程计数P1.0按键次数,按键软件延时去抖动。 观察(1)、(2)、(3)、的结果。 四、实验器材 计算机,目标系统实验板 五、实验步骤 1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。 2、断开电源,按图1-1所示,连好开关及发光二极管电路。

3、下载程序。 4、调试运行程序,观察发光二极管状态。 六、C源程序清单 1、#include #define uchar unsigned char #define ON 0 #define OFF 1 sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit led4=P2^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void delay1(void); void main(void) { led1=led2=led3=led4=led5=led6=led7=led8=O FF; while(1) { led1=led8=ON; delay1(); led2=led7=ON;

MCS-51单片机存储器的扩展

第八章MCS-51单片机存储器的扩展 第一节MCS-51单片机存储器的概述 (一)学习要求 1、熟悉MCS-51 单片机的系统总线及系统总线扩展结构 2、掌握常用的片选方法:线选法和全地址译码法。 (二)内容提要 1、三总线的扩展方法 单片机内资源少,容量小,在进行较复杂过程的控制时,它自身的功能远远不能满足需要。为此,应扩展其功能。 MCS-51单片机的扩展性能较强,根据需要,可扩展。三总线是指地址总线、数据总线、控制总线。 1)地址总线 MCS-51 单片机地址总线宽度为16 位,寻址范围为64K。 地址信号:P0 作为地址线低8 位,P2 口作为地址线高8 位。 2)数据总线 MCS-51 单片机的数据总线宽度为8 位。 数据信号:P0 口作为8 位数据口,P0 口在系统进行外部扩展时与低8 位地址总线分时复用。 3)控制总线 主要的控制信号有/WR 、/RD 、ALE 、/PSEN 、/EA 等。 2、系统的扩展能力 MCS-51 单片机地址总线宽度为16 位,因此它可扩展的程序存储器和数据存储器的最大容量是64K(216)。 1)线选法 线选法就是将多余的地址总线(即除去存储容量所占用的地址总线外)中的某一根地址线作为选择某一片存储或某一个功能部件接口芯片的片选信号线。一定会有一些这样的地址线,否则就不存在所谓的“选片”的问题了。每一块芯片均需占用一根地址线,这种方法适用于存储容量较小,外扩芯片较少的小系统,其优点是不需地址译码器,硬件节省,成本低。缺点是外扩器件的数量有限,而且地址空间是不连续的。 2)全地址译码法 由于线选法中一根高位地址线只能选通一个部件,每个部件占用了很多重复的地址空间,从而限制了外部扩展部件的数量。采用译码法的目的是减少各部件所占用的地址空间,以增加扩展部件的数量。 3)译码器级连 当组成存储器的芯片较多,不能用线选法片选,又没有大位数译码器时,可采用多个小位数译码器级连的方式进行译码片选. 4)译码法与线选法的混合使用 译码法与线选法的混合使用时,凡用于译码的地址线就不应再用于线选,反之,已用于线选的地址线就不应再用于译码器的译码输入信号. (三)习题与思考题 1. 简要说明MCS-51 单片机的扩展原理。

单片机实验-单片机并行IO口的应用实验

单片机并行I/O口的应用实验 一、实验目的 1、熟悉Proteus软件和Keil软件的使用方法。 2、熟悉单片机应用电路的设计方法。 3、掌握单片机并行I/O口的直接应用方法。 4、掌握单片机应用程序的设计和调试方法。 二、实验内容或原理 1、利用单片机并行I/O口控制流水灯。 2、利用单片机并行I/O口控制蜂鸣器。 三、设计要求 1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口 线上分别接LED0至LED7八个发光二极管,在P3.0口线上 接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。 四、实验报告要求 1、实验目的和要求。 2、设计要求。 3、实验程序流程框图和程序清单。 4、电路原理图。 5、实验结果 6、实验总结。 7、思考题。 五、思考题 1、编程实现LED0至LED7以十六进制计数规律亮灯? 原理图:

程序清单: /*(1)LED0~LED7以秒速率循环右移 蜂鸣器逐位报警*/ ORG 0000H MAIN:MOV A, #11111110B;赋初值 LOOP:MOV P1,A ;赋值给P1口 CPL P3.0 ;低电平有效 LCALL DELAY ;调用延时电路 SETB P3.0 ;控制蜂鸣器叫的时间间隔 LCALL DELAY RL A LJMP LOOP DELAY:MOV R7,#0FFH LOOP1:MOV R6,#0F4H LOOP2:MOV R5,#02H DJNZ R5,$ ;"$"当前的PC值,R5的内容减1不为零,继续执行该语句 DJNZ R6,LOOP2 DJNZ R7,LOOP1 RET END /*(2)LED0~LED7以十六进制计数规律亮灯*/ ORG 0000H MOV A,#0FFH LOOP: MOV P1,A LCALL DELAY DEC A CJNE A, #0FFH,LOOP MOV A, #0FFH LJMP LOOP DELAY:MOV R7, #0A7H LOOP1:MOV R6, #0ABH LOOP2:MOV R5, #10H DJNZ R5, $ ;"$"当前的PC值。R5的内容减1不为零 DJNZ R6, LOOP2 DJNZ R7, LOOP1 RET END

单片机并口扩展

单片机IO口扩展技术 2010-05-09 18:13 0 引言 在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,占领了工业测控和自动化工程应用的主要市场,并成为国内单片机应用领域中的主流机型。 MCS-51单片机的并行口有P0、P1、P2和P3,由于P0口是地址/数据总线口,P2口是高8位地址线,P3口具有第二功能,这样,真正可以作为双向I/O口应用的就只有P1口了。这在大多数应用中是不够的,因此,大部分MCS-51单片机应用系统设计都不可避免的需要对P0口进行扩展。 由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机就可以像访问外部RAM存储器单元那样访问外部的P0口接口芯片,以对P0口进行读/写操作。用于P0口扩展的专用芯片很多。如8255可编程并行P0口扩展芯片、8155可编程并行P0口扩展芯片

等。本文重点介绍采用具有三态缓冲的74HC244芯片和输出带锁存的74HC377芯片对P0口进行的并行扩展的具体方法。 1 输入接口的扩展 MCS-51单片机的数据总线是一种公用总线,不能被独占使用,这就要求接在上面的芯片必须具备“三态”功能,因此扩展输入接口实际上就是要找一个能够用于控制且具备三 态输出的芯片。以便在输入设备被选通时,它能使输入设备的数据线和单片机的数据总线直接接通;而当输入设备没有被选通时,它又能隔离数据源和数据总线(即三态缓冲器为高阻抗状态)。 1.1 74HC2244芯片的功能 如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如图1所示。

单片机并行I-O口的扩展方法

单片机并行I/O口的扩展方法 摘要:由于在MCS-51单片机开发中P0口经常作为地址/数据复用总线使用,P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等)使用,所以对于51单片机的4个I/O口,其可以作为基本并行输入/输出口使用的只有P1口。因此在单片机的开发中,对于并行I/O口的扩展十分重要,主要分析3种扩展并行I/O口的方法。关键词: MCS-51单片机; 并行I/O口; 扩展 MCS-51单片机有4个并行的I/O口,分别为P0口、P1口、P2口和P3口,4个并行I/O 口在单片机的使用中非常重要,可以说对单片机的使用就是对这4个口的使用。这4个并行I/O口除了作为基本的并行I/O口使用,还常作为其他功能使用,如P0口经常作为地址/数据复用总线使用[1], P2口作为高8位地址线使用,P3口用作第二功能(定时计数器、中断等等)使用。这样,单片机只有P1口作为基本的并行I/O口使用,如果在单片机的使用中对并行I/O口需求较多,对于并行I/O口的扩展就非常重要了。下面通过具体的实例(8位流水灯设计)来给出几种不同的并行I/O口扩展方法。为了更好地说明以下几种不同的并行I/O口扩展方法,假设利用单片机实现流水灯的设计。采用单片机的P1口设计流水灯,电路。 由图1可知,8只LED直接连接在单片机的P1口上,通过对单片机进行编程即可以实现8只发光二极管产生流水灯。1 使用单片机的串行口扩展并行I/O口单片机有一个全双工的串行口[2],这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为移位寄存器使用。当单片机的串行口工作在模式0时,若外接一个串入/并出的移位寄存器(74LS164),就可以扩展一个8 bit并行输出口;若外接一个并入/串出的移位寄存器(74LS165),就可以扩展一个8 bit并行输入口。,单片机外接一个串入/并出的移位寄存器(74LS164),这样就可以扩展8 bit并行输出口。 当单片机的串行口工作在模式0(作为移位寄存器使用)时需要注意:单片机原来的串行通信引脚RXD和TXD在这种工作方式下给出新的定义,原来用于串行接收数据的引脚RXD在这种工作模式下既可以接收也可以发送数据; 原来的串行发送引脚TXD在这种工作模式下则作为移位寄存器的脉冲输入端使用(通常接时钟端)。单片机和串入/并出移位寄存器74LS164的连接:单片机的串行通信接收引脚RXD连接到串入/并出移位寄存器74LS164的输入引脚;单片机的串行通信发送引脚TXD连接到串入/并出移位寄存器74LS164的脉冲输入端;串入/并出移位寄存器74LS164的输出引脚连接8只发光二极管。这样,选择单片机的串行口工作模式0,通过通信引脚RXD发送实现流水灯的串行数据,然后通过74LS164转换成并行数据后传送给发光二极管,即可实现流水灯。这里需要注意74LS164数据的转换时间问题。从图2可以看出,同样设计一个8位流水灯,采用上述方法只需要使用单片机的两个串行通信引脚RXD和TXD就可以完成。此时,对于P3口的其他位可以作为第二功能使用(定时、中断等)。2 使用8255A(或8155)扩展并行I/O口可编程并行接口芯片8255A[3]有3个并行的I/O口,分别为PA、PB和PC,这3个并行I/O口都可以通过编程决定它们的工作情况。8255A与单片机的连接。 从图3中可以看出单片机与8255A的连接情况,利用单片机的P0口来分时传送地址和数据:P0口与8255A的8 bit数据线连接,用来传送数据和8255A的编程控制字;P0口连接地址锁存器74LS373输入端,74LS373的输出端连接8255A 的地址线A0、A1和片选信号CS。通过A0、A1(即P0.0、P0.1)的4种不同组合(00~11)选择8255的3个并行的I/O口之一和控制口。这样,通过对单片机和8255A编程,即可实现流水灯。从图3可知,利用这种方法

单片机并口简单应用(流水灯)实验报告.doc

实验一单片机并口简单应用(流水灯) 实验目的 1、了解单片机汇编语言程序的基本结构 2、了解单片机汇编语言程序的设计和调试方法 3、掌握顺序控制程序的简单编程 实验仪器 单片机开发板、万利仿真机、稳压电源、计算机 实验原理 1、流水灯硬件电路 如图4-1所示,流水灯硬件电路由移位寄存器74LS164、功能选择开关J502、二极管、三极管、单片机并口(P0)、限流电阻等组成。发光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。因此,通过程序控制74LS164的Q0端。Q0端输出0,公共端阳极就接成高电平,然后再按一定规则从P0口输出数据,发光二极管就会点亮。 图4-1 流水灯电路图 2、单片机流水灯程序设计 由上图可知,发光二极管要点亮,需要先把J502的2、3脚相连,三极管Q500导通,然后从P0口输出数据。 (1)控制三极管导通程序 控制三极管有两种方法,第一种:在74LS164的第8脚产生一个正脉冲,此时1脚为0,三极管就导通;为1,三极管就截止。 第二种:在单片机IO模拟74LS164时序,一次输出一个字节,只要Q0=0即可控制三极管开通。为1,三极管截止。

两种方法的程序流程如图4-2所示。 图4-2 流水灯位选信号控制 (2)产生流水灯效果程序 三极管导通后,就可以从P0口输出数据控制发光二极管。P0口输出数据既可以编写程序逐个输出,也可以将输出数据序列定义在存储器中,然后用读程序存储器指令逐个取出并输出到P0口。 程序流程图如图4-3所示。 图4-3 流水灯程序流程图

实验内容 1、直接输出法输出数据序列 2、查表法输出数据序列 实验步骤及调试信息 1、新建实验项目shiyan1 2、输入实验程序并补充完整 3、编译下载实验程序,并修改错误(按附录说明) 原因:缺少主程序 4、加入主程序重新产生代码并装入,出现以下错误。

第04讲:MCS-51单片机的并行IO口M

单片机技术 电气学院:易先军第02章:MCS-51单片机结构原理 RE: ●硬件编程结构及引脚[已介绍] ●CPU主要部件与特殊功能寄存器(SFR)[已介绍] ●片内外存储器的组织结构和编址[已介绍] ●并行I/O口【本次课内容!】 ●中断及中断系统 ●定时/计数器、串行口(外设) 4、MCS51单片机的并行I/O口 所谓并行I/O口,即各位的数据同时被输入或输出,它的最大特点是速度快。 (1)结构特点 MCS-51系列单片机的32根I/O线分为四个双向并行口P0~P3,每根I/O 线由一个锁存器(相当于特殊功能寄存器中的一位),一个输出驱动器(场效应管FET)和一个输入缓冲器(三态门)组成。由于功能的不同,P0~P3各口的结构有所区别。各锁存器由D触发器构成,在CPU“写锁存器” 信号的作用下,内部总线的数据写入D触发器。两个三态门分别用来读锁存器或读引脚的信息。 P1、P2、P3口均有内部上拉电阻,而P0口的引脚是通过场效应管接到VCC。显然,当P0口的上、下两只场效应管均关断时,引脚相当于“浮空”状态,即可作为高阻抗的输入端口(∴P0口为真正的双向口)。P0、P2口的驱动器的输出与多路转换器MUX的状态有关,P3口的驱动器也与输出功能的类型有关,这些均为这些端口的多重作用创造了条件。(2)输入功能 单片机有两种读一个端口的方法:读锁存器和读引脚。 ①读锁存器:在CPU“读锁存器”信号的作用下,锁存器的 状态通过三态门送到内部总线,然后读到CPU中进行处理,而处理后的值将被重新写入锁存器。能实现这种功能的指令称为“读—修改—写”指令,它们有: ANL(逻辑与指令) 例如:ANL P1,A ORL(逻辑或指令) 例如:ORL P2,A XRL(逻辑异或指令) 例如:XRL P3,A INC(增量指令) 例如:INC P2 DEC(减量指令) 例如:DEC P1 DJNZ(循环判跳指令)例如:DJNZ P2,LOOP JBC(位测试转移指令)例如:JBC P1. 1, LOOP MOV(位传送指令) 例如:MOV P1.3, C CPL(位取反指令) 例如:CPL P1.0 CLR (位清“0”指令) 例如:CLR P1.0 SETB(位置位指令) 例如:SETB P3.3 !读锁存器操作的共同点(特征):先读入并行I/O口锁存器中的内容,作一定的修改,然后再写入该口的锁存器中(读出—修改—写回)。 上述的后五条指令,属于位操作指令,实际上也是先要将8位锁存器的内容一起读入,再按指定位进行修改,然后再一起写入锁存器中。②CPU“读引脚”信号时,接在该端口引脚的外部信号通过三态门读到内部总线,并送CPU处理,因而实现了数据的输入。 但必须注意,在读引脚时,该端口的锁存储器必须事先写“1”。这是因为该端口既是输出端同时也是外部信号的输入端。比如:假设该端口的状态此时为0,则驱动器的下方场效应管会导通,此时相当于输出“0”;如果有一外部输入信号是高电平且加到该引脚上,则该引脚会被强行箝拉到低电平,故造成读到CPU中的数据为“0”,同时也可能造成器件损坏! 而事先给锁存器写“1”,对于P0口,此时上、下两只场效应管均夹断,则构成高阻输入;对于P1、P2和P3口,此时的输出给拉成高电平,故其电平状态取决于外部信号。(在复位时,各端口的锁存器均置成“1”!)

单片机串并口转换实验

我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能 #include 本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。实验者请按上图连接好实验电路。 #include

#include< intrins.h > #define uchar unsigned char #define uint unsigned int #define ulong unsigned long code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; sbit SO=P1^0; //定义165的输出 sbit STCP=P1^1; sbit DS=P1^2; sbit SHCP=P1^3; sbit SHLD=P1^4; sbit CLK=P1^5; sbit cs573=P1^6; /**************************************************/ void delay(ulong X) //延时函数,采用了形参传递函数

{ while(X--); } /**************************************************/ void LED(); //函数声明 /**************************************************/ void main() //主函数 { while(1) { LED (); } } /****************************************************/

单片机可编程并行接口芯片8255的应用实验

单片机可编程并行接口芯片8255的应用实验

一:实验目的和要求 1、掌握中断系统外部中断源的使用方法。 2、掌握延时程序的编程及使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二:设计要求 1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与8255接口。 2、在8255PA口或PB口的某一口线上产生周期500μS的连续方波,接示波器观察波形。 3、在8255PC口的PC0-PC3上接4个按键作输入,PC4-PC7上接4个发光二极管作输出,编程实现发光二极管正确指示按键的状态 三:电路原理 四:流程框图 五:实验结果 六:实验总结 通过本次试验,掌握了如何在单片机外部扩展I/O口,并且如何在程序中使用这些扩展出来的I/O口,为以后的学习和使用打下了一定的基础,存在的问题是在编写程序时不够熟练,需要多练习 七:思考题 1、在8255PC口上外接8个发光二极管,利用8255PC口的置位/复位控制字控制其按某种规律变化

四:流程框图 开始工作方式初始化开定时器 定时器初始化查询计数标志位溢出否 取反输出口A中内容送DPTR 设置C口命令DPTR指向控制位是否 开始DPTR指向C口C口内容送累加器DPTR指向控制位交换累加器内容 高低位累加器中内容送C 开始DPTR指向控制位A中内容送DPTR 定义查表执行次数查表数据送C口调用延时子程序 查询次数完否 否 是 修改变量值 1秒延时程序子程序返回 程序清单 ORG 0000H MOV DPTR, #0003H MOV A, #80H MOVX @DPTR, A MOV DPTR, #0000H MOV A, #0FFH MOVX @DPTR, A MOV IE, #00H MOV TMOD, #20H SETB TR1 MOV TL1, #06H MOV TH1, #06H LOOP0:JBC TF1, LOOP1 AJMP LOOP0 LOOP1:CPL ACC.0 MOVX @DPTR, A AJMP LOOP0 END

单片机IO口扩展技术

单片机IO口扩展技术 ] 0 引言 在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,占领了工业测控和自动化工程应用的主要市场,并成为国内单片机应用领域中的主流机型。 MCS-51单片机的并行口有P0、P1、P2和P3,由于P0口是地址/数据总线口,P2口是高8位地址线,P3口具有第二功能,这样,真正可以作为双向I/O口应用的就只有P1口了。这在大多数应用中是不够的,因此,大部分MCS-51单片机应用系统设计都不可避免的需要对P0口进行扩展。 由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机就可以像访问外部RAM存储器单元那样访问外部的P0口接口芯片,以对P0口进行读/写操作。用于P0口扩展的专用芯片很多。如8255可编程并行P0口扩展芯片、8155可编程并行P0口扩展芯片等。本文重点介绍采用具有三态缓冲的74HC244芯片和输出带锁存的74HC377芯片对P0口进行的并行扩展的具体方法。 1 输入接口的扩展 MCS-51单片机的数据总线是一种公用总线,不能被独占使用,这就要求接在上面的芯片必须具备“三态”功能,因此扩展输入接口实际上就是要找一个能够用于控制且具备三态输出的芯片。以便在输入设备被选通时,它能使输入设备的数据线和单片机的数据总线直接接通;而当输入设备没有被选通时,它又能隔离数据源和数据总线(即三态缓冲器为高阻抗状态)。 1.1 74HC2244芯片的功能 如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如图1所示。 74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1 C和2G都为低电平时,输出端Y和输入端A状态相同;当1G和2G都为高电平时,输出呈高阻态。

单片机并行IO口的应用实验

一、实验目的 1、熟悉Proteus 软件和Keil 软件的使用方法 。 2、熟悉单片机应用电路的设计方法 。 3、掌握单片机并行I/O 口的直接应用方法 。 4、掌握单片机应用程序的设计和调试方法。 二、设计要求 1、用Proteus 软件画出电路原理图。要求在P1.0至P1.7口线上分别接 LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。 三、实验程序流程框图和程序清单 延时程序流程框图: 延时程序入口 设置循环体1的循环次数为 设置循环体2的循环次数为 设置循环体3的循环次数为 判断循环体3是否到达循环次 数 判断循环体2是否到达循环次 数 判断循环体1是否到达循环次 数 执行循环体 N Y 执行循环体 Y N 返回 执行循环体 Y N

实验程序流程框图: 开始 初始化 #FE A,#FF P1,设置 循环次数为七次 (A) P1,延迟 左移一位 P3.0清零 延迟 再将 P3.0置1 判断是否循环7次 延迟,(A) P1,左移一 位 P3.0清零 延迟 再将 P3.0置1 判断是否循环7次N 设置循环次数为7次 Y N Y 结束

汇编程序: ORG 0000H MOV A, #11111110B MOV P3, #0FFH MAIN : MOV R0, #07H LOOP1: LCALL DELAY MOV P3, A RL A CLR P2.0 LCALL DELAY SETB P2.0 DJNZ R0, LOOP1 MOV R0, #07H LOOP2: LCALL DELAY MOV P3, A RR A CLR P2.0 LCALL DELAY SETB P2.0 DJNZ R0, LOOP2 LJMP MAIN DELAY: M OV R7, #17H DL1: MOV R6, #98H DL0: MOV R5, #46H DJNZ R5, $ DJNZ R6, DL0 DJNZ R7, DL1 RET END

C51单片机并行口扩展的设计与实现

第27卷第4期 辽 宁 工 学 院 学 报 V ol.27,No.4 2007年 8 月 Journal of Liaoning Institute of Technology Aug. 2007 收稿日期:2006-12-11 作者简介:郭延锋(1971-),女,河北涞源人,讲师。 C51单片机并行口扩展的设计与实现 郭延锋,王 昊,张 军 (辽宁工业大学 计算机科学与工程学院,辽宁 锦州 121001) 摘 要:介绍了C51单片机的基本功能,C51单片机有4个I/O 口,但真正可供用户使用的并行口,只有P1口。在此基础上以实例的方法介绍了一种C51单片机并行口的扩展方法,详述了其原理和设计思想,以此来满足较复杂的应用系统的使用。 关键词:选通信号;并行口;模拟信号 中图分类号:TP368 文献标识码:B 文章编号:1005-1090(2007)04-0242-02 Design and Realization of C51 Singlechip Parallel Interface Expanded GUO Yan-feng, WANG Hao, ZHANG Jun (Computer Science & Engineering College, Liaoning University of Technology, Jinzhou 121001, China ) Key words: strobe signal; parallel interface; analog signal Abstract: The basic function of C51 singlechip having 4 I/O interfaces was described. However, only P1 can be used as a parallel interface. Moreover, a sort of expanding method of parallel interface for C51 singlechip was presented based on the examples. Its principle and design idea were specified in detail so as to satisfy still more complicated application system. C51单片机是最常用的系列,MCS -51系列单片机有4个I/O 口(P0、P1、P2、P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口,只有P1口可用,用户不得不扩展并行口以满足实际的需要。 本文介绍的方法是将P1口扩展成一个或几个8位并行口,在每一个8位口上接入8个发光二极管作为输出,二极管是做开关量来使用的,在这里设计了软件程序,做到对开关量的开断控制。为配合开关量的控制本文设计了两个共阴极LED 数码管,用来显示当前发光二极管发亮的序号,做到更加直观的双重控制效果,然后再将P0口通过D/A 转换器和一放大器输出一个模拟信号,其结果可以通过示波器看出。这样整个系统既有数字信号输出和模拟信号输出,也有数码管显示功能,具有很强的实用性。 1 基于89C51的系统硬件设计 1.1 并行口扩展的电路设计 AT89C51单片机有4个I/O 口(P0、P1、P2、P3),通常仅使用P1口作为并行口,而令其余口(P2、P3)处于闲置状态,所以本文就是使用闲置不用的P2口作为选通信号线来将P1口进行并行口扩展。这种扩展并行口的方式,连线简单,不占用存储器空间,编程也方便灵活。在本文的设计中,采用芯片74HC573(带三态输出的八进制透明D 型锁存器)对P1口进行了一个8位并行口的扩展,选通信号选用P2口的P2.2引脚。 1.2 模拟信号输出的电路设计 模拟信号的输出需要用到D/A 转换器,本文使用最常用的8位D/A 转换器DAC0832来转换数字电压信号。因DAC0832是并行D/A 转换集成电路,

1单片机并口简单应用(流水灯)

试验1单片机并口简单应用(流水灯) 实验目的 1、了解单片机C 语言程序的基本结构 2、了解单片机C 语言程序的设计和调试方法 3、掌握顺序控制程序的简单编程 4、熟悉51单片机的端口使用 实验仪器 单片机开发试验仪、稳压电源、计算机 实验原理 1、硬件电路 如图1所示,流水灯硬件电路由发光二极管、单片机并口( P0)、限流电阻等组成。 发 光二极管连接成共阳极结构。发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。 因此,二极管公共端阳极就接成高电平,然后再按一定规则从 P0 口输出数据,发光二极管 就会点亮。 图1流水灯电路图 2、程序流程图如下。 RST KMC P0.1PC 1 刃河 P03W03 RIAM M 眄 邮 ras^s POFAMV P2.CA5 RStN P2JW1 羸 喙低1? F2J6M< 唧邓 P :JO PUMOD pf 1 P3.1O pf J 砰酗1: p:』 阴冊 PU 內如 Pr5 P3.SJ1 FJ6 P36vfi Pf.7 <3?TD - -rb 2 - -- fl- - _OJ- I ? Dr —- -R " "nl H 吧血 D5H R6渤 1 FL £ J Rv 渤 AT2K;1

开始 P0 口输出 OXFE P0 口状重新赋值OXFE 实验内容: 1、开发板接线图 ??????? ???????? ???????? / □ TT 2 ■ 二 I M e -t 4- w ? I t - % r 二 b t-f !I L O

2、开发环境设置 打开keil 软件,版本卩Vision2 ,口vision3,口vision4 都一样,在这里用口vision4 版本演示,打开之后如下图,有的时候会默认打开上次使用的工程,单击 F二吕wh Debus F怎忙二口丹曰ha■二李loo La ME u X-E-&n Fr?js-ct.?? Project 菜单,选择Close Project 关闭了默认打开的工程,显示下图界面: 我们要建立新的工程,选择Project T new卩vision projiect

单片机并行IO口的应用实验

一、实验目的 1熟悉Proteus软件和Keil软件的使用方法。 2熟悉单片机应用电路的设计方法。 3、掌握单片机并行I/O 口的直接应用方法。 4、掌握单片机应用程序的设计和调试方法。 二、设计要求 1用Proteus软件画出电路原理图。要求在P1.0至P1.7 口线上分别接LEDO至LED7八个发光二极管,在P3.0 口线上接一蜂鸣器。 2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。 三、实验程序流程框图和程序清单 延时程序流程框图 Y 返回

实验程序流程框图

汇编程序 ORG 0000H MOV A, #11111110B MOV P3, #0FFH MAIN : MOV RO, #07H L00P1: LCALL DELAY MOV P3, A RL A CLR P2.0 LCALL DELAY SETB P2.0 DJNZ R0, LOOP1 MOV R0, #07H L00P2: LCALL DELAY MOV P3, A RR A CLR P2.0 LCALL DELAY SETB P2.0 DJNZ R0, LOOP2 LJMP MAIN DELAY: MOV R7, #17H DL1: MOV R6, #98H DL0: MOV R5, #46H DJNZ R5, $ DJNZ R6, DL0 DJNZ R7, DL1 RET END C语言程序: #in clude #i ncludevi ntri ns.h> un sig ned char temp; int i; void delay(void); sbit speaker=P2A0; void mai n() { temp=0xfe; P3=temp;

相关文档
最新文档