版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机技术与应用本讲主题什么是单片机全套可编辑PPT课件目录一、什么是单片机二、单片机的特点三、单片机发展历程什么是单片机?PC机CPU存储器I/O接口主板键盘显示器其他输出设备其他输入设备CPU存储器I/O接口集成芯片按键显示器其他输出设备其他输入设备属于微型计算机,具有计算机属性。单片微型计算机(Sigle-Chip-Microcomputer),也简称为单片机(Microcontroller-Unit)或是MCU。1.体积小单片机特点2.价格低3.功能够用单片机特点1.体积小2.价格低3.功能够用3.功能够用单片机特点1.体积小2.价格低单片机芯片1971第一代4位微处理器机诞生单片机发展历程1971第一代4位微处理器机诞生1976MCS-48问世,8位单片机的推出。微处理器与可擦除可编程只读存储器集成在一块芯片内最成功的是INTEL的8051,基于这一内核的单片机系统直到现在还在广泛使用,也是我们学习的基础。单片机发展历程1971第一代4位微处理器机诞生1976MCS-48问世,8位单片机的推出。我国开始使用单片机198216位单片机问世,单片机向微控制器发展。SCMMCU诞生了一批经过市场考验获得良好口碑的单片机制造厂商单片机发展历程1971第一代4位微处理器机诞生1976MCS-48问世,8位单片机的推出。我国开始使用单片机19821990推出32位单片机SOCSCMMCUSoC(System-on-a-Chip):片上系统单片机发展历程1971第一代4位微处理器机诞生1976MCS-48问世,8位单片机的推出。我国开始使用单片机19821990推出32位单片机32位和8位单片机为主导;4位和16位单片机共存。现在精彩纷呈SOCSCMMCU单片机发展历程1971第一代4位微处理器机诞生1976MCS-48问世,8位单片机的推出。我国开始使用单片机19821990推出32位单片机32位和8位单片机为主导;4位和16位单片机共存。现在精彩纷呈SOC未来CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化SCMMCU单片机发展历程本讲主题51单片机芯片型号含义单片机技术与应用STC89C52RC-40I-PLCC44STC89C5140I-PDIP40单片机芯片型号信息型号前缀后缀STC89C51RC-40I-PDIP40单片机芯片型号信息前缀STC89C51RC-40I-PDIP40产品品牌
AT代表ATmel,是美国的。STC代表宏晶,是中国的。AT89C2051-24PU单片机芯片型号信息型号STC89C51RC-40I-PDIP40“89CXXXX”或“89LVXXXX”或“89SXXXX”
内部含Flash存储器CMOS产品低压产品含有串行下载Flash存储器单片机芯片型号信息型号STC89C51RC-40I-PDIP4080C51内部含有MaskROM(掩模ROM)87C51内部含有EPROM存储器(紫外线可擦除ROM)单片机芯片型号信息型号STC89C51RC-40I-PDIP40“89CXXXX”
flash90为12K90为61K514k528k5315k16k545832k51664k单片机芯片型号信息型号STC89C51RC-40I-PDIP40“89CXXXX”
RC片内RAM为512BRD+1280B单片机芯片型号信息后缀STC89C51RC-40I-PDIP4040X-XXXX
晶振的最高频率表示芯片外部晶振频率最高可接入40MHz单片机芯片型号信息后缀STC89C51RC-40I-PDIP4040X-XXXX
表示温度范围表示商业级,温度范围为0℃~+70℃。X=C表示工业用产品,温度范围为-40~+85℃。X=I表示汽车用产品,温度范围为-40~+125℃。X=A表示军用产品,温度范围为-55~+150℃。X=M单片机芯片型号信息后缀STC89C51RC-40I-PDIP4040X-XXXX
封装双列直插式封装PDIP表面贴装型封装PLCC塑料方型扁平式封装PQFP本讲主题MCS-51单片机的内部结构单片机技术与应用8051单片机的基本内部组成时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDINT0定时计数器RXDINT1中央处理器(CPU)CPU是单片机芯片中最复杂、最核心的智能部件,完成运算和控制功能。CPU中央处理器(CPU)运算器1控制器2实现算术逻辑运算单片机的神经中枢,主要实现程序译码以及完成输入/输出逻辑控制。中央处理器(CPU)8051单片机内部含有一个8位CPU和一个1位CPU。字节运算以可进行8位算术运算和逻辑运算的单元ALU为核心位运算以可进行位运算的布尔处理器(位处理器)为核心8051是MCS-51系列的8位单片机芯片。单片机CPU内部数据总线或寄存器一次处理数据的位数。存储器存储器单元8051单片机的基本内部组成内部ROM4KB掩膜ROM,用于存放程序、原始数据和表格。内部RAM共256个RAM单元,用户使用低128个字节,用于存放可读写数据,高128个字节被专用特殊功能寄存器占用。时钟电路CPURAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0定时计数器ROMINT1高128个字节离散分布有21个特殊功能寄存器SFR。11个可以进行位寻址。高128B的RAM与CPU控制运算有关(5个)A、B、SP、DPTR、PSW与I/O端口控制有关(4个)与中断控制有关(2个)与定时/计数器控制有关(6个)与串行口控制有关(3个)P0、P1、P2、P3IE、IPTCON、TMODTH0、TL0、TH1、TL1SCON、PCON、SBUF存储器配置1
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15EPROM27641
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15EPROM27641
2
3
4
5
6
7
8
9
10111213141516171819
2040
39
38
37
36
35
34
33
32
31302928272625242422211
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15RAM62641
2
3
4
5
6
7
8
9
10
11
12
13
1428
27
26
25
24
23
22
2120
19
18
17
16
15RAM6264
80318751805189C51片内RAM片内ROM256B(字节)4K64K64K8051单片机的基本内部组成并行I/O口:4个8位的I/O口P0、P1、P2、P3。时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0定时计数器INT1定时/计数器:两个16位的定时/计数器,实现定时或计数功能。8051单片机的基本内部组成中断控制系统:5个中断源(外部中断2个,定时/计数中断2个,串行中断1个)时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0定时计数器INT18051单片机的基本内部组成串行口:一个全双工串行口时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0定时计数器INT1时钟振荡电路8051单片机的基本内部组成时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0定时计数器INT1本讲主题51单片机的外形与引脚单片机技术与应用51单片机的外形封装双列直插的DIP40贴片PLCC44贴片QFP4440只引脚双列封装(直插DIP)双列直插式,是一种传统的封装形式,管脚间距大,占用电路板面积大,便于自制电路板,方便维修。适用学校,培训机构,但是封装体积大,电路板制作成本高,商品里应用较少。40只引脚双列封装(直插DIP)44引脚方形封装方式(贴片PLCC)PLCC为方形贴片形式的,可以直接应用在电路板上,不必钻孔,研发实验教学是可以利用插座,缩短开发生产周期。44引脚方形封装方式(贴片PLCC)>>>>44引脚方形封装方式(贴片PQFP)所占面积更小,成本低,常用于管脚比较多的单片机芯片。44引脚方形封装方式(贴片PQFP)>>>>8051单片机的信号引脚及功能GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCEAALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51EAEAGNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51GNDRSTXTAL1XTAL2P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P3.0VCCALEPSENP0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P2.6P2.5P2.4P2.3P2.2P2.1P2.0P2.7A0A1A2A3A4A5A6A7A15A14A13A12A11A9A8A10/D0/D1/D2/D3/D4/D5/D6/D7电源访问外部程序存储器控制信号线地址锁存允许信号线访问外部程序存储器读选通信号线地RXD/TXD/INT0/INT1/T0/T1/WR/RD/时钟信号线1时钟信号线2复位信号线12345678910111213141516171819204038393736353433323130292827262524232221AT89S51EA单片机最小系统组成本讲主题单片机技术与应用单片机最小系统是单片机工作不可或缺的最基本连接电路,指用最少的原件组成单片机可以工作的系统。单片机最小系统单片机最小系统单片机最小系统单片机芯片复位电路时钟振荡电路电源电路电源目前主流单片机的电源分为5V和3.3V这两个标准。STC12C5A60S2的供电开发板是使用外接5V直流电源1直接用USB供电2优点简单、方便,不必额外加入一部分电源电路。缺点只适合固定在某一个地方进行。内部时钟方式片内振荡电路晶振频率通常为6MHZ,12MHZ,11.0592MHZ。
时钟振荡信号的频率取决于晶振的频率。内部时钟方式片内振荡电路电容的作用是帮助晶振起振,并维持振荡信号的稳定。内部时钟方式片内振荡电路采用石英晶振,电容可以在20~40pF之间选择。采用陶瓷谐振器件,电容要适当地增大一些,在30~50pF之间。两个电容通常采用瓷片电容,容量一般取30pF即可。内部时钟方式复位电路复位使单片机内各寄存器的值变为初始状态的操作。复位上位复位上电复位电路由电阻和电容组成。AT89S51
RST/VPDR15.6KΩC110μF+5V上位复位AT89S51
RST/VPDR15.6KΩC110μF+5V典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位;适当组合RC的取值就可以保证可靠的复位。手动复位手动按下一个复位按键,让程序初始化重新运行的过程。手动复位手动复位AT89S51
RST/VPDR15.6KΩ+5VS1当复位按键按下,RST脚将会出现高电平,实现复位。混合复位AT89S51
RST/VPDR15.6KΩC110μF+5VC110μFS1上电复位和手动复位相结合,组成混合复位。单片机最小系统单片机的最小系统,包括单片机芯片、电源、时钟电路以及复位电路。本讲主题并行IO口P0的结构与功能单片机技术与应用4个并行I/O口每一个口都有8位。P0P1P2P351单片机的并行I/O端口——P0口并行I/O端口P0口有8位,每位中都有相同的结构。由一个转换开关、一个D锁存器、两个输入缓冲器、一个非门、一个与门和两个场效应管组成的输出驱动电路等组成。P0口——工作原理(作I/O端口使用)DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V2三态门有三个状态:高电平低电平高阻状态导通截止导通截止P0口——功能DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V20P0口作为I/O端口使用P0口——功能1P0口作为地址总线/数据总线分时复用口使用。DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V2P0口——工作原理(作I/O端口使用)DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V20P0口——工作原理(作I/O端口使用)DQ锁存器CPQ&+5VP0.X地址/数据控制线读锁存器数据线读引脚写控制信号12转换开关V1V2DQ锁存器CPQ&+5VP0.X地址/数据控制线读锁存器数据线读引脚写控制信号12转换开关V1V2P0口做输出口使用P0口做输出口使用DQ锁存器CPQ&+5VP0.X地址/数据控制线数据线写控制信号转换开关V1V2SSGGDDV2相当于漏极开路,需外接上拉电阻。00VGS=-5V<VONV1截止P0口作输入口使用——读引脚DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V2DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V2P0口作输入口使用——读引脚1导通0不能正确读到引脚上的信号0截止能正确读到引脚信号P0口作输入口使用——读引脚解决办法0DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V21P0口作输入口使用——读锁存器DQ锁存器CPQ&+5VP0.X地址/数据控制线读锁存器数据线读引脚写控制信号12转换开关V1V2P0口——工作原理(作地址/数据复用口)1DQ锁存器CPQ&+5VP0.X地址/数据控制线地址/数据线读锁存器数据线读引脚写控制信号12转换开关V1V2P0口——工作原理(作地址/数据复用口)&+5VP0.X地址/数据控制线地址/数据线转换开关V1V201饱和导通0截止0P0口——工作原理(作地址/数据复用口)10截止1饱和导通1V1,V2交替导通,顺利将总线信号进行传输。&+5VP0.X地址/数据控制线地址/数据线转换开关V1V2并行口P0使用小结作输入使用读引脚时,应先向锁存器中写1。作输出口使用时,P0口需外接上拉电阻。做为低8位地址总线和数据总线分时复用。PO口使用做普通I/O接口使用做总线使用本讲主题并行IO口P1的结构与功能单片机技术与应用P0P1P2P34个并行I/O口51单片机的并行I/O端口只有一种功能:做通用I/O口使用P1口——电路结构DQ锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚输出驱动电路输入缓冲器1输入缓冲器2DQ锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚P1口——电路结构可保存一位的二进制数
(保持功能)P1口——电路结构输入缓冲器1输入缓冲器2三态门有三个状态:高电平低电平高阻状态DQ锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚P1口——电路结构输出驱动电路场效应管上拉电阻DQ锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚P1口——功能只有一种功能:做通用I/O口使用做普通输出口使用做普通输入口使用P1口——工作原理与功能做普通输出口使用DQ
锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚P1口——工作原理与功能做普通输出口使用DQ
锁存器CPQ+5VP1.X数据线时钟控制信号01VGS>UON饱和导通0P1口——工作原理与功能做普通输出口使用DQ
锁存器CPQ+5VP1.X数据线时钟控制信号10VGS<VON截止1P1口——工作原理与功能做普通输出口使用无论数据线上要输出的信号为0还是1,电路结构都可以保证从引脚上输出相应的数,从而正确进行数据输出。P1口——功能与使用做普通输入口使用,读引脚时DQ
锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚上拉电阻P1口——功能与使用做普通输入口使用,读引脚时DQ
锁存器CPQ+5VP1.X数据线时钟控制信号读引脚GDS上拉电阻P1口——功能与使用做普通输入口使用,读引脚时DQ
锁存器CPQ+5VP1.X数据线时钟控制信号读引脚GDS上拉电阻01导通0不能正确读到引脚上的信号P1口——功能与使用做普通输入口使用,读引脚时解决办法DQ
锁存器CPQ+5VP1.X数据线时钟控制信号读引脚GDS上拉电阻10截止能正确读到引脚信号P1口——功能与使用做普通输入口使用,读锁存器DQ
锁存器CPQ+5VP1.X数据线时钟控制信号读锁存器读引脚上拉电阻并行口P1使用总结P1只能作为通用I/O使用做输出口使用时,直接使用。做输入使用读引脚时,应先向锁存器中写1。本讲主题单片机应用系统组成单片机技术与应用、单片机应用系统硬件部分、单片机应用系统软件部分、单片机应用系统实例目录单片机应用系统硬件部分输出显示输入控制其他外围器件输出显示输入控制其他外围器件单片机最小系统单片机输入控制输出显示外围功能器件时钟电路和复位电路单片机最小系统接口电路及外设等硬件部分控制程序软件单片机应用系统软件部分单片机最小系统接口电路及外设等控制程序硬件软件烧录单片机应用系统交通闪光警示灯硬件电路单片机应用系统实例交通闪光警示灯硬件电路交通闪光警示灯软件程序本讲主题单片机开发硬件实训平台单片机技术与应用51主控板AD/DA转换及简易交通灯电路通信单元步进电机与直流电机驱动板矩阵键盘与独立按键板显示单元51主控开发板集成了流水灯、数码管、独立按键、蜂鸣器、下载电路等常用的外设模块。预留了LCD1602显示屏、NRF24L01、ESP8266、机械臂等外设的接口。STC12C5A60S2单片机舵机电源主控板电源STC12C5A60S2单片机本讲主题单片机集成开发软件keilμvision安装与使用单片机技术与应用KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。KeilC51
本讲主题驱动软件和下载软件单片机技术与应用电子设计必备的通讯接口之一。串口FT232CH340PL2303>>便宜南京沁恒稳定,可靠USB转串口STC-ISP一款功能丰富的单片机烧录软件。单片机的设计制作工具。是针对STC系列单片机设计的,可下载STC15/12/11/10/89/90等系列的STC单片机程序。烧录将已经编译好的程序文件刻录到单片机的ROM/FLASH中。(即把之前生成好的HEX文件下载到单片机中)仿真软件Protues的使用本讲主题单片机技术与应用仿真软件Protues的安装仿真软件Protues的使用目录安装软件汉化包破解软件打开桌面Protues软件图标,进入软件界面。本讲主题C51的数据类型单片机技术与应用标准C语言中的数据类型数据类型长
度所占位数取值范围字符型unsignedchar单字节8位0~255char单字节8位-128~+127整型unsignedint双字节16位0~65535int双字节16位-32768~+32767长整型unsignedlong四字节32位0~4294967295long四字节32位-2147483648~+2147483647浮点型float四字节32位±1.175494E-38~±3.402823E+38指针型*1~3字节8~24位对象的地址C51扩展的数据类型
bit(定义位类型)1bit位变量名bit类型定义一个可直接位操作的二进制位,它的值是0或1。C51扩展的数据类型
sfr(定义特殊功能寄存器)2sfr特殊功能寄存器器名=特殊功能寄存器地址;sfrPSW=0XD0;sfrIE=0XA8;sfrP0=0X80;sfr16(定义16位特殊功能寄存器)3sfr16DPTR=0X82;sfr16特殊功能寄存器器名=特殊功能寄存器低字节地址;C51扩展的数据类型
sbit(定义可寻址位)4sbit位名称=位地址;sbitOV=0XD2;#include<reg51.h>voiddelay(intms);voidmain(){ while(1) { P0=~P0; delay(1000); } }voiddelay(intms){ inti,j; for(i=0;i<ms;i++); for(j=0;j<120;j++);}举例1-直接使用举例2-间接使用#include<reg51.h>
voiddelay(unsignedinti);
sbitled=P2^6;
voidmain()
{
while(1)
{
led=1;
delay(1);
led=0;
delay(5);
}
}
本讲主题常
量单片机技术与应用目录、常量概念、常量类型常量----其值是不能被改变的量一、常量概念整型常量浮点型常量字符型常量位常量符号常量二、常量类型整型常量整型常量
十进制:35
八进制:0177
十六进制:0xfe、0X7D-31412浮点型常量科学计数方式指数形式3.14整数小数0.546.546450004.5E4浮点型常量字符型常量字符常量字符串常量“a”“A”“HELLO”字符型常量位常量0,1位常量#definePI
3.1415926#include<stdio.h>
voidmain()
{
doubler;
printf(″请输入圆半径:″); scanf(″%lf″,&r);printf(″圆面积:%.3f″,PI*r*r);}符号常量符号常量本讲主题变量及定义单片机技术与应用目录、变量概念、变量的定义方法含义其值可以改变的量一、变量概念格式举例数据类型变量名;Inti;bitflag;注意变量必须先定义,后使用。unsignedchark,m;二、变量定义只能由字母、数字和下划线三种字符组成。变量取名规范1P1.1P1_1第一个字符必须为字母或下划线。区分大小写。√_nop√2LEDLED2√区分大小写变量取名规范2inti;intI;见名知意变量取名规范3蜂鸣器变量数据类型的选择数据类型
变量名;选取合适选取不合适变量类型局部变量:在某个函数内部定义。局部变量:作用范围仅限于函数内部。变量类型全局变量:在函数外部定义。全局变量:作用范围不仅限于某个函数内部,是全局可见。本讲主题算术运算符单片机技术与应用算术运算符运算符名称功能+加法求两数的和-减法求两数的差*乘法求两数的积/除法求两数的商%取余(求模)求两数的余数++自增1变量自动加1--自减1变量自动减1除法:/45/1044.544.0/58.88都是整型数据时有一个以上是实型数据时取余:%45%10参与运算的数据必须是整型数据,结果也是整型数据。521.0%10十位数字个位数字十位数字个位数字利用除法运算,两位十进制数据除以10,拆分出十位数字。利用取余运算,两位十进制数据对10取余,拆分出个位数字。利用除法运算,除以256,拆分出高8位二进制数据。利用取余运算,对256取余,拆分出低8位二进制数据。自增、自减运算符自增运算符++:使变量的值加1自减运算符--:使变量的值减1作用:自增、自减运算符形式:前置运算:++m;--n;后置运算:j++;k--;
k=0x80; for(j=0;j<8;j++) { P1=~k; delay(200); k>>=1; }
本讲主题关系运算符与逻辑运算符单片机技术与应用一、关系运算符
二、逻辑运算符
目录一、关系运算符运算符功能>>=<<===!=大于大于等于小于等于小于等于不等于关系运算符含义指定条件满足时,结果为真(1);不满足时,结果为假(0)格式表达式1关系运算符表达式2i为9时,i<8:假i为7时,i<8:真关系运算符举例按键按下:P1.6为0按键未按下:P1.6:1P1.6是否等于0按键是否按下用此关系运算符来定义:==#include<reg51.h>sbitLED=P1^1; sbitKEY_ON=P1^6;voidmain(){
while(1)
{if(KEY_ON==0)
//如果KEY_ON按下
LED=0;
//LED亮
else//否则
LED=1;//LED灭
}
}关系运算符举例===C语言中关系运算符C语言中赋值运算符x=5x==5==与=的区分二、逻辑运算符逻辑与逻辑或逻辑非运算符功能&&∣∣
!逻辑运算符-逻辑与逻辑与格式表达式1
&&表达式2
逻辑与含义(X>3)&&(X<6)X为5时:真真真(X>3)(X<6)X为7时:真假假只有左右两个表达式都是真时,整个表达式结果为真;有一个为假,整个表达式结果为假。逻辑运算符-逻辑或逻辑或格式关系表达式1
||关系表达式2
逻辑或含义(Y>10)||(Y<5)Y为4时:假真真(Y>10)(Y<5)Y为8时:假假假当左右两个表达式有一个真时,整个表达式结果为真;只有两个表达式都是假,整个表达式结果才为假。
逻辑运算符-逻辑非逻辑非格式!表达式1
逻辑非含义对表达式1的值进行非运算本讲主题位运算符一(左移右移流水灯)单片机技术与应用单片机如何控制LED灯实现流水灯、跑马灯效果?需要应用C51程序中位运算符的左移和右移位运算符。<<>>位运算符——左移右移左移右移控制LED灯本讲内容位运算符——左移右移例如: 1000111100111100000x8f0x3c左移将变量1的二进制位值向左移动由变量2所指定的位数。a = 0x8f; // 10001111 a << 2; // 左端移出的值丢弃,右端补0 结果: 0x3c (00111100)变量1 << 变量2 位运算符——左移右移1000111100100011000x8f0x23右移变量1 >> 变量2 将变量1的二进制位值向右移动由变量2所指定的位数。 例如: a = 0x8f; // 10001111 a >> 2; // 右端移出的值丢弃,左端补0 结果: 0x23 (00100011)左移控制LED灯右移控制LED灯本讲主题位运算符二(按位与或非异或运算闪烁)单片机技术与应用在单片机中位运算通常用于I/O端口的输入输出控制和逻辑判断。位运算按二进制位进行的运算按位与、或、非、异或运算LED灯闪烁本讲内容按位与或非异或运算运算规则全1为1,有0为0。0&0=0,0&1=0,1&0=0,1&1=l(即只有当两者都为真时才为真)功能清零取一个数中指定位“按位与”运算符(&)1按位与或非异或运算功能取一个数中指定位。方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。例如: 10101110B&00001111B00001110B“按位与”运算符(&)1按位与或非异或运算运算规则有1为1,全0为0。0|0=0,0|l=l,1|0=l,l|l=l(即只要有一个为真其结果为真)功能对一个数据的某些位置“1”。“按位或”运算符(|)2按位与或非异或运算“按位或”运算符(|)功能对一个数据的某些位置“1”。方法:找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置“1”。例如: 10100000B|00001111B10101111B2按位与或非异或运算取反运算符(~)3单目运算符运算规则是1得0,是0得1~1=0; ~0=1对操作数按位取反。例如: a= 0 0 0 1 1 0 1 0按位取反后:a= 1 1 1 0 0 1 0 1按位与或非异或运算按位“异或”(∧)4运算规则相同为0,不同为1。0^0=0; 0^1=1; 1^0=1;1^1=0(当两者取值相异时为真)功能使特定位翻转例如: 10101110B∧00001111B10100001B方法:找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。按位与或非异或运算按位“异或”(∧)4运算规则相同为0,不同为1。0^0=0; 0^1=1; 1^0=1;1^1=0(当两者取值相异时为真)功能使特定位翻转。例如: 10101110B∧00000000B10101110B与0相异或,保留原值。按位与或非异或运算本讲小结“按位与”运算符(&)1“按位或”运算符(|)2取反运算符(~)3按位“异或”(∧)4本讲主题任务:左移流水灯单片机技术与应用任务要求实现8个LED灯左移流水效果硬件设计硬件分析P0.X:0时,灯亮P0.X:1时,灯灭P0:11111110BP0:11111100BP0:11111000BP0=P0<<1P0:11110000BP0:11100000BP0:11000000BP0:10000000BP0:00000000BP0=P0<<1软件设计思想软件程序实现1开始P0=0Xfe延时点亮对应灯P0左移一位8次到了吗否是流程图软件程序实现2本讲主题表达式语句与复合语句单片机技术与应用目录、表达式语句、复合语句C51程序结构与语句
顺序结构选择结构循环结构C51程序结构与语句
顺序结构选择结构循环结构表达式语句if语句、switch语句for语句、while语句表达式语句表达式表达式语句运算符、常量及变量连接而成的式子
表达式加上分号“;”P0=0x7fx=y/10
P0=0x7f;x=y/10;
表达式语句表达式表达式语句运算符、常量及变量连接而成的式子
表达式加上分号“;”P0=0x7fx=y/10
P0=0x7f;x=y/10;
intnumber;不是表达式语句voiddelay(intms){ inti,j; for(i=0;i<ms;i++) for(j=0;j<120;j++);
};特殊表达式语句表达式语句空语句复合语句{…;
…;}复合语句是一种特殊的语句序列,它在程序中被看作是一条语句。本讲主题反复循环for语句单片机技术与应用循环语句循环语句反复循环for语句循环语句的特点给定条件成立时,反复执行某程序段,直到条件不成立为止。分类for语句while语句do-while语句for(表达式1;表达式2;表达式3)循环体语句;{循环体语句块;}反复循环for语句求解表达式1假表达式2语句求解表达式3真for语句的下一语句反复循环for语句for(表达式1;表达式2;表达式3)for(;;)死循环可选择项/可缺省for(表达式1;表达式2;表达式3)unsignedchari;unsignedintsum=0;for(i=1;i<=100;i++)sum=sum+i;for最简单的应用形式循环体语句;循环变量修正初始化表达式循环条件一般为赋值表达式一般为关系表达式for语句应用于延时函数for语句应用于延时函数延时函数单片机的计算速度很快,单片机程序指令执行非常短。外部设备和人的反应速度往往跟不上单片机的速度。for语句应用于延时函数因为机器每执行一条指令都占一定的时间的,如果让机器什么都不做,即空指令的话,机器就会占用时间,从而起到延时的作用。延时函数编写的方法延时函数实例voiddelay(){unsignedintm,n;for(m=0;m<2000;m++)for(n=0;n<65000;n++);}空语句for语句本讲主题while语句单片机技术与应用目录、while语句、do-while语句while语句格式含义一、while语句while(表达式)语句;循环条件循环体真假voidmain(){unsignedinti,sum;sum=0;i=1;while(i<=100)
{
sum=sum+i;i++;
}}1到100的累加和while语句while(1)死循环特殊形式的while语句do-while语句格式含义do{语句块;}while(表达式);循环条件循环体二、dowhile语句do-while语句格式含义do{语句块;}while(表达式);二、dowhile语句语句块表达式真(非0)假(0)while与do-while的差别while语句do-while语句循环体语句有可能一次也不执行循环体语句至少执行一次本讲主题做出选择if语句单片机技术与应用对给定的条件进行判断,然后根据判断的结果选择想要的部分执行这样的一种程序结构。内容概述选择结构给定条件成立吗真假选择结构分类单分支1双分支2多分支3if语句if-else语句if-else-if语句switch语句单分支选择语句——if语句if(表达式)语句;表达式语句假(0)真(非0)单分支选择语句——if语句按键是否按下灯亮一会否是S1+5VAT89C51P3.4P1.0单分支选择语句——if语句S1P3.4按下S1,P3.4:0未按下S1,P3.4:1S1按下了吗否是P3.4为0吗单分支选择语句——if语句P1.0输出0,灯亮P1.0+5VP1.0输出1,灯灭单分支选择语句——if语句
if(S1==0) //判断S1按下了吗
{LED=0;//灯亮delay(500);//灯亮一会LED=1;//灯灭}开始灯亮一会按键是否按下否是S1==0LED=0;delay(500);LED=1;单分支选择语句——if语句本讲主题多选—switch语句单片机技术与应用选择结构分类单分支1双分支2if语句if-else语句多分支3if-else-if语句switch语句根据控制表达式的值,可以把程序流跳转到多个语句中的一个执行,是多分支选择语句。switch语句switch语句switch(表达式)“表达式”必须是整数类型int型变量char型变量整数或字符常量负数多选—switch语句多选—switch语句switch(表达式){case常量表达式1:语句块1;break;case常量表达式2:语句块2;break;…case常量表达式n:语句块n;break;default:语句块n+1;break;}多选—switch语句计算表达式的值……执行语句块1
执行语句块n+1执行语句块2执行语句块n是是是否break语句break语句break语句break语句等于常量表达式1吗等于常量表达式2吗否等于常量表达式n吗否多选—switch语句switch(表达式){case常量表达式1:语句块1;break;case常量表达式2:语句块2;break;…case常量表达式n:语句块n;break;default:语句块n+1;break;}各语句顺序可以改变不影响结果。不允许包含变量;各表达式值不能相同。此处允许有多个语句,可以不用{}括起来。default后面如是空语句,可省略。本讲主题任务:交通灯单片机技术与应用本讲主题C51程序的基本结构单片机技术与应用C51语言程序C51语言程序C51语言程序的基本结构C程序源文件1源文件2……源文件NC51语言程序的基本结构源文件预处理全局声明函数定义1函数定义2函数定义n#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint预处理预处理器预处理结果其他部分源程序目标程序编译全局声明在函数之外进行的数据声明全局变量:在函数外声明的变量。局部变量:在函数中声明的变量函数定义voiddelay(intms){inti,j;for(i=0;i<ms;i++)for(j=0;j<120;j++);} 采用函数定义完成指定的功能延时一段时间班级春游活动确定游玩地点收取游玩费用负责财务管理购买所需要的食品联系交通工具购买景点门票举例模块化的程序设计方法每个模块编写成结构清晰,接口简单,容易理解的程序段。概念C语言的程序设计时,通常将一个大的程序功能分成若干个较小的模块,每一个小的模块实现一个简单独立的功能,这种方法就叫做模块化的程序设计方法。要求模块化设计的好处少快省好便函数简单的C程序可能只有一个主函数,而复杂的C程序则可能包含一个主函数和任意多个其他函数。函数就是实现一个简单独立的功能的小模块,每个函数用来实现一个特定的功能。是C程序的重要组成部分。一个C语言程序是由一个或多个函数组成的,其中必须包括一个main函数(且只能有一个main函数)。voiddelay(intms)//函数首部{//函数体inti,j;for(i=0;i<ms;i++)for(j=0;j<120;j++);}
函数定义组成函数的第一行,包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型。函数首部下面的花括号内的部分。函数定义函数首部函数体函数体组成voiddelay(intms){inti,j;//声明部分
for(i=0;i<ms;i++//执行部分for(j=0;j<120;j++);} 包括定义在本函数中所用到的变量、对本函数所调用函数的声明。由若干个语句组成,指定在函数中所进行的操作。函数体声明部分执行部分程序编写注意点C语言程序必须有一个且只能有一个主函数main(
);程序中对计算机的操作是由函数中的C语句完成的;在每个数据声明和语句的最后必有一个分号;程序应当包含注释。C语言程序结构示例指定头文件#include<reg51.h>声明区(声明函数、全局变量)voiddelay(intx);unsignedcharx,y;…主函数main()主函数起始符号{主函数变量定义inti,j;…主函数程序区LED=0xff;…主函数结束符号}函数定义voiddelay(intx)函数起始符号{函数局部变量定义inti,j;…函数程序区for(i=0;i﹤x;i++)…函数结束符号}C语言程序示例本讲主题C51库函数及库函数使用单片机技术与应用目录、C51库函数、库函数使用C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护。一、C51库函数reg51.h专用寄存器头文件:intrins.h空操作测试并清零位字符循环左移字符循环右移整数循环左移整数循环右移长整数循环左移长整数循环本征库函数:string.h缓冲区处理函数:
stdio.h输入输出流函数:
absacc.h绝对地址函数:
利用库函数实现流水灯效果二、库函数使用硬件电路
本征库函数-intrins.h函数定义:unsignedchar_crol_(unsignedcharc,
unsignedcharb);函数功能:_crol_函数将一个字节c循环左移b位。返回值:_crol函数返回将c循环左移b位后的值。函数原型利用库函数进行流水灯程序设计本讲主题用户自定义函数单片机技术与应用函数定义函数首部函数体函数定义函数定义类型说明符函数名(形式参数表){
局部变量定义;函数体语句;}函数首部函数返回值的类型函数名字空格隔开外部传递给函数的参数函数没有参数,可以在圆括号中写void,也可以是空括号。函数体函数的开始函数的结束声明部分执行部分voiddelay()//无参函数定义{unsignedintm,n;//函数局部变量定义
for(m=0;m<500;m++)for(n=0;n<110;n++);}voiddelay(unsignedchari)//定义有参延时函数
{unsignedcharm,n;for(m=0;m<i;m++)for(n=0;n<250;n++);}函数定义函数调用函数名(实际参数表)概念在一个函数体中引用另一个已经定义了的函数,前者称为主调函数,后者称为被调用函数。格式函数调用函数语句
display();函数表达式
x=jianpanzhi();函数参数
M=max(c,max(a,b));形式函数应用举例被调用函数必须出现在主调函数之前。如果有多个函数,而且相互交叉调用,前后顺序好安排吗?函数声明类型说明符函数名(形式参数表);函数声明函数声明voidd
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB 1502-T 027-2024多晶硅生产单位产品能源消耗限额
- 2024-2025学年江苏省百校高三上学期10月联考物理试卷和答案
- 农药制造中的新型啶类技术研究考核试卷
- 信息系统的旅游信息管理与在线预订考核试卷
- 水利工程在农村教育和文化事业发展中的支撑作用考核试卷
- 制鞋业电商渠道开拓与运营考核试卷
- 智能家居在家庭社交中的创新应用与实践考核试卷
- 辽宁省沈阳市沈北新区2024-2025学年四年级上学期期中英语试卷
- 危险品包装中的可降解与可回收材料创新考核试卷
- 城市轨道交通的智慧出行与一体化应用研究考核试卷
- 经营分析报告案例-麦肯锡风格
- 难治性高血压-课件
- 烟花爆竹经营单位主要负责人安全培训
- 2023春国开会计实务专题形考任务1-4题库及答案汇总
- 可疑值的取舍-Q检验法
- 生物信息学(上海海洋大学)知到章节答案智慧树2023年
- 核磁共振T临床应用
- 文件与文件夹测试题(含参考答案)
- 电工安全培训课件
- 维修工程技术标
- 《长津湖》电影赏析PPT
评论
0/150
提交评论