1、 单片机实训课题单片机实训课题南京技师学院电气工程系电子信息二室单片机实训授课计划单片机实训授课计划(四周)(四周)n课题一:单片机的软件仿真课题一:单片机的软件仿真n课题二:基于单片机的循环彩灯课题二:基于单片机的循环彩灯n课题三:基于单片机的键盘应用课题三:基于单片机的键盘应用n课题四:基于单片机的数码显示课题四:基于单片机的数码显示单片机理论知识单片机理论知识一、一、5151系列单片机概述系列单片机概述二、二、MCS-51MCS-51单片机的结构单片机的结构一、一、MCS-51MCS-51单片机内部结构框图单片机内部结构框图二、二、MCS-51MCS-51单片机芯片内部逻辑结构单片机芯片
2、内部逻辑结构三、三、MCS-51MCS-51的信号引脚的信号引脚四、四、MCS-51MCS-51单片机的内部存储器单片机的内部存储器五、五、MCS-51MCS-51单片机时钟电路与时序单片机时钟电路与时序六、六、MCS-51MCS-51单片机复位电路单片机复位电路三、程序讲解三、程序讲解5151系列单片机概述系列单片机概述一、一、MCS-51MCS-51系列系列 (1 1)MCS-51MCS-51是是IntelIntel公司生产的一个单片机系公司生产的一个单片机系列名称。属于这一系列的单片机有多种,如:列名称。属于这一系列的单片机有多种,如:8051/8751/80318051/8751/80
3、31;8052/8752/80328052/8752/8032;80C51/87C51/80C3180C51/87C51/80C31 80C52/87C52/80C3280C52/87C52/80C32等等 。80C5180C51系列概述系列概述(2 2)该系列生产工艺有两种:)该系列生产工艺有两种:一是一是HMOSHMOS工艺工艺(高密度短沟道(高密度短沟道MOSMOS工艺)。工艺)。二是二是CHMOSCHMOS工艺工艺(互补金属氧化物的(互补金属氧化物的HMOSHMOS工工艺)。艺)。CHMOSCHMOS是是CMOSCMOS和和HMOSHMOS的结合,既保持了的结合,既保持了HMOSHMO
4、S高速度和高密度的特点,还具有高速度和高密度的特点,还具有CMOSCMOS的低功耗的低功耗的特点。的特点。在产品型号中凡带有字母在产品型号中凡带有字母“C”C”的即的即为为CHMOSCHMOS芯片芯片,CHMOSCHMOS芯片的电平既与芯片的电平既与TTLTTL电平电平兼容,又与兼容,又与CMOSCMOS电平兼容。电平兼容。80C5180C51系列概述系列概述(3 3)在功能上,该系列单片机有基本型和增强)在功能上,该系列单片机有基本型和增强型两大类:型两大类:基本型基本型:8058051 1/875/8751 1/803/8031 180C580C51 1/87C5/87C51 1/80C3
5、/80C31 1增强型增强型:8058052 2/875/8752 2/803/8032 280C580C52 2/87C5/87C52 2/80C3/80C32 280C5180C51系列概述系列概述4 4)在片内程序存储器的配置上,该系列单片机)在片内程序存储器的配置上,该系列单片机有三种形式,即掩膜有三种形式,即掩膜ROMROM、EPROMEPROM和和ROMLessROMLess(无无片内程序存储器片内程序存储器)。如:如:80C5180C51有有4K4K字节的掩膜字节的掩膜ROMROM;8 87 7C51C51有有4K4K字节的字节的EPROM EPROM;80C80C3 31 1在
6、芯片内无程序存储器。在芯片内无程序存储器。80C5180C51系列概述系列概述二、二、80C5180C51系列系列 80C5180C51是是MCS-51MCS-51系列中系列中CHMOSCHMOS工艺的一个典工艺的一个典型品种型品种 ;其它厂商;其它厂商以以80518051为基核为基核开发出的开发出的CMOSCMOS工工艺单片机产品艺单片机产品统称为统称为80C5180C51系列系列。当前常用的。当前常用的80C5180C51系列单片机主要产品有:系列单片机主要产品有:IntelIntel的:的:80C3180C31、80C5180C51、87C5187C51,80C3280C32、80C52
7、80C52、87C5287C52等;等;ATMELATMEL的:的:89C5189C51、89C5289C52、89C205189C2051等;等;PhilipsPhilips、华邦、华邦、DallasDallas、Siemens(InfineonSiemens(Infineon)等公司的许多产品等公司的许多产品 。80C5180C51系列概述系列概述三、三、80C5180C51典型产品资源配置典型产品资源配置8051单片机的结构一、一、MCS-51单片机内部结构框图单片机内部结构框图8051单片机的结构二、二、MCS-51单片机芯片内部逻辑结构单片机芯片内部逻辑结构1.中央处理器中央处理器(
8、CPU)运算器运算器控制器控制器:ALU(ALU(算术逻辑单元算术逻辑单元)、ACC(ACC(累加器累加器)、B B寄存器寄存器、程序状态字程序状态字、暂存寄存器暂存寄存器:PC(PC(程序计数器程序计数器)、PCPC加加1 1寄存器寄存器、指令寄存器指令寄存器、指令译码器指令译码器8051单片机的结构2.2.内部数据寄存器内部数据寄存器RAM(128RAM(128*8)8)、RAMRAM地址寄存器地址寄存器3.3.内部程序寄存器内部程序寄存器ROM(4KROM(4K*8)8)、程序地址寄存器程序地址寄存器4.4.定时器定时器/计数器计数器2 2个个1616位的定时器位的定时器/计数器计数器5
9、.5.并行并行I/OI/O口口4 4个个8 8位的位的I/OI/O口(口(P P0 0、P P1 1、P P2 2、P P3 3)8051单片机的结构6.6.串行口串行口7.7.中断控制系统中断控制系统 5 5个中断源个中断源:外中断:外中断2 2个、定时个、定时/计数中断计数中断2 2个、个、串行中断串行中断1 1个。个。8.8.时钟电路时钟电路9.9.位处理器位处理器10.10.总线总线8051单片机的结构三、三、MCS-51的信号引脚的信号引脚40引脚双列直插式引脚双列直插式8051单片机的结构1.1.信号引脚介绍信号引脚介绍 输入输入/输出口线输出口线P P0.00.0P P0.70.
10、7 P P0 0口口8 8位双向口线位双向口线P P1.01.0P P1.71.7 P P1 1口口8 8位双向口线位双向口线P P2.02.0P P2.72.7 P P2 2口口8 8位双向口线位双向口线P P3.03.0P P3.73.7 P P3 3口口8 8位双向口线位双向口线 ALE ALE 地址锁存控制信号地址锁存控制信号(1)P(1)P0 0口输出的低口输出的低8 8位地址锁存控制信号位地址锁存控制信号(2)(2)作为外部时钟或外部定时脉冲作为外部时钟或外部定时脉冲8051单片机的结构 PSEN PSEN 外部程序存储器读选通信号外部程序存储器读选通信号 EA EA 访问程序存储
11、器控制信号访问程序存储器控制信号0 0:仅访问外部程序存储器:仅访问外部程序存储器1 1:从内部程序存储器开始访问,:从内部程序存储器开始访问,并可延续至外部程序存储器。并可延续至外部程序存储器。RST RST 复位信号:连续复位信号:连续2 2个周期以上的高电平。个周期以上的高电平。XTAL XTAL1 1、XTALXTAL2 2 外接晶体引线端外接晶体引线端 V VSSSS 地线地线 V VCCCC +5V +5V电源电源8051单片机的结构2.2.信号引脚的第二功能信号引脚的第二功能 P P3 3口线的第二功能口线的第二功能外部外部RAMRAM读选通读选通RDRDP P3.73.7外部外
12、部RAMRAM写选通写选通WRWRP P3.63.6定时器定时器/计数器计数器1 1计数输入计数输入T T1 1P P3.53.5定时器定时器/计数器计数器0 0计数输入计数输入T T0 0P P3.43.4外部中断外部中断1 1申请申请INTINT1 1P P3.33.3外部中断外部中断0 0申请申请INTINT0 0P P3.23.2串行数据发送串行数据发送TXDTXDP P3.13.1串行数据接受串行数据接受RXDRXDP P3.03.0信号名称信号名称第二功能第二功能口线口线8051单片机的结构四、四、MCS-51单片机的内部存储器单片机的内部存储器以以80C5180C51为例为例数据
13、存储器数据存储器程序存储器程序存储器低低128128单元单元(单元地址单元地址00H-7FH)00H-7FH)高高128128单元单元(单元地址单元地址80H-FFH)80H-FFH)8051单片机的结构(一)(一)内部数据存储器低内部数据存储器低128128单元单元1.1.通用寄存器区通用寄存器区 (00H-1FH)(00H-1FH)(1)(1)分成四组分成四组0,1,2,30,1,2,3,每组,每组8 8个寄存器个寄存器(R(R7 7-R-R0 0),),每个寄存器为每个寄存器为8 8位。位。(2)(2)任意时刻,任意时刻,CPUCPU只能使用其中的一组寄存器只能使用其中的一组寄存器。(3
14、)(3)运用通用寄存器,可以简化程序设计,提高运行速度。运用通用寄存器,可以简化程序设计,提高运行速度。2.2.位寻址区位寻址区 (20H-2FH)(20H-2FH)3.3.用户用户RAMRAM区区 (30H-7FH)(30H-7FH)8051单片机的结构(二)内部数据存储器高(二)内部数据存储器高128128单元单元专用寄存器专用寄存器(SFRSFR)、特殊功能寄存器、特殊功能寄存器1.1.专用寄存器简介:专用寄存器简介:2222个,可寻址个,可寻址2121个。个。(1)(1)程序计数器程序计数器(PC(PC):):1616位,不可寻址。位,不可寻址。(2)(2)累加器累加器A(A(或或AC
15、CACC):):8 8位,寻址地址位,寻址地址0E0H0E0H。(3)B(3)B寄存器:寄存器:8 8位,寻址地址位,寻址地址0F0H0F0H。8051单片机的结构(4)(4)程序状态字程序状态字(PSW(PSW):):8 8位,寻址地址位,寻址地址0D0H0D0H。位序位序PSW.7PSW.7PSW.6PSW.6PSW.5PSW.5PSW.4PSW.4PSW.3PSW.3PSW.2PSW.2PSW.1PSW.1PSW.0PSW.0位标志位标志CYCYACACF0F0RSRS1 1RSRS0 0OVOV/P PCY:CY:进位标志位。进位标志位。AC:AC:辅助进位标志位。辅助进位标志位。F0
16、:F0:用户标志位。用户标志位。RSRS1 1和和RSRS0 0:寄存器组选择位。寄存器组选择位。OV:OV:溢出标志位。溢出标志位。P:P:奇偶标志位。奇偶标志位。(5)(5)数据指针数据指针(DPTR(DPTR):):1616位位寻址地址:寻址地址:82H(DPL)82H(DPL),83H(DPH)83H(DPH)。8051单片机的结构2.2.专用寄存器的专用寄存器的字节寻址字节寻址(2121个)个)3.3.专用寄存器的专用寄存器的位寻址位寻址(1)21(1)21个专用寄存器不连续分布在内部个专用寄存器不连续分布在内部RAMRAM的高的高128128个单元,个单元,空余单元不能使用。空余单
17、元不能使用。(2)(2)程序计数器程序计数器(PC)(PC)不可寻址。不可寻址。(3)(3)对专用寄存器采用直接寻址方式,指令中使用寄存对专用寄存器采用直接寻址方式,指令中使用寄存器符号或寄存器地址。器符号或寄存器地址。(1)11(1)11个专用寄存器可位寻址(个专用寄存器可位寻址(8383个寻址位)。个寻址位)。(2)(2)与内部数据存储器低与内部数据存储器低128128单元中的位寻址区单元中的位寻址区(20H-2FH),(20H-2FH),共同组成数据位存储区。共同组成数据位存储区。8051单片机的结构(三)(三)MCS-51MCS-51的的堆栈堆栈操作操作术语:术语:出栈出栈、入栈入栈、
18、栈底栈底、栈顶栈顶、后入先出后入先出1 1、堆栈、堆栈的功能:的功能:保护断点保护断点、保护现场保护现场2 2、堆栈的开辟:、堆栈的开辟:内部数据存储器内部数据存储器3 3、堆栈指示器:、堆栈指示器:SPSP(复位后为(复位后为07H,07H,初始化为初始化为30H30H)4 4、堆栈类型、堆栈类型:向上生长型向上生长型入栈入栈SPSP30H30H或或4AH4AH或或78H78H(1)SPSP+18051单片机的结构(三)(三)MCS-51MCS-51的的堆栈堆栈操作操作术语:术语:出栈出栈、入栈入栈、栈底栈底、栈顶栈顶、后入先出后入先出1 1、堆栈、堆栈的功能:的功能:保护断点保护断点、保护
19、现场保护现场2 2、堆栈的开辟:、堆栈的开辟:内部数据存储器内部数据存储器3 3、堆栈指示器:、堆栈指示器:SPSP(复位后为复位后为07H,07H,初始化为初始化为30H30H)4 4、堆栈类型、堆栈类型:向上生长型向上生长型入栈入栈30H30H或或4AH4AH或或78H78H(1)SPSP+1SPSP(2)写入数据写入数据出栈出栈(1)读出数据读出数据(2)SPSP-18051单片机的结构(三)(三)MCS-51MCS-51的的堆栈堆栈操作操作术语:术语:出栈出栈、入栈入栈、栈底栈底、栈顶栈顶、后入先出后入先出1 1、堆栈、堆栈的功能:的功能:保护断点保护断点、保护现场保护现场2 2、堆栈
20、的开辟:、堆栈的开辟:内部数据存储器内部数据存储器3 3、堆栈指示器:、堆栈指示器:SPSP(复位后为复位后为07H,07H,初始化为初始化为30H30H)4 4、堆栈类型、堆栈类型:向上生长型向上生长型入栈入栈30H30H或或4AH4AH或或78H78H(1)SPSP+1SPSP(2)写入数据写入数据出栈出栈(1)读出数据读出数据(2)SPSP-1、向下生长型、向下生长型(8086)8051单片机的结构(四)(四)内部程序存储器内部程序存储器80C5180C51:4K ROM4K ROM程序存储器,地址程序存储器,地址0000H-0FFFH0000H-0FFFH80C5280C52:8K R
21、OM8K ROM程序存储器,地址程序存储器,地址0000H-0000H-1FFFH1FFFH启动单元:启动单元:0000H-0002H0000H-0002H中断地址区:中断地址区:0003H-002AH0003H-002AH8051单片机的结构(五)(五)MCS-51MCS-51单片机系统的存储器结构特点单片机系统的存储器结构特点1.1.数据存储器和程序存储器分开数据存储器和程序存储器分开3.3.存储器扩展存储器扩展1616位地址线位地址线-寻址范围寻址范围 64KB64KB地址地址 0000H-FFFFH0000H-FFFFH2.2.内部存储器和外部存储器分开内部存储器和外部存储器分开805
22、1单片机的结构五、五、MCS-51MCS-51单片机时钟电路与时序单片机时钟电路与时序1.1.时钟信号时钟信号的产生的产生XTAL2XTAL1C2C1组成:组成:晶体振荡器晶体振荡器、电容电容(2 2个)个)1.2MHz-12MHz一般取一般取12M取取30pF,起微,起微调作用调作用内部时钟电路内部时钟电路2.2.引入外部脉冲信号引入外部脉冲信号(一)时钟信号(一)时钟信号8051单片机的结构五、五、MCS-51MCS-51单片机时钟电路与时序单片机时钟电路与时序(二)(二)时序定时单位时序定时单位振荡脉冲振荡脉冲例例:12M12M、6M6M2分频分频时钟脉冲时钟脉冲6M6M、3M3M3分频
23、分频ALE6分频分频机器周期机器周期1M1M、0.5M0.5M1.1.节拍与状态节拍与状态一个时钟脉冲一个拍节一个时钟脉冲一个拍节(S)(S)两个节拍两个节拍(S)(S)一个状态一个状态(P)(P)2.2.机器周期机器周期1M-1us1M-1us0.5M0.5M -2us-2us3.3.指令周期指令周期一个指令周期包含若干个机器周期一个指令周期包含若干个机器周期8051单片机的结构n节拍:指振荡脉冲的周期(有节拍:指振荡脉冲的周期(有P P表示);表示);n每二个节拍定义为一个状态(用每二个节拍定义为一个状态(用S S表示);表示);n规定一个机器周期的宽度为规定一个机器周期的宽度为6 6个状
24、态,即个状态,即1212个节拍;个节拍;即,一个机器周期就由即,一个机器周期就由1212个振荡周期组成。个振荡周期组成。(当振荡频率为(当振荡频率为12MHz12MHz时,一个机器周期为时,一个机器周期为1us1us;当振荡频率;当振荡频率为为6MHz6MHz时,一个机器周期为时,一个机器周期为2us2us););n指令周期:指执行一条指令所需的时间。根据指令的不同,指令周期:指执行一条指令所需的时间。根据指令的不同,MCS-51MCS-51的指令周期可分别包含有一、二、四个机器周期。的指令周期可分别包含有一、二、四个机器周期。五、五、MCS-51MCS-51单片机时钟电路与时序单片机时钟电路
25、与时序(二)(二)时序定时单位时序定时单位8051单片机的结构六、六、MCS-51MCS-51单片机复位电路单片机复位电路 1 1、复位后,、复位后,PCPC初始化作为初始化作为0000H0000H,使单片机从,使单片机从0000H0000H单元开始执行程序。所以单片机除了正常的初始化外,单元开始执行程序。所以单片机除了正常的初始化外,当程序运行出错或操作错误使系统处于死循环时,也需当程序运行出错或操作错误使系统处于死循环时,也需要按复位键以重新启动机器。复位不影响片内要按复位键以重新启动机器。复位不影响片内RAMRAM存放的存放的内容,而内容,而ALEALE和和PSENPSEN在复位期间将输
26、入高电平。在复位期间将输入高电平。2 2、RSTRST引脚是复位信号输入端,复位信号为高电平引脚是复位信号输入端,复位信号为高电平有效。当高电平持续有效。当高电平持续2424个振荡脉冲周期(即二个机器周个振荡脉冲周期(即二个机器周期)以上时,单片机完成复位。假如使用晶振频率为期)以上时,单片机完成复位。假如使用晶振频率为6MHz6MHz,则复位信号持续时间应不小于,则复位信号持续时间应不小于4us4us。8051单片机的结构六、六、MCS-51MCS-51单片机复位电路单片机复位电路 3 3、复位分为上点自动复位和按键手动复位两种方式。、复位分为上点自动复位和按键手动复位两种方式。复位电路中的
27、电阻,电容数值是为了保证在复位电路中的电阻,电容数值是为了保证在RSTRST端能够保端能够保持持2 2个机器周期以上的高电平以完成复位而设定的。个机器周期以上的高电平以完成复位而设定的。程序讲解例1:51单片机延时时间的设计例2:广告灯的左移右移例3:广告灯(利用取表方式)例4:定时器与计数器的应用程序讲解例例1 1:5151单片机延时时间的设计(晶振为单片机延时时间的设计(晶振为12MHz12MHz,即,即1 1个机器周期为个机器周期为1us1us)注:注:(1 1)MOV Rn,#dataMOV Rn,#data 和和 nopnop 指令的执行时间都为指令的执行时间都为1 1个机器周期。个
28、机器周期。(2 2)DJNZ Rn,relDJNZ Rn,rel 指令的执行时间为指令的执行时间为2 2个机器周期。个机器周期。程序讲解例例1 1:5151单片机延时时间的设计(晶振为单片机延时时间的设计(晶振为12MHz12MHz,即,即1 1个机器周期为个机器周期为1us1us)DELAY:MOV R3,#20DELAY:MOV R3,#20D1:D1:MOV R4,#20MOV R4,#20D2:MOV R5,#248D2:MOV R5,#248 DJNZ R5,$DJNZ R5,$DJNZ R4,D2 DJNZ R4,D2 DJNZ R3,D1 DJNZ R3,D1 RET RET1+
29、2248=497程序讲解例例1 1:5151单片机延时时间的设计(晶振为单片机延时时间的设计(晶振为12MHz12MHz,即,即1 1个机器周期为个机器周期为1us1us)DELAY:MOV R3,#20DELAY:MOV R3,#20D1:D1:MOV R4,#20MOV R4,#20D2:MOV R5,#248D2:MOV R5,#248 DJNZ R5,$DJNZ R5,$DJNZ R4,D2 DJNZ R4,D2 DJNZ R3,D1 DJNZ R3,D1 RET RET1+2248=4971+(497+2)20=9981程序讲解例例1 1:5151单片机延时时间的设计(晶振为单片机延
30、时时间的设计(晶振为12MHz12MHz,即,即1 1个机器周期为个机器周期为1us1us)DELAY:MOV R3,#20DELAY:MOV R3,#20D1:D1:MOV R4,#20MOV R4,#20D2:MOV R5,#248D2:MOV R5,#248 DJNZ R5,$DJNZ R5,$DJNZ R4,D2 DJNZ R4,D2 DJNZ R3,D1 DJNZ R3,D1 RET RET1+2248=4971+(497+2)20=99811+(9981+2)20=199661程序讲解例例1 1:5151单片机延时时间的设计(晶振为单片机延时时间的设计(晶振为12MHz12MHz,
31、即,即1 1个机器周期为个机器周期为1us1us)DELAY:MOV R3,#20DELAY:MOV R3,#20D1:D1:MOV R4,#20MOV R4,#20D2:MOV R5,#248D2:MOV R5,#248 DJNZ R5,$DJNZ R5,$DJNZ R4,D2 DJNZ R4,D2 DJNZ R3,D1 DJNZ R3,D1 RET RET1+2248=4971+(497+2)20=99811+(9981+2)20=199661199661+2=199663程序讲解例2:广告灯的左移右移(电路图)程序讲解例2:广告灯的左移右移(程序)ORG 00HORG 00HSTARTS
32、TART:MOV AMOV A,#0FFH#0FFH CLR C CLR C MOV R2 MOV R2,#08H#08HLOOPLOOP:RLC ARLC A MOV P2 MOV P2,A A CALL DELAY CALL DELAY DJNZ R2 DJNZ R2,LOOPLOOP MOV R2 MOV R2,#07H#07HLOOP1LOOP1:RRC ARRC A MOV P2 MOV P2,A A CALL DELAY CALL DELAY DJNZ R2 DJNZ R2,LOOP1LOOP1 JMP START JMP STARTDELAYDELAY:MOV R3MOV R3,
33、#20#20D1D1:MOV R4MOV R4,#20#20D2D2:MOV R5MOV R5,#248#248 DJNZ R5 DJNZ R5,$DJNZ R4,D2 DJNZ R4,D2 DJNZ R3,D1 DJNZ R3,D1 RET RET END END程序讲解例2:广告灯的左移右移(程序)ORG 00H ;ORG 00H ;起始地址起始地址STARTSTART:MOV AMOV A,#0FFH#0FFH ;ACC=FFHACC=FFH左移初值左移初值 CLR C CLR C ;C=0C=0 MOV R2 MOV R2,#08H#08H ;设左移;设左移8 8次次LOOPLOOP:
34、RLC A RLC A ;左移一位;左移一位 MOV P2MOV P2,A A ;输出至;输出至P2P2 CALL DELAY CALL DELAY ;延时;延时0 0。2 2秒秒 DJNZ R2DJNZ R2,LOOP LOOP ;左移;左移8 8次?次?MOV R2MOV R2,#07H#07H ;设右移;设右移7 7次次LOOP1LOOP1:RRC A RRC A ;右移一位;右移一位 MOV P2MOV P2,A A ;输出至;输出至P2P2 CALL DELAY CALL DELAY ;延时;延时0 0。2 2秒秒 DJNZ R2DJNZ R2,LOOP1 LOOP1 ;右移;右移7
35、 7次?次?JMP START JMP START ;返回;返回程序流程图讲解开始和结束框:表示程序的开始和结束处理框:表示某种处理工程或完成一定的功能判断框:根据不同的判断结果,执行不同的分支程序、流向线:表示程序执行的前进方向程序流程图讲解二极管左移流程图开始赋值P1=FFH熄来所有灯赋初值P1=FEH延时1S左移一位程序流程图讲解分支程序设计分支程序设计:条件成立?条件成立?NY程序流程图讲解分支程序设计分支程序设计:例题:程序流程图讲解程序流程图讲解循环程序的结构循环程序的结构程序讲解例3:广告灯(利用取表方式)功能说明:1、利用取表的方法,使端口P2做单一灯的变化:左移2次,右移2次
36、,闪烁2次。(延时时间0.2秒)2、利用MOV DPTR,#data16指令来使数据指针寄存器指到表的开头。3、利用MOVC A,A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计算器PC指到表格内所要取出的数据。程序讲解例3:广告灯(利用取表方式)电路图程序讲解例3:广告灯(利用取表方式)流程图:开始开始数据指针数据指针DPTRDPTR指到指到TABLETABLE表的开头表的开头根据根据DPTRDPTR到表内取码到表内取码取出的码是结束码取出的码是结束码01H01H?将取出的码输出至将取出的码输出至P2P2口口将数据之中指针加将数据之中指针加1 1延时延时0.20.2秒秒Y
37、 YN N程序讲解知识点:MOV DPTR,#data16MOVC A,A+DPTR程序讲解例3:广告灯(利用取表方式)程序ORG 00HSTART:MOV DPTR,#TABLELOOP:CLR AMOVC A,A+DPTRCJNE A,#01,LOOP1JMP STARTLOOP1:MOV P2,AMOV R3,#20CALL DELAYINC DPTRJMP LOOPDELAY:MOV R4,#20D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1DJNZ R3,DELAYRETTABLE:DB 0FEH,0FDH,0FBH,0F7H;左移DB 0EFH,0DFH,0BF
38、H,7FHDB 0FEH,0FDH,0FBH,0F7H;左移DB 0EFH,0DFH,0BFH,7FHDB 7FH,0BFH,0DFH,0EFH;右移DB 0F7H,0FBH,0FDH,0FEHDB 7FH,0BFH,0DFH,0EFH;右移DB 0F7H,0FBH,0FDH,0FEHDB 00H,0FFH,00H,0FFH;闪烁2次DB 01H;结束码END程序讲解例3:广告灯(利用取表方式)程序+注释ORG 00HSTART:MOV DPTR,#TABLE;TABLE表的地址存入数据指针LOOP:CLR A;清除ACCMOVC A,A+DPTR;到数据指针所指的地址取码CJNE A,#01
39、,LOOP1;取出的码是否为01H?不是则跳到LOOP1JMP STARTLOOP1:MOV P2,A;将A输出至P2口MOV R3,#20;延时0.2秒CALL DELAYINC DPTR;数据指针加1,取下一个码JMP LOOPDELAY:MOV R4,#20;10毫秒D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1DJNZ R3,DELAYRET程序讲解例例4:定时器与计数器的应用定时器与计数器的应用知识点:一、8051有两个16位的定时器/计数器,即定时器0(TIMER0)和定时器1(TIMER1)。8052则有3个定时器,除8051具有的两个外,再加上一个定时器2(
40、TIMER2)。以上3个都可以当成定时器或计数器使用。二、定时器0和定时器1 其使用定时或计数器的功能是由特殊功能寄存器内TMOD的C/T位所决定的。这两个定时器/计数器共有4种工作方式,它是由TMOD内的两个位M1和M0加以选择。程序讲解例例4:定时器与计数器的应用定时器与计数器的应用TMOD说明如下:TMOD:定时器模式控制寄存器(地址:89H)GATEM0C/TM1GATEM0C/TM1TIMER1TIMER0 GATE:当TRX(在TCON内)=1且GATE=1时,定时器只在/INTX引脚为高电平时才会计时;当GATE=0时,则定时器只在TRX=1时会计时。C/T:C/T=0时为定时器
41、,C/T=1时为计数器。M1、M0:工作方式。程序讲解例例4 4:定时器与计数器的应用定时器与计数器的应用M1、M0工作方式的功能M1M0工作方式功 能00MODE013位的定时/计数器01MODE116位的定时/计数器10MODE28位定时/计数 自动载入11MODE3(TIMER0)TL0为8位定时/计数器,由T0控制;TH0为另一个8位定时器,由T1控制。11MODE3(TIMER1)定时/计数器1停止定时/计数程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器TF1TR1TF0TR0IE1IT1IE0IT0TR0:TIMER0的启动位,TR0=1
42、时为启动,TR0=0时停止。TR1:TIMER1的启动位,TR1=1时为启动,TR1=0时停止。TF0:TIMER0的溢出标志位,当TIMER0溢出时,会设定为1;当执行中断子程序时,会清除为0。TF1:TIMER1的溢出标志位,当TIMER1溢出时,会设定为1;当执行中断子程序时,会清除为0。程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器(1)MODE0模式下的定时器 MODE0是一个13位(高8位+低5位)的计算器,其最长的计数为213=8192个脉冲。若脉冲由内部提供(C/T=0)且石英晶体为12MHZ时,进入定时器时一个脉冲的时间为1us,其
43、最长计时时间为8192us=8.192ms,最短时间则为1us。程序讲解MODE0模式下的定时器结构程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器 MODE0的定时设定:因为TLX(5位)的值应为计数值COUNT除以32的余数,而THX的设定值为计数值COUNT除以32的商,即 TLX=COUNT MOD 32 THX=COUNT/32例:以设计时间为8000微秒为例,每个计数脉冲1us,须计数8000个 TLX=(8192-8000)MOD 32=00 THX=(8192-8000)/32=06注:X=0表示TIMER0,X=1表示TIMER1。程
44、序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器设定设定MODE0MODE0的步聚的步聚1 1、MOV TMODMOV TMOD,#00000000B#00000000B;TIMER0TIMER0设定计时工作方式(内部输入)设定计时工作方式(内部输入)MOV TMODMOV TMOD,#00000000B#00000000B;TIMER1TIMER1设定计时工作方式(内部输入)设定计时工作方式(内部输入)1 1、MOV TMODMOV TMOD,#00000100B#00000100B;TIMER0TIMER0设定计数工作方式(设定计数工作方式(TOTO
45、输入)输入)MOV TMODMOV TMOD,#01000000B#01000000B;TIMER1TIMER1设定计数工作方式(设定计数工作方式(T1T1输入)输入)2 2、SETB TRX SETB TRX;启动定时器;启动定时器3 3、MOV TLXMOV TLX,#(8192-COUNT8192-COUNT)MOD 32MOD 32 MOV THX MOV THX,#(8192-COUNT8192-COUNT)/32/324 4、JBC TFX JBC TFX;检查;检查TFXTFX是否溢出是否溢出程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存
46、器(2)MODE1模式下的定时器 MODE1为一个16位的计数器,其最大的计数脉冲数为65536。若脉冲周期为1us时,则其最长的计时时间为655361us=65536us=65.536ms,最短为1us。程序讲解MODE1模式下的定时器结构程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器设定设定MODE1MODE1的步骤的步骤1 1、MOV TMODMOV TMOD,#00000001B#00000001B;TIMER0TIMER0设定计时工作方式(内部输入)设定计时工作方式(内部输入)MOV TMODMOV TMOD,#00010000B#0001
47、0000B;TIMER1TIMER1设定计时工作方式(内部输入)设定计时工作方式(内部输入)1 1、MOV TMODMOV TMOD,#00000101B#00000101B;TIMER0TIMER0设定计数工作方式(设定计数工作方式(T0T0输入)输入)MOV TMODMOV TMOD,#01010000B#01010000B;TIMER1TIMER1设定计数工作方式(设定计数工作方式(T1T1输入)输入)2 2、SETB TRX SETB TRX ;启动定时器;启动定时器3 3、MOV TLXMOV TLX,#LOW#LOW(65536-COUNT65536-COUNT)或)或#(6553
48、6-COUNT65536-COUNT)MOD 256MOD 256 MOV THX MOV THX,#HIGH#HIGH(65536-COUNT65536-COUNT)或)或#(65536-COUNT65536-COUNT)/256/2564 4、JBC TFX JBC TFX ;检查;检查TFXTFX是否溢出是否溢出程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器(3)MODE2模式下的定时器 TIMER0、TIMER1工作在MODE2时,是一个具有自动重新载入设定值功能的8位定时器。TLX为真正计数脉冲的计数器,而THX则为存放重新载入的缓冲器。当
49、TLX计数溢出时,除了TFX=1外,也会将存放在THX的值载入TLX内,且不会改变THX的内容。注:X=0表示TIMER0;X=1表示TIMER1。程序讲解MODE2模式下的定时器结构程序讲解例例4:4:定时器与计数器的应用定时器与计数器的应用三、TCON:定时器控制寄存器设定设定MODE2MODE2的步骤的步骤1 1、MOV TMODMOV TMOD,#00000010B#00000010B;TIMER0TIMER0设定计时工作方式(内部输入)设定计时工作方式(内部输入)MOV TMODMOV TMOD,#00100000B#00100000B;TIMER1TIMER1设定计时工作方式(内部
50、输入)设定计时工作方式(内部输入)1 1、MOV TMODMOV TMOD,#00000110B#00000110B;TIMER0TIMER0设定计数工作方式(设定计数工作方式(T0T0输入)输入)MOV TMODMOV TMOD,#01100000B#01100000B;TIMER1TIMER1设定计数工作方式(设定计数工作方式(T1T1输入)输入)2 2、SETB TRX SETB TRX ;启动定时器;启动定时器3 3、MOV TLXMOV TLX,#(256-COUNT256-COUNT)MOV THXMOV THX,#(256-COUNT256-COUNT)4 4、JBC TFX J
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。