8051单片机教程

合集下载

8051单片机程序设计

8051单片机程序设计

8051单片机程序设计8051单片机是一种广泛应用于嵌入式系统中的微控制器。

它由英特尔公司在20世纪80年代推出,现在已经成为了嵌入式系统设计中最常用的单片机之一。

本文将介绍8051单片机程序设计的基本原理和方法。

8051单片机程序设计主要涉及到三个方面:硬件设计、软件设计和系统调试。

首先,我们需要通过硬件设计来搭建一个适合单片机工作的电路。

通常,我们会使用外部晶振来提供时钟信号,以确保单片机能够按照我们预期的速度运行。

此外,我们还需要为单片机提供适当的电源和外部存储器。

这些硬件设计的要点在此不再赘述,读者可以参考相关资料深入了解。

在硬件设计完成后,我们就可以开始编写单片机的软件了。

8051单片机程序设计主要使用汇编语言或C语言进行编程。

汇编语言是一种底层的机器语言,直接操作单片机的寄存器和指令集。

相比之下,C语言更加高级,提供了许多方便的编程工具和函数库。

因此,大多数人更倾向于使用C语言进行单片机程序设计。

无论我们选择使用汇编语言还是C语言进行编程,我们都需要掌握8051单片机的指令集。

8051单片机的指令集包括了大量的指令,可以进行各种运算、逻辑判断和数据传输等操作。

我们需要根据具体的需求选择合适的指令进行编程。

例如,如果我们需要将一个数值存储到内存中,我们可以使用MOV指令来实现。

而如果我们需要进行条件判断,我们可以使用JMP或JZ等分支指令来实现。

在编写单片机程序时,我们还需要注意内存的分配和使用。

由于8051单片机的存储空间有限,我们需要合理地分配内存空间,以避免程序运行时的内存溢出或冲突。

为了提高程序的效率,我们还可以使用一些优化技巧,如循环展开和指令重排等。

在编写完程序后,我们需要通过系统调试来验证程序的正确性。

调试是一个迭代的过程,我们需要不断地检查程序的错误和优化程序的性能。

为了方便调试,我们可以使用调试工具,如仿真器或调试器,来监控程序的执行过程。

通过这些工具,我们可以逐步执行程序,查看寄存器和内存的值,以及输出的结果,从而找出程序中的错误和问题。

8051单片机实训指导书

8051单片机实训指导书

单片机实验指导书基础部分实训1 认识单片机一、单片机概述一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM (数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。

在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。

而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。

二、单片机的外部结构(1)单片机的引脚拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。

电源:这当然是必不可少的了。

单片机使用的是5V电源,其中正极接40引脚,负极(地)接20引脚。

振蒎电路:单片机是一种时序电路,必须提供脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。

只要买来晶振,电容,连上就可以了,按图1-1接上即可。

复位引脚:按图1-1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。

EA引脚:EA引脚接到正电源端。

至此,一个单片机就接好,通上电,单片机就开始工作了。

图1-1(二)单片机芯片引脚功能1.主电源引脚(1)GND 接地(2)VCC正常操作时为十5V电源。

2.时钟电路引脚(1)XTAL1:(2)XTAL2:3.控制线与电源复用引脚(1)RST/VPD:RST是复位信号,高电平有效。

VPD为第二功能,即备用电源输入端。

(2)ALE/PROG:ALE为地址锁存允许信号输出引脚。

PROG为编程信号,第二功能,低电平有效。

(3)PSEN:片外ROM选通信号输出端,低电平有效。

(4)EA/VPP:EA为内部和外部ROM控制端当EA=1时,从内ROM开始访问当EA=0时,只访问外部ROMVPP是编程电源输入端4.并行输入/输出引脚(1)P0口:P0.0~P0.7统称为P0口(2)P1口:P1.0~P1.7统称为P1口(3)P2口:P2.0~P2.7统称为P2口(4)P3口:P3.0~P3.7统称为P3口P3口每一位可用作第二功能,而且P3口的每一条引脚都可以独立设置为第一功能的I/O口功能和第二功能。

51单片机超详细教程PPT(绝对值)

51单片机超详细教程PPT(绝对值)
必须使必须使rstrst引脚持续引脚持续22微秒微秒高电平高电平外部时钟外部时钟12mhz12mhz10111213142827262524232221201918171615101112131428272625242322212019181716151011121314151617181920403938373635343332313029282726252424222110111213142827262524232221201918171615ram626410111213142827262524232221201918171615ram626480318751805189c51ramramromrom256b字节4k1程序存储器程序存储器程序存储器内部外部0000h0fffh4k0000hffffh64k0000h0fffh4k0000h0001h0002hpc0000h是程序执行的起始单元在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003h000bh0013h001bh0023h002bh外部中断0定时器0中断外部中断1定时器1中断串行口中断0fffh0ffehea1ea0程序存储器资源分布中断入口地址在单片机c语言程序设计中用户无需考虑程序的存放地址编译程序会在编译过程中按照上述规定自动安排程序的存放地址
00
3区
外部
FFH 80H 7FH (低128B) 00H (高128B) 专用 寄存器 内部 RAM 0000H
1FH 18H 17H 10H 0FH 08H 07H 00H
2区
工作寄存器区
1区 0区
数据存储器
内部RAM存储器
RAM位寻址区位地址表
单元地址 MSB
2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 27H 26H 25H 24H 23H 22H 21H 20H 7F 77 6F 67 5F 57 4F 47 3F 37 2F 27 1F 17 0F 07 7E 76 6E 66 5E 56 4E 46 3E 36 2E 26 1E 16 0E 06 7D 75 6D 65 5D 55 4D 45 3D 35 2D 25 1D 15 0D 05

c8051f单片机教程

c8051f单片机教程

内容:西安科技大学科技创新实验班C8051F单片机教程之一作者:苗瑞日期:2009-12-8网站:/bbs一、认识C8051F并与51比较本节主要是让初学C8051F单片机的学员有个感性的认识,着重强调理论方面的知识,并通过与51单片机的比较,让大家能有更深刻的体会。

1、C8051F单片机简介C8051Fxxx 系列单片机是完全集成的混合信号系统级芯片,具有与8051 兼容的微控制器内核,与MCS-51 指令集完全兼容。

除了具有标准8052 的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其它数字外设及功能部件MCU 中的外设或功能部件包括模拟多路选择器、可编程增益放大器、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/ I2C、UART、SPI、可编程计数器/定时器阵列(PCA)、定时器、数字I/O 端口、电源监视器、看门狗定时器(WDT)和时钟振荡器等。

所有器件都有内置的FLASH 程序存储器和256 字节的内部RAM,有些器件内部还有位于外部数据存储器空间的RAM,即XRAM。

C8051Fxxx 单片机采用流水线结构,机器周期由标准的12 个系统时钟周期降为1 个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。

C8051Fxxx 单片机是真正能独立工作的片上系统(SOC)。

每个MCU 都能有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。

FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。

应用程序可以使用MOVC 和MOVX 指令对FLASH 进行读或改写,每次读或写一个字节。

这一特性允许将程序存储器用于非易失性数据存储以及在软件控制下更新程序代码。

片内 JTAG 调试支持功能允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。

该调试系统支持观察和修改存储器和寄存器,支持断点、单步、运行和停机命令。

8051单片机3单片机指令系统

8051单片机3单片机指令系统

(1) 方括号[ ]表示该项是可选项, 可有可无。 (2) 标号是用户设定的符号, 它实际代表该指令所在的地址。 标号必须以字母开头, 其后跟1~8个字母或数字, 并以“:”结 尾。 (3) 操作码是用英文缩写的指令功能助记符。它确定了本条指 令完成什么样的操作功能。如: ADD表示加法操作。任何一 条指令都必须有该助记符项, 不得省略。 (4) 操作数指的是指令操作的数据. 可以是一个数,也可以是寄 存器和特殊功能寄存器,还可以是标号地址;个数可以为0, 3 也可以为1,2,3
23
3.4.1 数据传送类指令
3.4.1 数据传送类指令
数据传送类指令共29条, 它是指令系统中最活跃、 使 用最多的一类指令。一般的操作是把源操作数传送到目的操 作数, 即指令执行后目的操作数改为源操作数, 而源操作数保 持不变 数据传送类指令不影响进位标志CY、 半进位标志AC 和溢出标志OV, 但当传送或交换数据后影响累加器A的值时, 奇偶标志P的值则按A的值重新设定。 按数据传送类指令的操作方式,又可把传送类指令分 为3种类型: 数据传送、数据交换和堆栈操作, 并使用8种助记 符: MOV、MOVX、MOVC、XCH、XCHD、SWAP、 PUSH及POP 24
3.4.1 数据传送类指令
25
3.4.1 数据传送类指令
1. 内部数据存储器间数据传送指令
内部RAM区是数据传送最活跃的区域, 可用的指令数也最 多, 共有16条指令, 指令操作码助记符为MOV,通用格式为: MOV 目的操作数 , 源操作数 内部RAM之间源操作数传递关系如下图所示
26
3.4.1 数据传送类指令
4
3.1 指令格式
指令描述符号:
在分类介绍各类指令之前, 先对描述指令的一些 符号意义进行一些简单约定:

8051单片机教程

8051单片机教程

8051单片机教程一、认识8051单片机8051单片机是一款经典的微控制器,自1981年由英特尔公司推出以来,便广泛应用于工业控制、智能家居、嵌入式系统等领域。

本教程将带领大家了解8051单片机的结构、原理及其编程方法。

1. 8051单片机的基本结构(1)中央处理器(CPU):负责执行程序指令,进行数据处理和控制。

(2)存储器:包括程序存储器(ROM)和数据存储器(RAM)。

程序存储器用于存放程序代码,数据存储器用于存放运行过程中的数据和变量。

(3)定时器/计数器:用于实现定时或计数功能,可应用于各种场合,如延时、脉冲计数等。

(4)并行I/O口:共有4个8位的并行I/O口,可用于连接外部设备,进行数据输入输出。

(5)串行通信接口:用于与其他设备进行串行通信,可实现数据的长距离传输。

(6)中断系统:允许外部设备或内部事件打断正常的程序执行流程,提高系统的实时性。

2. 8051单片机的特点(1)指令丰富:8051单片机拥有111条指令,包括数据传送、逻辑运算、算术运算、位操作等。

(2)硬件资源丰富:具备定时器、串行通信接口、中断系统等硬件资源,易于实现各种功能。

(3)扩展性强:可通过外部总线扩展存储器、I/O口等资源。

(4)功耗低:适用于电池供电的便携式设备。

(5)成本低:8051单片机价格低廉,性价比高。

二、8051单片机的编程基础1. 汇编语言与C语言2. 开发环境搭建(1)并安装Keil软件。

(2)创建一个新项目,选择8051单片机型号。

(3)编写,并将文件添加到项目中。

(4)编译、项目,可执行文件。

(5)将可执行文件到8051单片机中,进行调试和运行。

3. 基本语法与编程规范(1)变量定义:在C语言中,使用变量前需先进行定义。

例如:unsigned char count; // 定义一个无符号字符型变量count(2)数据类型:8051单片机支持多种数据类型,如char、int、long等。

单片机mcs_8051程序

单片机mcs_8051程序

一、航标灯程序控制单片机mcs_8051汇编语言程序航标灯实操目的:1、学会创建工程、源文件及关联;2、学会构建程序;3、学会调试程序,单步、跟踪、连续运行、运行到光标行。

汇编程序:ORG 0000HLJMP MAINCLR P1.0LCALL DELAYSETB P1.0LCALL DELAYRETIMAIN: MOV IE,#10000001BLJMP $DELAY: MOV R7,#8D1: MOV R6,#200D2: MOV R5,#250DJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETEND;注:低电平灯亮二、循环灯控制程序单片机mcs_8051汇编语言程序要求:低电平灯亮,高电平灯灭,向右循环3遍后,再向左循环4遍。

汇编程序如下:ORG 0000HMOV R1,#24MOV A,#01111111BLP1: MOV P1,ALCALL DELAYRR ADJNZ R1,LP1MOV R1,#32MOV A,#11111110BLP2: MOV P1,ALCALL DELAYRL ADJNZ R1,LP2MOV P1,#11111111BLJMP $DELAY:MOV R7,#10D1: MOV R6,#200D2: MOV R5,#250DJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETEND三、霓虹灯控制程序单片机mcs_8051汇编语言程序要求:低电平灯亮,高电平灯灭,从两侧向内闪烁5遍。

汇编程序(1):START: MOV R1,#5LP1: MOV R0,#0MOV DPTR,#TABLP2: MOV A,R0MOVC A,@A+DPTRCPL AMOV P1,ALCALL DELAYINC R0CJNE R0,#5,LP2DJNZ R1,LP1MOV P1,#00HSJMP $DELAY: MOV R7,#5D1: MOV R6,#200D2: MOV R5,#250DJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETTAB: DB 81H,42H,24H,18H,00HEND汇编程序(2):START: MOV R1,#5LP1: MOV R0,#0MOV DPTR,#TABLP2: MOV A,R0MOVC A,@A+DPTRMOV P1,ALCALL DELAYINC R0CJNE R0,#5,LP2DJNZ R1,LP1MOV P1,#0FFHSJMP $DELAY: MOV R7,#5D1: MOV R6,#200D2: MOV R5,#250DJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETTAB: DB 7EH,0BDH,0DBH,0E7H,0FFHEND。

8051单片机教程

8051单片机教程

8051单片机教程1.8051单片机的基本概念2.8051单片机的寄存器8051单片机共有4个寄存器:A累加器、B寄存器、DPTR数据指针和PSW程序状态字。

其中累加器A用于存储和运算数据,寄存器B常用于存放需要扩展的数据,数据指针DPTR可以用来指向程序存储器中的数据,程序状态字PSW用于标志程序的运行状态。

3.8051单片机的IO口4.8051单片机的编程8051单片机支持汇编语言编程,操作简单灵活。

编程过程主要包括程序设计、程序烧录和程序调试三个步骤。

程序设计需要根据具体需求编写程序,使用编译器将汇编语言转换成二进制程序,然后通过编程器将程序烧录到芯片中,最后通过仿真器对程序进行调试和测试。

5.8051单片机的应用8051单片机广泛应用于各个领域,如家电控制、工业控制、安防监控、医疗仪器等。

在家电控制方面,可以通过程序来控制电视机、空调、洗衣机等家电设备的开关和操作;在工业控制方面,可以利用8051单片机的IO口来控制工业生产线的运行和监测系统的数据采集;在安防监控方面,可以利用8051单片机来控制摄像头、门禁系统等设备的操作;在医疗仪器方面,可以利用8051单片机来控制血压测量、体温测量等设备的运行。

6.8051单片机的发展趋势随着科技的发展,8051单片机也在不断升级。

最新的8051单片机已经具备了更高的性能、更多的接口功能和更大的存储容量,可以更好地满足各种应用需求。

同时,也有越来越多的开发工具和IDE软件可以使用,使得8051单片机的开发变得更加便捷高效。

总结:本文简要介绍了8051单片机的基本知识和使用方法,包括8051的基本概念、寄存器、IO口、编程方法、应用领域及发展趋势等方面内容。

相信读者通过阅读本文,对于8051单片机有了一个初步的了解,并有了一定的学习和使用指导。

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

实验一:扩展存储器读写实验一.实验要求编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。

二.实验目的1.学习片外存储器扩展方法。

2.学习数据存储器不同的读写方法。

三.实验电路及连线将P1.0接至L1。

CS256连GND孔。

四.实验说明1.单片机系统中,对片外存贮器的读写操作是最基本的操作。

用户藉此来熟悉MCS51单片机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。

用户编程可以参考示例程序和流程框图。

本示例程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。

不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。

读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。

一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。

用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。

2.在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读写正常。

3.也可进入LCA51的调试工具菜单中的对话窗口,用监控命令方式读写RAM,在I状态执行SX0000↓ 55,SPACE,屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。

注:SX是实验机对外部数据空间读写命令。

4.本例中,62256片选接地时,存储器空间为0000~7FFFH。

五.实验程序框图实验示例程序流程框图如下:六.实验源程序:ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV DPTR,#0000H ;置外部RAM读写地址MOV A,#55H ;测试的数据一MOV B,AMOVX @DPTR,A ;写外部RAMMOVX A,@DPTR ;读外部RAMXRL A,B ;比较读回的数据JNZ ERRORMOV A,#0AAH ;测试的数据二MOV B,AMOVX @DPTR,AMOVX A,@DPTRXRL A,BJZ PASS ;测试通过ERROR: SETB P1.0 ;测试失败,点亮LEDSJMP $PASS: CPL P1.0 ;LED状态(亮/灭)转换MOV R1,#00H ;延时DELAY: MOV R2,#00HDJNZ R2,$DJNZ R1,DELAYLJMP START ;循环测试END实验二P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个扭子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

二.实验目的1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

三.实验电路及连线实验三P3口输出控制继电器实验一.实验要求利用P3.5输出高低,控制继电器的开合,实现对外部装置的控制。

二.实验目的掌握继电器控制的基本方法和经验。

三.实验电路及连线P3.5 接JD。

R-MID接L1灯,R-CLOSE接GND。

四.实验说明现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。

电子继电器便能完成这一桥梁作用。

继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。

本电路的控制端为JD,当JD为高电平时,继电器不工作,当JD为低电平时,继电器工作,常开触点吸合。

执行时,对应的LED将随继电器的开关而亮灭。

五.实验程序框图六.源程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HJD: CPL P3.5 ;P3.5取反LCALL DELAY ;延时NOPSJMP JDDELAY: ;延时子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND实验四简单I/O实验(交通灯控制)一.实验要求以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。

二.实验目的1.学习在单片机系统中扩展简单I/O接口的方法。

2.学习数据输出程序的设计方法。

3.学习模拟交通灯控制的方法。

4.学习双色灯的使用。

三.实验电路及连线PO0-PO3接DG1-DG4,PO4-P07接DR1-DR4。

CS273 接8300H。

四.实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。

假设一个十字路口为东西南北走向。

初始状态0为东西红灯,南北红灯。

然后转状态1南北绿灯通车,东西红灯。

过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。

再转状态3,东西绿灯通车,南北红灯。

过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。

最后循环至状态1。

2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

五.实验程序框图程序框图:六.源程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL STATUS0 ;初始状态(都是红灯) CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯LCALL STATUS3 ;南北红灯,东西绿灯LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯LJMP CIRCLESTATUS0: ;南北红灯,东西红灯MOV DPTR,#8300HMOV A,#0FHMOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS1: ;南北绿灯,东西红灯MOV DPTR,#08300HMOV A,#5AH ;南北绿灯,东西红灯MOVX @DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS2: ;南北绿灯闪转黄灯,东西红灯MOV DPTR,#8300HMOV R3,#03H ;绿灯闪3次FLASH: MOV A,#5FHMOVX @DPTR,AMOV R2,#03HLCALL DELAYMOV A,#5AHMOVX @DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASHMOV A,#0AH ;南北黄灯,东西红灯MOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYRETSTATUS3: ;南北红灯,东西绿灯MOV DPTR,#8300HMOV A,#0A5HMOVX @DPTR,AMOV R2,#50 ;延时5秒LCALL DELAYRETSTATUS4: ;南北红灯,东西绿灯闪转黄灯MOV DPTR,#8300HMOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#0AFHMOVX @DPTR,AMOV R2,#03HLCALL DELAYMOV A,#0A5HMOVX @DPTR,AMOV R2,#03HLCALL DELAYDJNZ R3,FLASH1MOV A,#05H ;南北红灯,东西黄灯MOVX @DPTR,AMOV R2,#10 ;延时1秒LCALL DELAYNOPRETDELAY: ;延时子程序PUSH 2PUSH 1PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2HDJNZ 0,$DJNZ 1,DELAY2 ;延时100 mSDJNZ 2,DELAY1POP 0POP 1POP 2RETEND实验一时,P1.0-P1.7接L1-L8。

实验二时,P1.0-P1.7接K1-K8,PO0-PO7接L1-L8。

CS273接8300H。

四.实验说明1.P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20KΩ~40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2.延时子程序的延时计算问题对于程序DELAY:MOV R0,#00HDELAY1:MOV R1,#0B3HDJNZ R1,$DJNZ R0,DELAY1查指令表可知MOV,DJNZ 指令均需用两个机器周期,而一个机器周期时间长度为12/11.0592MHz,所以该段程序执行时间为:((0B3+1)×256+1)×2×12÷11059200=100.002mS五.实验程序框图主程序框图(1):程序框图(2):六.1、主程序ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HMOV A,#0FEHROTATE: MOV P1,A ;写P1口RL A ;循环左移LCALL DELAY ;延时NOPSJMP ROTATEDELAY: ;延时子程序(1秒)MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RETEND2、读P1口程序框ORG 0000HLJMP STARTORG 0040HSTART:MOV DPTR,#8300H ;并行输出口地址MOV P1,#0FFH ;因P1口是准双向口,所以把P1口作为;输入口时,应先置高电平.READ:MOV A,P1 ;读开关状态MOVX @DPTR,A ;把读入的数据输出AJMP READEND实验五外部中断实验(急救车与交通灯)一.实验要求在实验四内容的基础上增加允许急救车优先通过的要求。

有急救车到达时,两向交通信号为全红,以便让急救车通过。

假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。

本实验以按键为中断申请,表示有急救车通过。

二.实验目的1.学习外部中断技术的基本使用方法。

2.学习中断处理程序的编程方法。

三.实验电路及连线PO0-PO3接DG1-DG4,PO4-P07接DR1-DR4。

相关文档
最新文档