单片机应用技术课件_第1页
单片机应用技术课件_第2页
单片机应用技术课件_第3页
单片机应用技术课件_第4页
单片机应用技术课件_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机应用技术1绪论 单片机系统开发板简介上一页下一页单片机芯片电源模块开关输入音乐输出LED显示数码管显示下载接口红外遥控继电控制串行模块2绪论 主要内容主要内容MCS-51单片机结构和原理MCS-51系列单片机指令系统汇编语言程序设计定时/计数、中断和串行口上一页下一页3绪论 主要内容本章首页上一页下一页1.单片机指令的形式,意义和应用2.单片机内部各存储器3.单片机程序设计4.单片机的中断结构及应用本书重点内容本书难点内容1.指令多且杂,需要多加记忆和练习2.程序设计思路和具体实施,需要多读,多看,多想,多做。4绪论上一页下一页主要内容1.1 单片机概述1.2 51单片机结构和引脚1.3

2、 51单片机存储器结构1.4 并行I/O、时序、复位第一章 MCS-51单片机结构和原理5绪论上一页下一页1.单片机引脚结构2.单片机CPU结构3.I/O端口的作用本章重点内容本章难点内容1.单片机引脚排列2.单片机CPU存储器第一章 MCS-51单片机结构和原理6本章首页上一页下一页1.1 单片机概述本节学习重点1.单片机的组成2.单片机的概念3.MCS-51系列单片机的型号及特点71)中央处理器CPU2)存储器3)多输入/输出(I/O)接口电路1)性价比高 2)控制功能强3)集成度高、体积小、可靠性高4位-8位-16位-32位本章首页上一页下一页1.1 单片机概述1.1.1 单片机概念 把

3、组成微型计算机的各功能部件等制作在一块集成芯片中,构成一个完整的微型计算机。相关概念1.组成2.特点3.发展8本章首页上一页下一页1.1 单片机概述1.1.2 单片机的应用数控线切割机床数控车床医用呼吸机位移传感器数据采集工业智能仪器医用生活数字式测角仪9 工业控制中智能家用电器、智能仪器设备、数控机床、自动生产线、智能玩具、相关的数据采集处理显示等等。 日常生活中常见的霓虹灯显示、比赛抢答器、报警器、电子时钟、点阵和液晶显示屏等等。应用实例1.1 单片机概述本章首页上一页下一页101.1 单片机概述1.1.3. MCS-51单片机系列产品型 号AT89C51AT89C52AT89C1051A

4、T89S8252Flash(KB)4818片内RAM(B)12825664256I/O(条)32321532定时器(个)2313中断源(个)6839串行接口(个)1111AT89系列单片机介绍本章首页上一页下一页111.2 51单片机结构和引脚本节学习重点1.单片机的引脚及逻辑符号2.单片机的引脚说明3.单片机的CPU本节学习难点1.引脚图位置记忆本章首页上一页下一页121.2.1 MCS-51的引脚及功能说明1.2 51单片机结构和引脚本章首页上一页下一页13MCS-51 系列单片机外部引脚说明 1. 主电源引脚Vcc(40):接+5V端。 Vss(20):接+5V电源地端。2. 外接晶体引

5、脚XTAL1(19脚):接外部石英晶体的一端。XTAL2(18脚):接外部石英晶体的另一端。1.2 51单片机结构和引脚本章首页上一页下一页143. 控制线 (1)ALE/PROG(30脚) (2)PSEN(29脚) (3)RST/VPD引脚(9脚) (4)EA/Vpp(31脚)1.2 51单片机结构和引脚本章首页上一页下一页MCS-51 系列单片机外部引脚说明 154. 输入/输出引脚 P0、P1、P2、P31.2 51单片机结构和引脚本章首页上一页下一页MCS-51 系列单片机外部引脚说明 161.2.2 MCS-51单片机内部组成1.2 51单片机结构和引脚本章首页上一页下一页171.2

6、 51单片机结构和引脚1.2.3 MCS-51的CPU相关内容介绍运算器CPU1.累加器ACC控制器1.指令寄存器和译码2.B寄存器3.程序状态字PSWCy OV P2.程序计数器PC3.定时与控制电路本章首页上一页下一页181.3 51单片机存储器结构本章首页上一页下一页本节学习重点1.单片机存储器的编址2.数据存储器 工作存储器、位寻址空间、堆栈和数据缓冲区191.3 51单片机存储器结构 存储器是存放数据的地方。实际上是电平的高低。 内部程序存储器ROM内部数据存储器RAM片内有4KB的ROM地址范围0000H-0FFFH片内有128B的ROM地址范围00H-7FH1.工作寄存器区00H

7、-1FH2.位寻址区20H-2FH3.堆栈区30H-7FH本章首页上一页下一页201.4 并行I/O、时序、复位本节学习重点1.I/O端口的特点和功能2.时钟、机器周期3.单片机复位的实现方法,复位后各存储器的状态。本节了解内容:I/O端口的结构单片机掉电处理和低功耗方式本章首页上一页下一页211.4 并行I/O、时序、复位问题:如何使实现单片机与外部硬件之间的数据传输?通过单片机的I/O口本章首页上一页下一页221.4 并行I/O、时序、复位1.4.1 并行输入/输出口(I/O)1、I/O口的特点 4个并行I/O端口都是双向的。P0口为漏极开路驱动;P1,P2,P3口均具有内部上拉电阻驱动,

8、它们有时被称为准双向口。 所有32条并行I/O线都能独立地用做输入或输出,还可以进行位操作。 注意:当P0-P3做输入使用,P3口做第二功能使用是,相应锁存器要置1。本章首页上一页下一页231.4 并行I/O、时序、复位1.4.2 时钟和CPU时序 基本时序单位: 单片机以晶体振荡器的振荡周期为最小的时序单位,片内的各种微操作都以此周期为时序基准。 振荡频率foscl2分频后形成机器周期MC。所以,1个机器周期包含有12个振荡周期。 振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小: 振荡周期

9、1/fosc=1/12MHZ=0.0833us 机器周期=1/(fosc/12)=1s本章首页上一页下一页241.4 并行I/O、时序、复位1.4.3 复位、掉电处理部分特殊功能寄存器的复位状态 说明:表中符号状为随机态。寄存器 复位状态寄存器 复位状态PC 0000H ACC 00H B 00H PSW 00H SP 07H DPTR 0000H P0P3 0FFH IP 00000B IE 000000B TMOD 00H TCON 00H TL0,TL1 00H TH0,TH1 00H SCON 00H SBUF 不定 PCON 00000B 本章首页上一页下一页25本章重点内容小结1.

10、单片机引脚:四组,共40个2.CPU存储器:ACC,B,PSW3.单片机存储器分成程序和数据存储器.程序存储器的地址范围从0000H-0FFFH,共4KB个;数据存储器共128B,分成工作寄存器区,位地址区和堆栈区。第一章 MCS-51单片机结构和原理本章首页上一页下一页26绪论上一页下一页主要内容2.1 单片机的指令系统基础2.3 算术运算类指令 2.6 布尔变量操作指令2.4 逻辑运算及移位指令2.2 数据传送类指令2.5 控制转移指令第二章 MCS-51单片机结构和原理271.单片机寻址方式2.单片机指令系统3.单片机指令应用本章重点内容本章难点内容单片机指令系统多且杂,需要多看,多背,

11、多练,熟练掌握,为程序设计打下良好基础第二章 MCS-51单片机结构和原理28本章首页上一页下一页问题:如何使P1口所连接的8个发光二极管点亮?通过单片机的指令系统编程实现。第二章 MCS-51单片机结构和原理29本章首页上一页下一页2.1 单片机的指令系统基础本节学习重点1.单片机指令格式2.七种寻址方式的名称及标志3.单片机内部常用符号30本章首页上一页下一页2.1 单片机的指令系统基础2.1.1 单片机汇编语言指令格式标号:操作码助记符 目的操作数,源操作数;注释标号:指令的符号地址操作码:表示指令进行何种操作操作数:指令的操作对象注释:对指令功能的说明31本章首页上一页下一页2.1 单

12、片机的指令系统基础2.1.2 单片机的常用符号 Rn 选定当前工作寄存器区的寄存器,n=07 Ri :间接寻址前缀符号 i=0,1 direct 直接地址(8位二进制数) #data #:立即数前缀标志,8位或16位立即数 ADDr16 16位目的地址 ADDr11 11位目的地址 rel 8位带符号偏移量 bit 位操作 / 该位内容取反 MOV A,#00HMOV A, 00H注意:直接地址与立即数之间的区别32本章首页上一页下一页2.1 单片机的指令系统基础 (X) 表示以X为地址单元中的内容 (X) 表示以X地址单元中的内容为地址的 单元中的内容。 $ 当前指令的地址 数据传输方向,用

13、于指向目的操作数 ; 注释 (30H) (30H) 30H31H32H36H35H33H34H35H33H30H34H32H31H36H=35H=(35H)=32H33本章首页上一页下一页2.1 单片机的指令系统基础单片机的寻址方式例如:1000H:JC ,93H 分析:当CY=1时,转移,过程如右图所示:寻址方式标志位立即寻址#data寄存器寻址Rn间接寻址Ri/DPTR直接寻址Direct基址加变址寻址A+PCA+DPTR相对寻址rel特定寄存器寻址A/DPTR34本章首页上一页下一页本节学习重点1.指令的格式2.指令的形式(目的操作数,源操作数)3.指令的注意事项2.2 数据传送类指令3

14、5本章首页上一页下一页2.2 数据传送类指令2.2.1 内部RAM数据传送指令1.指令格式指令格式:MOV 目的操作数,源操作数功能:把源操作数传送到目的操作数中,源操作数内容不变。2.操作数 目的操作数,源操作数注意:没有MOV Rn,Ri、 MOV Rn,Rn和MOV Ri,Ri指令36本章首页上一页下一页2.2 数据传送类指令指令含义目的操作数源操作数MOV内部RAM传送A#data direct Rn RiRn A #data direct RiA #data directdirectA #data direct Rn RiDPTR16位数据Acc 累加器Direct 直接寻址Ri 间

15、接寻址Rn 寄存器#data 立即数DPTR37本章首页上一页下一页2.2 数据传送类指令vccORG 0000H;开始伪指令MOV P1,#0FEHMOV P1,#0FDHMOV P1,#0FBHMOV P1,#00HEND;结束尾指令P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7指令效果演示38本章首页上一页下一页2.2 数据传送类指令2.2.2 数据交换指令1.整字节交换:XCH A,Rn ;(A)(Rn)XCH A,direct ;(A)(direct)XCH A,Ri ;(A)(Ri)2.半字节交换:XCHD A,Ri ;(A)0-3(Ri)0-33.累加器自身高低

16、4位交换SWAP A ;(A)7-4(A)3-0392.2 数据传送类指令例:(A)=01101101B,执行: SWAP A本章首页上一页下一页40本节学习重点1.指令的格式,类似记忆2.指令的形式3.指令的注意事项本节学习难点1.注意运算标志位的变化2.乘除指令的应用2.3 算术运算类指令 本章首页上一页下一页412.3 算术运算类指令 2.3.1 加减指令1.加法ADD:2.带进位加法指令ADDC:3.带进位加法指令SUBB:ADDA,Rn ;A(A)+(Rn)ADDCA,Rn;A(A)+(Rn)+(C)SUBBA,Rn ;A(A)-(Rn)-(C)注意:减法只有带进位的减法指令。计算两

17、数相减,先令(C)=0,再执行SUBB 目的操作数:A 源操作数:Rn/Ri/direct/#data本章首页上一页下一页422.3 算术运算类指令 2.3.2 加/减1指令 INC/DEC 1.助记符:INCDEC2.操作数:A,direct,Ri,Rn,DPTR只用于INC3.指令描述:不影响PSW,即使有进位或借位,CY也不变,除A影响P标志本章首页上一页下一页43P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.72.3 算术运算类指令 vccORG 0000H;开始伪指令MOV P1,#0FEHDEC P1MOV A,P1ADD A,#3MOV P1,AEND;结束尾指令

18、指令效果演示本章首页上一页下一页442.3 算术运算类指令 2.3.4. 乘除指令 1.8位无符号数乘法指令MULAB ;(B 15-8 )( A7-0)(A)(B)PSW:1)若乘积大于256,OV=1 2)CY总是清“0”。例如:(A)=50H,(B)=A0H,执行MUL AB后结果:(B)=32H,(A)=00H,(OV)=1 2.8位无符号除法指令DIVAB ; (A)(A/B)的(商) (B)(A/B)的(余数)PSW: 1)CY、OV,清“0” 2)若(B)=0,OV=1。例如:(A)=2AH,(B)=05H,执行DIV AB后结果:(A)=08H,(B)=02H,(OV)=0本章

19、首页上一页下一页45本节学习重点1.指令的格式2.指令的形式,注意目的操作数3.指令的注意事项本节学习难点1.注意很多指令的目的操作数只能是A2.与、或和异或指令的应用2.4 逻辑运算及移位指令本章首页上一页下一页462.4 逻辑运算及移位指令2.4.1 累加器的逻辑操作指令1. 累加器清零、取反指令累加器清零指令1条,它是将A的内容清“0”。 CLRA ;A0累加器取反指令1条,它是将A的内容按位取反。 CPLA;A(A)例如(A)=27H。(A)=00100111B CPL A (A)=11011000B CLR A (A)=00000000B本章首页上一页下一页472.4 逻辑运算及移位

20、指令2.累加器移位操作:(RL,RLC,RR,RRC4条)RL A 左环移累加器 A累加器 ACyRRC A 带进位位右环移累加器 ARR A 右环移累加器 ACyRLC A 带进位位左环移本章首页上一页下一页48 2.4.2 逻辑运算指令 包括逻辑与、或、异或运算指令 目的操作数为A/direct, 源操作数为A/Rn/Ri/direct/#data 2.4 逻辑运算及移位指令指 令 形 式ByteTmANL(ORL,XRL) direct, A21ANL(ORL,XRL) direct, #data32ANL(ORL,XRL) A, #data21ANL(ORL,XRL) A, direc

21、t21ANL(ORL,XRL) A, Ri11ANL(ORL,XRL) A, Rn11本章首页上一页下一页492.4 逻辑运算及移位指令P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vccORG 0000H;开始伪指令MOV P1,#00HORL P1,#0FFHORL P1,#00HANL P1,#00HANL P1,#0FFHXRL P1,#00HXRL P1,#0FFHEND;结束尾指令指令和1操作和0操作与不变清0或置1不变异或取反不变指令效果演示本章首页上一页下一页50本节学习重点1.指令的格式2.指令的形式3.指令的注意事项4.下一条指令的执行位置本节学习难点:1

22、.CJNE DJNZ指令用法2.指令转移方向2.5 控制转移指令本章首页上一页下一页512.5 控制转移指令2.5.1 无条件转移: LJMP,AJMP,SJMP,JMP4条LJMP addr16 长跳转指令 可在64K范围内跳转AJMP addr11 绝对跳转指令 可在指令所在的2K范围内跳转SJMP rel 相对跳转指令 可在当前PC-128与+127范围内跳转本章首页上一页下一页521.短调用指令 ACALL addr112.长调用指令 LCALL addr16 编程时,可用标号代替转移目的地址,addr11,addr16交给编译程序计算。 注意:调用指令ACALL LCALL必须与RE

23、T相对应。3.返回指令RET和中断返回指令RETI4.空操作指令NOP2.5 控制转移指令2.5.2 调用指令断点主程序主程序调用子程序返回本章首页上一页下一页532.5 控制转移指令例 分析下列程序的执行过程,并说明程序执行后P1中的值。 MOV A,#0FFHA1:CPL AJZ A0 A2:ADD A,#0FHRETJNZ A0A0:MOV P1,A JNB ACC.7,A2 CALL A1本章首页上一页下一页542.5 控制转移指令条件不满足时,顺序执行;条件满足时,转移执行。1.判A转移,2字节JZ rel ;条件:(A)= 0JNZ rel ;条件:(A)02.判Bit转移,3字节

24、 JB bit, rel ;条件:(bit)= 1 JNB bit, rel ;条件:(bit)= 0 JBC bit, rel ;条件:(bit)= 1转移,并清bit位3.判C转移,2字节JC rel ;条件:(C)= 1JNC rel ;条件:(C)= 02.5.3 条件转移指令本章首页上一页下一页552.5 控制转移指令2.5.3、条件转移指令4.比较不相等转移指令CJNE A,#data,relCJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel(A)=#data,继续 C0(A)#data, 转 C0(A)#data, 转 C1本章

25、首页上一页下一页562.5 控制转移指令 5.减“1”不为0转移指令DJNZ又称循环转移指令,主要用来构成循环结构,有2条:DJNZRn, rel ;2字节指令,2周期指令DJNZdirect,rel ;3字节指令,2周期指令目的地址:(PC)=(PC)+ 指令字节数2或3 + rel 分析下面程序的执行过程: MOV R7,#3 MOV A,#00H LOOP:INC A DJNZ R7,LOOP ENDLOOP执行次数(A)DJNZ执行后(R7)DJNZ执行前(R7)112221330321本章首页上一页下一页57本节学习重点1.指令的格式2.指令的形式3.指令的注意事项本节学习难点1.区

26、分位与字节的含义及用法2.6 布尔变量操作指令本章首页上一页下一页582.6.1 概述1.布尔处理器C:可寻址内部RAM中的可寻址位: bit = 00FFH,和SFR中的可寻址位。2.位地址的描述形式: 1)直接位地址,如MOV C, 70H 2)字节地址+位地址,如20H.1,ACC.4,PSW.4等 3)位寄存器名称,如F0,C,RS1,RS0等 4)伪指令定义过的位名称2.6 布尔变量操作指令本章首页上一页下一页592.6 布尔变量操作指令指令用法MOVC,BITBIT,CCLRC/BITSETBCPLANLC,BITC,/BITORL位指令参考字节指令本章首页上一页下一页602.6

27、布尔变量操作指令P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vccORG 0000H;开始伪指令CLR P1.0CPL P1.0CLR P1.1SETB P1.1END;结束尾指令指令效果演示本章首页上一页下一页61本章重点内容小结1.汇编指令2.指令格式标号:操作码助记符 目的操作数,源操作数;注释3.7种寻址方式立即寻址、寄存器寻址、间接寻址、直接寻址、变址寻址、相对寻址和特定寄存器寻址。4.51单片机指令系统数据传送类指令: (29条)算术运算类指令: (24条)逻辑运算及移位类指令: (24条)控制转移类指令: (17条)位操作(布尔操作)类指令:(17条)第二章

28、MCS-51单片机结构和原理本章首页上一页下一页62指令含义目的操作数源操作数结果MOV传送A direct Rn Ri DPTR#data A direct Rn Ri(目的操作数)=(源操作数)XCH交换Adirect Rn RiA 源操作数PUSHPOP入栈出栈directdirectADDADDCSUBB加带进位加带进位减A#data direct Rn Ri(A)=(A)+(源)(A)=(A)+(源)+(C)(A)=(A)-(源)-(C)INC加1A direct Rn Ri DPTR(目)=(目)+1DEC减1A direct Rn Ri(目)=(目)-11)指令系统总结1本章首页

29、上一页下一页第二章 MCS-51单片机结构和原理63指令含义目的操作数源操作数CJNE比较不相等转移A#data direct Rn RiRn Ri#dataDJNZ减1不为0跳转Rn direct relANLORLXRL与或异或A#data direct Rn Ridirect#data A ANLORL与或Cbit /bitMOV传送 CBITBIT C1)指令系统总结2本章首页上一页下一页第二章 MCS-51单片机结构和原理64本章首页上一页下一页固定用法:SWAP AMOVC A,A+DPTRMOVC A,A+PCMOVX A,DPTRMOVX A,RiMOVX DPTR,AMOVX

30、 Ri,AMUL ABDIV ABDA ACPL ACLR ARL ARRC ARR ARRC ALJMP addr16AJMP addr11SJMP relLCALL addr16ACALL addr11JZ relJNZ relCLR C/BITSETB C/BITCPL C/BITJC RELJNC RELJB BIT,RELJNB BIT,RELJBC BIT,REL指令系统总结3第二章 MCS-51单片机结构和原理65第三章 汇编语言程序设计主要内容3.1 程序设计一般过程和注意事项3.2 发光二极管的程序设计3.3 七段码显示器的程序设计3.4 键盘程序设计绪论上一页下一页66本章

31、首页上一页下一页1.单片机程序设计方法2.硬件电路分析本章重点内容本章难点内容1.单片机指令系统是程序设计的基础,要熟记2.硬件电路与软件设计相结合进行程序设计第三章 汇编语言程序设计67本章首页上一页下一页3.1 程序设计一般过程和注意事项本节学习重点1.伪指令的含义及用法2.流程图的形式683.1 程序设计一般过程和注意事项3.1.1 汇编语言设计步骤设计步骤编程前多思考设计课题设计规划模型算法绘制流程程序设计调试修正编程中多检查本章首页上一页下一页693.1 程序设计一般过程和注意事项3.1.2 编制程序的流程图开始 起点处理框判断框处理框结束子程序框本章首页上一页下一页703.1 程序

32、设计一般过程和注意事项流程图练习例:要使内部RAM的R0-R3的内容为05H,画出流程图。开始R0变为05HR1变为05H结束R2变为05HR3变为05H本章首页上一页下一页713.1 程序设计一般过程和注意事项3.1.3 单片机51系列的伪指令 伪指令是指令系统之外的,是程序源发给汇编程序的指令。不执行也不占用字节。下面介绍MCS-51汇编语言程序中常用的伪指令。 1. ORG汇编起始地址命令标号: ORG 地址 2. END汇编终止命令 END 表达式 3. DB定义字节命令 标号: DB 数据表 4. DW 定义字命令 标号: DW 字数据表本章首页上一页下一页723.2 发光二极管的程

33、序设计本节学习重点1.掌握顺序程序的设计方法2.可以通过硬件连接转化成单片机的输入输出值3.掌握循环程序的设计方法本节学习难点1.延时程序的分析2.循环程序中的初始化,控制转移本章首页上一页下一页733.2 发光二极管的程序设计P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc1.根据硬件连接判定LED的连接方式2.将设计要求转化成单片机I/O口输出的高低电平的变化3.将高低电平的变化用程序设计出来。设计步骤1.LED共阳和共阴的接法2.信号的变化要通过单片机的I/O口输出3.注意A中存的值,是否需要暂存4.信号的变化需要加延时程序注意事项本章首页上一页下一页743.2 发

34、光二极管的程序设计3.2.1 编程实现P0.0所连接的灯闪烁,间隔为1S。设计思路:1.灯亮一秒,灭一秒,再重复上述过程。2.亮一秒,灭一秒可用顺序程序设计方法3.重复的过程可用无条件转移指令完成P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc动画播放动画播放本章首页上一页下一页753.2 发光二极管的程序设计程序设计流程图开始灯亮一秒灯灭一秒结束ORG 0000HLOOP:CLR P0.0;灯亮 LCALL DELL ;延时1秒 SETB P0.0 LCALL DELL AJMP LOOPDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#

35、2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END位指令CPL P0.0LCALL DELL本章首页上一页下一页763.2 发光二极管的程序设计程序设计流程图开始灯亮一秒灯灭一秒结束ORG 0000HLOOP:MOV P0,#0FEH;灯亮LCALL DELL;延时1秒MOV P0,#0FFH;灯灭LCALL DELLAJMP LOOPDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END字节指令MOV P0,

36、#0FEHLOOP:LCALL DELL;延时1秒XRL P0,#01H;灯变换状态同一程序可以用多种不同的方法实现,需要多加练习本章首页上一页下一页773.2 发光二极管的程序设计P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc3.2.2 编程实现P1所连接的灯一个一个的循环点亮,时间间隔为1S。动画播放动画播放本章首页上一页下一页783.2 发光二极管的程序设计设计思路:1.灯每次亮一个,数值分别为11111110B,11111101B,11111011B,11110111B,11101111B,11011111B,10111111B,01111111B。从上面的数值

37、分析,可以直接用赋值的方法也可以用数据移位的方法。2.从第一个灯到最后一个灯,可用顺序程序设计方法3.重复的过程可用无条件转移指令完成3.2.2 编程实现P1所连接的灯一个一个的循环点亮,时间间隔为1S。本章首页上一页下一页793.2 发光二极管的程序设计3.2.2 编程实现P1所连接的灯一个一个的循环点亮,时间间隔为1S。方法 1程序设计流程图开始第一个灯亮一秒第二个灯亮一秒结束第八个灯亮一秒ORG 0000HLOOP:MOV P1,#0FEH;灯1亮LCALL DELL;延时1秒MOV P1,#0FDH;灯2亮LCALL DELL.MOV P1,#07FH;灯8亮LCALL DELLAJM

38、P LOOPDELL:MOV R7,#0;延时1秒子程序. RET END赋值法本章首页上一页下一页803.2 发光二极管的程序设计开始灯亮的初值相应灯亮一秒结束灯亮数值移位3.2.2 编程实现P1所连接的灯一个一个的循环点亮,时间间隔为1S。方法 2程序设计流程图ORG 0000HMOV A,#0FEH;初值LOOP:MOV P0,A RL A;间接移位 LCALL DELL AJMP LOOPDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END移位法单片机指

39、令系统中有很多指令只依靠累加器A才能完成,因此很多程序需要借助A进行数据处理,即间接本章首页上一页下一页813.2 发光二极管的程序设计3.2.3 编程实现P0所连接的8个灯以下表的形式循环点亮。P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮亮本章首页上一页下一页823.2 发光二极管的程序设计P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc动画播放动画播放3.2.3 编程实现P0所连接的8个灯以下表的形式循环点亮。本章首页上一页下一页833.2 发光二极管的程序设计设计思路:1.灯每

40、次亮一个,数值分别为11111110B,11111100B,11111000B,11110000B,11100000B,11000000B,10000000B,00000000B.从上面的数值分析,可以直接用赋值的方法也可以用数据移位的方法。2.从第一个灯到最后一个灯,可用顺序程序设计方法3.重复的过程可用无条件转移指令无法完成循环程序设计方法3.2.3 编程实现P0所连接的8个灯以下表的形式循环点亮。本章首页上一页下一页843.2 发光二极管的程序设计 循环结构地址指针计数初值循环保障单次循环的顺序程序设计修改地址指针修改变量循环结束条件结果分析、处理和存放1. 初始化2. 循环处理3. 循

41、环控制4. 循环结束*循环主体部分本章首页上一页下一页85移位法3.2 发光二极管的程序设计开始灯亮的初值,循环次数相应灯亮一秒结束灯亮数值带进位移位程序设计流程图ORG 0000HLOP0:MOV A,#0FEH;初值 MOV R0,#8LOOP:MOV P0,A CLR C RLC A;间接移位 LCALL DELL DJNZ R0,LOOP AJMP LOP0DELL:MOV R7,#0 . RET END循环是否结束是否注意:循环程序设计中循环次数寄存器不要与延时程序中的寄存器复用,否则会造成循环无法停止3.2.3 编程实现P0所连接的8个灯以下表的形式循环点亮。本章首页上一页下一页8

42、63.3 七段码显示器的程序设计本节学习重点1.掌握查表程序的设计方法2.可以通过硬件连接转化成单片机的输入输出值3.掌握循环程序的设计方法本节学习难点1.查表程序设计方法2.循环程序中的控制转移本章首页上一页下一页87COM:显示器位选线 adp:显示器段选线3.3 七段码显示器的程序设计3.3.1 七段码显示数码管结构本章首页上一页下一页883.3 七段码显示器的程序设计P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc动画播放动画播放3.3.2 七段码显示器从0-9循环点亮。本章首页上一页下一页893.3 七段码显示器的程序设计设计思路:灯亮0-9,数值分别为共阳顺序

43、段码:C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H共阴顺序段码:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dpa)从上面的数值分析,可以直接用赋值的方法也可以用查表的方法。3.3.2 七段码显示器从0-9循环点亮。本章首页上一页下一页903.3 七段码显示器的程序设计3.3.3 查表指令汇编指令格式 MOVC A,A+DPTR A (A)+(DPTR) MOVC A,A+PC PC (PC)+1, A (A)+(PC) AA+DPTR变址远程查表ROM64KBA+PC变址近程查表ROM指令附近256B本章首页上一页下一页9

44、13.3 七段码显示器的程序设计0200H0201H0202H0203H0204H0205H0206H0207H0208H0209H020AH020BHC0HF9HA4HB0H99H92H82HF8H80H90H00H00HTAB:3.3.4 查表程序设计MOV DPTR ,#TABMOV A,#0MOVC A,A+DPTR MOV P1 ,ATAB:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90HMOV A,#1DPTRTAB:(A )=(dptr)+(A)C0HF9H本章首页上一页下一页923.3 七段码显示器的程序设计3.3.4

45、查表程序设计具体程序设计 ORG 0000H MOV DPTR,#TABLOOP0:MOV R4,#10 MOV R3,#0 LOOP1:MOV A,R3 MOVC A,A+DPTR MOV P0,A INC R3 LCALL DELL DJNZ R4,LOOP1 AJMP LOOP0TAB:DB 0C0H,0F9H,0A4H DB 0B0H,99H,92H,82H DB 0F8H,80H,90HDELL:MOV R7,#0DEL1:MOV R6,#0DEL2:MOV R5,#2DEL3:DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET END本章首页上一页

46、下一页933.4 键盘程序设计本节学习重点1.单片机I/O口做为数据输入时的方法2.矩阵式键盘的工作原理3.理解键盘程序设计方法本节学习难点1.矩阵式键盘的工作原理2.键盘程序设计方法本章首页上一页下一页941.按键开关抖动问题按键开关在电路中的连接如图所示:3.4 键盘程序设计3.4.1 键盘工作原理由于按键是机械的弹性开关,在按下和断开时,触点在闭合和断开时,会引起A点电位的不稳定,一般有510ms的抖动,导致误信号,使CPU产生错误的处理。本章首页上一页下一页953.4 键盘程序设计3.4.2 独立式按键及其接口特点:每个按键占用一根I/O线,相互之间没有影响。键1按下子程序是否有键按下

47、是否判断键值键盘程序设计的一般思路键2按下子程序键n按下子程序本章首页上一页下一页963.4 键盘程序设计KEY:MOV P1,#07H MOV A,P1 CPL A ANL A,#07H JZ GRET JB ACC.0,KEY1 JB ACC.1,KEY2 JB ACC.2,KEY3 GRET:RETKEY1:LCALL WORK1KEY2:LCALL WORK2KEY3:LCALL WORK3 RET本章首页上一页下一页973.4 键盘程序设计3.4.2 矩阵式按键及其接口特点:也称行列式键盘。44行列结构,可安装16个按键, 形成一个键盘。本章首页上一页下一页98 汇编语言程序具有顺序

48、结构、循环结构、分支结构和子程序结构四种结构形式。实际的应用程序一般都由一个主程序和多个子程序构成,即采用模块化的程序设计方法。 程序设计的原则是尽可能使程序简短和缩短运行时间,设计的关键首先是根据实际问题和所选用的单片机的特点来合理地确定解决问题的算法,然后是将工作任务细分成易于理解和实现的小模块。 在程序设计时,要注意顺序程序、循环程序、分支程序、查表程序和子程序的特点和设计方法。要设计出高质量的程序还需要掌握一定的技巧,通过多读、多看一些实用程序可以积累一定的设计经验。 第三章 汇编语言程序设计本章首页上一页下一页99第四章 单片机定时器/计数器、中断和串行口主要内容4.1 MCS-51

49、的定时器/计数器4.2 单片机中断系统4.3 单片机串行口绪论上一页下一页1001.中断系统组成与结构2.中断相关存储器3.中断程序设计本章重点内容本章难点内容中断程序的设计相对复杂,但有一些固定的格式可以参考。第四章 单片机定时器/计数器、中断和串行口本章首页上一页下一页1014.1 MCS-51的定时器/计数器本节学习重点1.单片机定时器/计数器的内部结构2.单片机定时器/计数器的相关存储器3.输出方波程序的设计方法本节学习难点1.定时器/计数器初值的设定方法2.输出方波程序的控制转移部分分析方法本章首页上一页下一页1024.1 MCS-51的定时器/计数器4.1.1 定时器/计数器的结构

50、 51子系列单片机共有两个16位的定时器/计数器,分别用T0和T1表示。定时功能计数功能计数外部信号下降沿的个数。计数内部机器周期的个数。计数初值=2 -Nx定时时间=(2 -N)T机x在不同的工作方式下,X可取8,13,16本章首页上一页下一页103M1 M04.1 MCS-51的定时器/计数器4.1.2 定时器/计数器的内部寄存器1. 方式控制寄存器TMOD 定时器1 C/TGATEGATEC/TM1M0GATEC/TM1M0GATE:门控位 GATE=0 直接控制定时器启动。 GATE=1 外中断请求信号和运行控制位TR0(TR1)同时控制定时器启动。C/T:定时方式或计数方式选择位。

51、C/T=0 定时工作方式。 C/T=1 计数工作方式。M1M0:工作方式选择 M1M0=00 方式013位定时器/计数器。 M1M0=01 方式116位定时器/计数器。 M1M0=10 方式2自动重计数初值的8位定时器/计数器。 M1M0=11 方式3定时器0为两个独立的8位定时器/计数器。定时器0 本章首页上一页下一页1044.1 MCS-51的定时器/计数器2. 定时器/计数器控制寄存器TCON TF1 TF0 IE1 IT1 IE0 IT0TCON88HT1溢出中断标志(TCON.7): T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才

52、由硬件自动清0。也可用软件查询该标志,并由软件清0。外部中断INT1中断标志位(TCON.3) : IE11,外部中断1向CPU申请中断 外部中断INT1触发方式控制位(TCON.2): IT1=0,电平触发方式 IT1=1, 下降沿触发方式本章首页上一页下一页1054.1 MCS-51的定时器/计数器P1.0示波器4.1.3 定时器/计数器的应用动画播放动画播放本章首页上一页下一页1064.1 MCS-51的定时器/计数器4.1.3 定时器/计数器的应用 设单片机晶振频率fosc=6MHz,选用定时器1以方式0产生周期为1ms的方波,并由P1.0输出。1.计算计数初值:产生周期为1ms宽的方

53、波,只需在P1.0端以500s为周期交替输出高低电平即可实现设待求的计数初值为X,得(TH1)=F8H,(TL1)=06H。2. TMOD寄存器的初始化:方式0,M1M0=00;定时,C/T=0;运行控制,则GATE=0。定时器0不用,有关位设定为0。因此(TMOD)=00H。3.TR1=1启动。本章首页上一页下一页1074.1 MCS-51的定时器/计数器具体程序设计 ORG0000HMOVTMOD,#00H ;设置T1工作方式MOVTH1,#0F8H ;设置计数初值MOVTL1,#06H SETBTR1;启动定时LOOP:JBCTF1,LOOP1;查询计数溢出,溢出位清0AJMPLOOPL

54、OOP1:MOVTH1,#0F8H;重新设置计数初值 MOVTL1,#06H CPLP1.0;输出取反AJMPLOOP;重复循环 END 本章首页上一页下一页108本节学习重点1.中断的相关存储器2.中断的工作过程3.中断程序的设计方法本节学习难点1.中断初始化2.中断子程序设计4.2 单片机中断系统本章首页上一页下一页1094.2 单片机中断系统4.2.1 中断的基本概念 当CPU在执行程序时,由某些原因使CPU暂停正在执行的程序,转向执行随机事件,处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。 单片机处理中断的4个步骤:中断请求、中断响应、中断处理和中断返回。本章首页上一页

55、下一页1104.2 单片机中断系统4.2.1 中断的相关寄存器 IE EA ESET1EX1ET0EX01. 中断允许控制IEEA:总中断允许控制位。ES:串行口中断允许位。ET1:定时器1中断允许位。EX1:外部中断1中断允许位。ET0:定时器0中断允许位。EX0: 外部中断0中断允许位。 当相应位设为 1时,相应位中断允许。本章首页上一页下一页1114.2 单片机中断系统4.2.2 中断处理过程程序存储器ROM0023H:串行口中断入口0003H:外部中断0入口000BH:定时器0溢出中断入口0013H:外部中断1入口001BH:定时器1溢出中断入口002AH使用时,通常在这些入口地址处存

56、放一条跳转指令,使程序跳转到用户安排的中断服务程序起始地址上去!本章首页上一页下一页1124.2 单片机中断系统4.2.2 中断处理过程中断源发中断请求中断响应条件 是否满足?中断是否受阻? 把PC断点地址压入堆栈 相应中断源的中断入口地址送入PC,转向中断服务程序NYYN 由硬件自动完成本章首页上一页下一页1134.2 单片机中断系统4.2.2 中断处理过程 关中断保护现场中断服务 开中断 关中断恢复现场 开中断中断返回断点地址由堆栈弹入PC保护现场和恢复现场的过程中不允许中断,以免现场遭到破坏。保护和恢复现场之后的开中断是为了允许有更高级中断打断此中断服务程序。 硬件自动完成本章首页上一页

57、下一页1144.2.3 中断程序设计实例P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7vcc动画播放动画播放INT0INT1按下松开按下松开4.2 单片机中断系统本章首页上一页下一页1154.2 单片机中断系统具体程序设计 ORG 0000H AJMP MAIN ORG 0003H AJMP IINTO ORG 0013H AJMP IINTIORG 0030HMAIN:CLR IT0 CLR IT1 SETB EA SETB EX0 SETB EX1 MOV A,#0FEHLOOP:MOV P0,A RL A LCALL DELL AJMP LOOPDELL:MOV R7,#0DELL1:MOV R6,#0DELL2:MOV R5,#2DELL3:DJNZ R5,DELL3 DJNZ R6,DELL2 DJNZ R7,DELL1 RETIINTO:MOV P0,#00H LCALL DELL RETIIINTI:MOV P0,#0AAH LCALL DELL RETI END本章首页上一页下一页1164.3 单片机串行口本节学习重点1.串行口的相关存储器2.串行口的工作过程3.理解发送数据与接收数据程序本节学习难点1.串口初始化2.理解发送数据与接收数据程序本章首页上一页下一页1174.3 单片机串行口4.3.1 串行口的基本概念1.串行通信

温馨提示

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

评论

0/150

提交评论