单片机总结课件_第1页
单片机总结课件_第2页
单片机总结课件_第3页
单片机总结课件_第4页
单片机总结课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 绪论一、什么是单片机从外形上看:双列直插式封装、贴片式封装从内部上看:结构图又称微控制器(MicrocontrollerUnit,MCU)或称嵌入式控制器(EmbeddedController)在一块半导体硅片上集成了微处理器(CPU)、存储器、各种I/O接口,具有计算机的属性,称为单片微型计算机(简称单片机)。从类型上看:通用型单片机专用型单片机第1章 绪论一、什么是单片机从外形上看:双列直插式封装、贴12.1

单片机的外特性

一、电源:2个

Vcc(40)Vss(20)二、时钟:2个

XTAL1(19)XTAL2(18)三、输入输出(I/O):32个P0:8个P1:8个P2:8个P3:8个四、控制信号:4个RST/VPDALE/PROGPSENEA/Vpp2.1单片机的外特性

一、电源:2个2XTAL1XTAL2MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSS外部时钟源图1内部振荡方式图2外部振荡方式二、时钟电路引脚XTAL1(19)XTAL2(18)1、两种方式说明:频率越高,工作速度就越快,但功耗就要增加,其产生的高次谐波也会对系统内部的模拟电路(如ADC)产生严重的干扰。XTAL1XTAL2MCS-51C1C2CYSXTAL2XT31.振荡周期:为单片机提供时钟信号的振荡源的周期。2.状态周期:是振荡源信号经二分频后形成的时钟脉冲信号。3.机器周期:通常将完成一个基本操作所需的时间称为机器周期。6个状态周期4.指令周期:是指CPU执行一条指令所需要的时间。一个指令周期通常含有1~4个机器周期。思考:若MCS-51单片机外接晶振为12MHz时,则单片机的机器周期为多少?

1.振荡周期:为单片机提供时钟信号的振荡源的周期。思考:若M4+5V实例1:用8051最小系统点亮发光二极管LED+5V+5V+5V

+5V

ORG0000HD1:JBP1.6,LOOPCLRP1.3SJMPLOOP1LOOP:SETBP1.0LOOP1:SJMPD1END

+5V实例1:用8051最小系统点亮发光二极管LED+5V+51、程序存储器(1)作用:存储应用程序的机器码、表格常数(2)如何选择片内片外的程序存储器?(3)系统保留ROM地址(特殊存储单元)0000H:启动地址0003H:外部中断0的中断服务入口地址000BH:定时/计数器0溢出中断入口地址0013H:外部中断1的中断服务入口地址001BH:定时/计数器1溢出中断入口地址0023H:串行口中断服务程序入口地址1、程序存储器0000H:启动地址0003H:外部中断0的中62、数据存储器(1)作用:存放运算的中间结果、数据暂存、缓冲(2)片外数据存储器:64K(3)片内数据存储器:

地址范围:低128字节00H—7FH高128字节80H—FFH2、数据存储器(1)作用:存放运算的中间结果、数据暂存、缓冲7特殊功能寄存器通用

RAM位寻址区00H1FH20H2FH30H7FH80HFFH外部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)工作寄存器区返回特00H1FH20H2FH30H7FH80HFFH0000H8CYACF0RS1RS0OV/PD0HPSW.0PSW.1PSW.2PSW.4PSW.6PSW.7PSW.5PSW.3CY:进借位标志;AC:辅助进借位标志;F0:用户标志;

RS1、RS0:工作寄存器组选择;OV:溢出位;P:奇偶位。RS1RS0选择工作寄存器组000组(00H~07H)011组(08H~0FH)102组(10H~17H)113组(18H~1FH)工作寄存器组选择控制表CYACF0RS1RS0OV/PD0HPSW.0PSW.1P9特殊功能寄存器SFR特殊功能寄存器SFR10三、比较不相等转移指令

CJNEA,#data,rel

CJNEA,direct,rel

CJNE@Ri,#data,rel

CJNERn,#data,rel该类指令具有比较和判断双重功能,比较的本质是做减法运算,用第一操作数内容减去第二操作数内容,但差值不回存。两个操作数的内容不变。若(第一操作数)=(第二操作数),则程序继续执行,(PC)←(PC)+3若(第一操作数)>(第二操作数),则程序转移,(PC)←(PC)+rel+3,Cy←0若(第一操作数)<(第二操作数),则程序转移,(PC)←(PC)+rel+3,Cy←1三、比较不相等转移指令该类指令具有比较和判断双重功能,比较的11自然优先级矢量地址自然优先级矢量地址高级中断请求PCPC断请求低级中SCON中断标志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1ET1ESTCONIE0TF0IE1TF1TIRIRXTXT11INT10T0INT010源允许总允许优先级硬件查询EA5.2MCS-51的中断系统

MCS-51提供了5个中断源,2个中断优先级控制,可实现2级中断服务嵌套。可通过程序设置中断的允许或屏蔽,设置中断的优先级。P3.0P3.1P3.5P3.4P3.2P3.3IT0IT1一、内部结构图自然优先级矢量地址自然优先级矢量地址高级中断请求PCPC断请12TF1TR1

TF0TR0IE1IT1

IE0

IT088HTCON:定时器/计数器控制寄存器SCON:串行口控制寄存器EA

--ESET1EX1ET0EX098HIE:中断允许寄存器SM0SM1SM2RENTB8RB8TIRIA8HIP:中断优先级寄存器-

--PSPT1PX1PT0PX0B8HMCS-51单片机设置了4个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统。TF1TR1TF0TR0IE1IT1IE0IT0813二、处理外部中断举例例1:要求每次按动按键,使外接发光二极管LED改变一次亮灭状态。解:INT0输入按键信号,P1.0输出改变LED状态。1.跳变触发:每次跳变引起一次中断请求。

ORG 0000H;复位入口 AJMPMAIN ORG 0003H ;中断入口 AJMP PINT0 ORG 0100H ;主程序MAIN:MOVSP,#40H;设栈底 SETB IT0 ;负跳变触发中断 SETB EX0 ;开INT0中断 SETB EA ;开总允许开关H: SJMP H ;执行其它任务 ORG 0200H ;中断服务程序PINT0:CPLP1.0 ;改变LED

RETI ;返回主程序单片机INT0P1.01+5V二、处理外部中断举例例1:要求每次按动按键,使外接发光二极管14(1)软件等待按键释放。(2)硬件清除中断信号。2、电平触发:单片机INT0P1.01+5V

ORG 0000H;复位入口 AJMPMAIN

ORG 0003H ;中断入口 AJMP PINT0

ORG 0100H ;主程序MAIN:MOVSP,#40H;设栈底 CLR IT0 ;低电平触发中断 SETB EX0 ;开INT0中断 SETB EA ;开总允许开关H: SJMP H ;执行其它任务

ORG 0200H ;中断服务程序PINT0:CPLP1.0 ;改变LEDWAIT:JNB P3.2,WAIT;等按键释放

RETI ;返回主程序(1)软件等待按键释放。2、电平触发:单片机1+5V O15例2:通过外部中断控制八盏灯循环点亮。解:通过P1口扩展八盏灯,在/INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,点亮一盏灯,中断服务则是:依次点亮八盏灯中的一盏。采用边沿触发。例2:通过外部中断控制八盏灯循环点亮。16程序如下:

ORG0000HLJMPMAINORG0013H;中断服务程序入口地址LJMPIN11MAIN:SETBEA;开总中断允许“开关”SETBEX1;开分中断允许“开关”CLRPX1;低优先级(也可不要此句)SETBIT1;边沿触发MOVA,#01H;给累加器A赋初值SJMP$;原地等待中断申请IN11:RLA;左环移一次MOVP1,A;输出到P1口RETI;中断返回END程序如下:17TF1TR1

TF0TR0IE1IT1

IE0

IT01、TCON定时器/计数器控制寄存器

88HTF0/TF1:T0/T1溢出标志位。可用于申请中断或供CPU查询。在进入中断服务程序时会自动清零;但在查询方式时必须软件清零。定时或计数时间到,可以采用查询或中断方式处理;=1:计数溢出;=0:计数未满。TR0/TR1:T0/1启停控制位。=1:启动计数;=0:停止计数。IE0/IE1和IT0/IT1:用于管理外部中断。二、4个SFRTF1TR1TF0TR0IE1IT1IE0IT0118GATEC/TM1M0GATEC/TM1M02、TMOD:定时器/计数器工作方式控制寄存器

89H0:INT0对启动T0没有影响,由TR0启动;GATE:门控位1:启动T0由INT0、TR0共同启动。M1M0:工作方式选择位。00:13位定时器/计数器;01:16位定时器/计数器(常用);10:可自动重装的8位定时器/计数器(常用);11:T0分为2个8位定时器/计数器;仅适用于T0。C/T:定时方式/计数方式选择位。1:计数器工作方式,对T0/T1引脚外部事件的负脉冲计数;0:选择定时器工作方式,对机器周期脉冲计数定时。GATEC/TM1M0GATEC/TM1M02、TMOD:19例1:利用定时器产生周期为2ms的方波,fosc=6MHZ使用T0/T1的步骤:1、确定选择T0/T12、确定工作模式3、确定工作方式4、计算初值5、编写主程序中断入口处理定时器/计数器初始化6、编写中断服务程序(1)方式0:Tmax=213×1

s=8.192ms(2)方式1:Tmax=216×1

s=65.536ms(3)方式2、3:Tmax=28×1

s=0.256ms定时选择T0T=(M

TC)×T01ms=(216-TC)×2

sTC=65036=0FE0CH一、方式1的应用例1:利用定时器产生周期为2ms的方波,fosc=6MHZ使20

ORG0000HAJMPMAIN

ORG000BHAJMPTT0ORG0100HMAIN:MOVSP,#40HMOVTMOD,#01HMOVTL0,#0CHMOVTH0,#0FEHSETBTR0SETBET0SETBEALOOP:SJMPLOOP

ORG0200HTT0:CPLP1.0MOVTL0,#0CHMOVTH0,#0FEHRETIEND思考题:1、实现本题功能T0是否需要停止?2、中断服务程序为什么要给T0重新赋初值?不赋初值会出现什么现象?讨论题:定时精度可能会受什么因素影响?方案1:采用中断方法ORG0000H21方案2:采用查询方法

ORG0000HMOVTMOD,#01HLOOP:MOVTH0,#0FEHMOVTL0,#0CHSETBTR0LOOP1:JNBTF0,LOOP1CLRTR0CPLP1.0SJMPLOOP讨论题:比较两个方案的优缺点查询方法:

程序简单;但CPU必须不断查询TF0标志;CPU效率低。中断方法:

程序复杂;能提高CPU效率。方案2:采用查询方法ORG223、方式0的应用:扩展并行输入输出口CB:MOVR7,#0AHMOVR0,#50HMOVSCON,#00HSEND1:MOVA,@R0MOVSBUF,AWAIT:JNBTI,WAIT

CLRTIINCR0DJNZR7,SEND1

例:将以50H为首地址的10个单元中数据由串口送出。3、方式0的应用:扩展并行输入输出口CB:M23CB:MOVR7,#05HMOVR0,#30HRE1:MOVSCON,#10HWAIT:JNBRI,WAIT

CLRRIMOVA,SBUFMOV@R0,AINCR0DJNZR7,RE1

例:从扩展口读入5个数据,存到内部RAM以30H开始的单元中。CB:MOVR7,#05H例:从扩展口读入524例:T0引脚发生负跳变时,从p1.0引脚输出1个周期为1ms的方波T0500us500usP1.0分析:(1)工作方式选择

T0为方式2计数,初值0FFH.T1为方式2定时,初值(28-X)×2us=500us

X=06H(2)中断服务程序T0中断服务程序停止T0计数,置标志位T1中断服务程序对P1.0求反,使P1.0产生周期1ms的方波。二、方式2的应用例:T0引脚发生负跳变时,从p1.0引脚输出1个周期为1ms25

ORG0000HRESET:LJMPMAINORG000BH

LJMPIT0P

ORG001BH

LJMPIT1P

ORG0100HMAIN:MOVSP,#60H

ACALLPT0M2

LOOP:MOVC,F0 JNCLOOP

SETBTR1 SETBET1 HERE:AJMPHEREPT0M2:MOVTMOD,#26H MOVTL0,#0FFH MOVTH0,#0FFHSETBTR0 SETBET0 MOVTL1,#06H MOVTH1,#06HCLRF0 SETBEA RET

IT0P:CLRTR0SETBF0 RETI

IT1P:CPLP1.0 RETI

ORG0000H 26一、串口方式0的应用例:用8051串行口外接CD4094扩展8位并行输出口,8位并行口的各位都接一个发光二极管,要求发光二极管呈流水灯状态(轮流点亮)。

方案一:采用查询TI决定是否发送下一帧数据方案二:采用中断决定是否发送下一帧数据一、串口方式0的应用例:用8051串行口外接CD4094扩展27

RRA

CLRP1.0

SJMPOUT0 DELAY:MOVR7,#250 D1:MOVR6,#250 D2:DJNZR6,D2 DJNZR7,D1 RET END

ORG0000H START:MOVSCON,#00H MOVA,#80H

CLRP1.0

OUT0:MOVSBUF,A

OUT1:JNBTI,OUT1 CLRTI

SETBP1.0

ACALLDELAY

RRA O28CB:MOVR7,#05HMOVR0,#30HRE1:MOVSCON,#10HWAIT:JNBRI,WAIT

CLRRIMOVA,SBUFMOV@R0,AINCR0DJNZR7,RE1RET例:从扩展口读入5个数据,存到内部RAM以30H开始的单元中。CB:MOVR7,#05H例:从扩展口读入529P3.0RXDP3.1TXD分析:从串口送出什么样的数据才能显示0?例:利用串并转换将数字0~9输出到LED显示器上显示,输出同一个数字。

P3.0RXDP3.1TXD分析:从串口送出什么样的数30

ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HMOVSCON,#00H

MOVR1,#00HL1:MOVA,R1MOVDPTR,#TABMOVCA,@A+DPTR

MOVSBUF,AJNBTI,$CLRTI

MOVSBUF,AJNBTI,$CLRTICALLDELAYCJNER1,#9,L2MOVR1,#00HAJMPMAINL2:INCR1AJMPL1TAB:DB03H,9FH,25H,0DH,99H,49HDB41H,1FH,01H,09HDELAY:END思考:不用串行口发送数据,采用某一个输出口是否也可以完成串并转换?

ORG0000H31例:扩展8片2764P2.7P2.6P2.5P2.4P2.0P0口ALEPsen/CE0A12A8A7

8K×8A0/OE1O0~O774LS373Cy7BA

y0

/CE1A12A8A78K×8A0/OE1O0~O7/CE7A12A8A78K×8A0/OE1O0~O7MCS–5174LS1380000H~1FFFH2000H~3FFFH4000H~5FFFH6000H~7FFFH8000H~9FFFHA000H~BFFFHC000H~DFFFHE000H~FFFFH例:扩展8片2764P2.77Cy7MCS–5174LS32P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0RDEARESET803180518751P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0ALEA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0G锁存器A0A1A2A3A4A5A6A7A8A9A10A11A12D0D1D2D3D4D5D6D7OEVccGNDCE16264+5VWEPSENWRCE26264的8KB地址范围不唯一(因为P2.7P2.6可为任意值)可以为0000H-1FFFH4000H-5FFFH8000H-9FFFHA000H-DFFFH四种中的一种地址范围。P1.7P1.6P1.5P1.4P1.3P1.2P1.1P133例:分析外部数据存储器地址范围0000H~1FFFH/2000H~3FFFH/4000H~5FFFH/6000H~7FFFH写数据:MOVA,#DATAMOVDPTA,#6000HMOVX@DPTR,A

读数据:MOVDPTR,#7FFFHMOVXA,@DPTR

例:分析外部数据存储器地址范围0000H~1FFFH/20034例:在数据存储器扩展电路中,将片内RAM以50H单元开始的16个数据,传送片外数据存储器0000H开始的单元中。程序如下:

ORG1000H MOVR0,#50H MOVR7,#16 MOVDPTR,#0000H AGAIN:MOVA,@R0 MOVX@DPTR,A INCR0 INCDPTR DJNZR7,AGAIN RET END 例:在数据存储器扩展电路中,将片内RAM以50H单元开始的35二、I/O数据传送方式1、无条件传送方式

在进行I/O操作时,不需要测试外部设备的状态,可以根据需要随时进行数据传送操作。一般用于具有常驻的或变化缓慢的数据信号的外部设备如机械开关、指示灯、发光二极管、数码管等,以及工作速度非常快,足以和CPU同步工作的外部设备如外部数据存储器,数/模转换器。2、程序查询方式

为了实现查询方式的数据输入输出传送,需要由接口电路提供外设状态,并以软件方法进行状态测试。3、程序中断方式

采用中断方式进行数据传送时,当外设为数据传送作好准备之后,就向CPU发出中断请求。CPU响应中断后,再继续执行被中断的原程序。二、I/O数据传送方式1、无条件传送方式36方式选择控制字

二、8255A的控制字(2个)C口置位/复位控制字思考:如何把这两个控制字写入8255A?8255A如何区分这两个控制字?方式选择控制字37

MOV DPTR,#7F03HMOV A,#83HMOVX

@DPTR,A

例:设8255控制字寄存器的地址为7F03H,试编程使A口为方式0输出,B口为方式0输入,PC4~PC7为输出,PC0~PC3为输入。MOV DPTR,#7F03H例:设838例:设8255控制字寄存器地址为7F03H,将PC1置1,PC3清0。MOV DPTR,#7F03HMOVA,#03HMOVX@DPTR,AMOV A,#06HMOVX@DPTR,A例:设8255控制字寄存器地址为7F03H,将PC1置1,P39例:如果在8255的B口接有8个按键,A口接有8个发光二极管,完成按下某一按键,相应的发光二极管发光的功能。

MOV DPTR,#0003H;指向8255的控制口MOV A,#83HMOVX@DPTR,A;向控制口写控制字,A口输出,B口输入LOOP:MOVDPTR,#0001H;指向8255的B口MOVXA,@DPTR;检测按键,将按键状态读入AMOV DPTR,#0000H;指向8255的A口MOVX@DPTR,A;驱动LED发光SJMP LOOP例:如果在8255的B口接有8个按键,A口接有8个发光二极管40一、8155的内部结构和引脚一、8155的内部结构和引脚41TM2TM1IEBIEAPC2PC1PBPA0:A口为输入方式;1:A口为输出方式0方式1:A、B口为基本输入输出,C口为输入方式11方式2:A、B口为基本输入输出,C口为输出方式1方式3:A口选通输入输出,B口为基本输入输出PC0:AINTR,PC1:ABF,PC2:ASTBPC3~5:输出0方式4:A口、B口选通输入输出PC0:AINTR,PC1:ABF,PC2:ASTBPC2:BINTR,PC4:BBF,PC5:BSTB0:禁止A口中断1:允许A口中断0:B口为输入方式;1:B口为输出方式0:禁止B口中断1:允许B口中断00空操作,不影响定时/计数器操作01停止定时/计数器操作10若定时/计数器正在计数,长度减为1时停止计数1启动,置定时/计数器方式和长度后立即启动计数若正在计数,溢出后按新的方式和长度计数二、8155的命令字/状态字寄存器

8155芯片的命令/状态寄存器物理上只有一个端口地址,对该端口写操作,命令字被写入命令寄存器;对该端口读操作,则从状态寄存器读出状态字。8155的命令字格式:TM2TM1IEBIEAPC242状态寄存器格式

状态寄存器格式43例:若A口定义为基本输入方式,B口定义为基本输出方式,对输入脉冲进行24分频,写出初始化程序。START:MOVDPTR,#7F04H;指针指向定时器低8位 MOVA,#18H ;计数初值24送A,

MOVX@DPTR,A

;计数初值低8位装入定时器INCDPTR;指针指向定时器高8位MOVA,#40H;设定时器连续方波输出MOVX@DPTR,A

;计数初值高6位装入定时器MOVDPTR,#7F00H;指向命令/状态口MOVA,#0C2H ;设定命令控制字MOVX@DPTR,A

;A口输入,B口输出,开定时器例:若A口定义为基本输入方式,B口定义为基本输出方式,对输入44例:扩展5个LED(共阳)数码管。编写显示子程序,实现将30H~34H5个单元的数值分别显示在5位LED4~LED0上。DIS:MOVR0,#30H

MOVR3,#01HMOVA,R3

DLP:MOVP1,A

MOVDPTR,#TABMOVA,@R0 MOVCA,@A+DPTRMOVP2,A ACALLDLY1MS INC R0

MOV A,R3 RL A MOV R3,AJNB ACC.5,DLPSJMPDIS TAB:DB0C0,0F9H,0A4H,0B0H,

H0F8H,82H,92H,99H,DLY1MS:…例:扩展5个LED(共阳)数码管。编写显示子程序,实现将3045

例4:用串行口实现静态显示电路的接口例4:用串行口实现静态显示电路的接口46例:编写显示更新子程序,实现将70H~77H共8个单元的数值分别显示在8位LED7~LED0上。ORG1000H DISPSER:MOVR5,#08H ;显示8个字符 MOVR1,#70H ;70H~77H存放要显示的数据DL0:MOVA,@R1 ;取出要显示的数据 MOVDPTR,#STAB ;指向段数据表 MOVCA,@A+DPTR;查表取字形数据 MOVSBUF,A ;送出数据,进行显示 JNB T1,$ ;输出完否? CLRT1 ;输出完,清中断标志 INCR1 ;再取下一个数据 DJNZR5,DL0 ;循环8次 RET ;返回STAB:DB0C0H,0F9H,0A4H,0B0H;段数据表(共阳极) DB· …… …… END 例:编写显示更新子程序,实现将70H~77H共8个单元的数值47

对ADC0809主要信号引脚的功能说明如下:(1)IN7~IN0:模拟量输入通道。ADC0809对输入模拟量的要求主要有:信号单极性,电压范围0~5V,若信号过小还需进行放大。另外,在A/D转换过程中,模拟量输入的值不应变化太快,因此,对变化速度快的模拟量,在输入前应增加采样保持电路。(2)A、B、C:地址线。A为低位地址,C为高位地址,用于对模拟通道进行选择。(3)ALE:地址锁存允许信号。在对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。

对ADC0809主要信号引脚的功能说明如下:48

(4)START:转换启动信号。START上跳沿时,所有内部寄存器清0;START下跳沿时,开始进行A/D转换;在A/D转换期间,START应保持低电平。(5)D7~D0:数据输出线。其为三态缓冲输出形式,可以和单片机的数据线直接相连。(6)OE:输出允许信号。其用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高电阻;OE=1,输出转换得到的数据。(7)CLK:时钟信号。一般要求<640KHZ。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500kHz的时钟信号。(4)START:转换启动信号。START上49

(8)EOC:转换结束状态信号。EOC=0,正在进行转换;EOC=1,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。(9)VCC:+5V电源。(10)Vref:参考电源。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V,Vref(-)=0V)(8)EOC:转换结束状态信号。EOC=050五、MCS-51单片机与ADC0809接口1)查询方式

通道地址:7F00H-7F07HP1.0EOC五、MCS-51单片机与ADC0809接口1)查询方式51

ORG 0000H AJMP MAINORG 0100HMAIN:MOV R0,#78HMOV R2,#08H

MOV DPTR,#7F00HMOV A,#00HL0:MOVX@DPTR,A

L1: JNB P1.0,L1;查询是否为1

MOVXA,@DPTR;为1则转换结束,读出数据 MOV @R0,A INC R0 INC DPTR DJNZR2,L0SJMP MAIN例:设计一个8路模拟量输入的巡回检测系统,采样数据依次存放在片内RAM78H~7FH单元中(用查询的方式实现)

ORG 0000H522)中断方式

通道地址:0FE00H~0FE07H2)中断方式通道地址:53例:设计一个8路模拟量输入的巡回检测系统,采样数据依次存放在片内RAM78H~7FH单元中(用中断方式实现)

ORG0000HAJMPMAIN

ORG0013HAJMPINT1

MAIN:MOVR0,#78H SETBIT1 SETBEA SETBEX1

MOVDPTR,#0FE00H MOVA,#00HLOOP:MOVX@DPTR,AHERE:CJNER0,#7FH,HEREMOVR0,#78H AJMPHERE

INT1: MOVXA,@DPTR MOV@R0,A

INC DPTR INC R0

MOVA,#00HMOVX@DPTR,ARETI 例:设计一个8路模拟量输入的巡回检测系统,采样数据依次存放在543

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论