单片机原理及应用 课件全套 项目1-8_第1页
单片机原理及应用 课件全套 项目1-8_第2页
单片机原理及应用 课件全套 项目1-8_第3页
单片机原理及应用 课件全套 项目1-8_第4页
单片机原理及应用 课件全套 项目1-8_第5页
已阅读5页,还剩967页未读 继续免费阅读

下载本文档

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

文档简介

什么是单片机1.单片机的定义单片机,全称单片微型计算机(MCU),又称微控制器。将CPU、存储器、定时/计数器、I/O接口、中断系统、串行通信等集成在一块芯片上。特点:结构简单、控制功能强、可靠性高、体积小、价格低。应用领域:工业自动化、仪器仪表、家用电器、通信设备、军事装备等。2.单片机的分类(1)按CPU字长类型特点常见机型4位单片机处理4位数据,指令简单,功能单一8位单片机处理1字节,指令完善,通用性强PIC、AVR、STC89系列16位单片机速度与吞吐能力提升,功耗敏感设备MSP430、PIC2432位单片机高性能,支持复杂系统,外设丰富STM32、ESP32、GD322.单片机的分类(2)按存储器结构冯·诺依曼结构:程序与数据共享存储空间,结构简单。哈佛结构:程序与数据独立存储空间,可同时访问,效率高。现代单片机多采用改进型哈佛结构。(3)按指令集架构CISC:指令复杂,功能强,执行时间不一(如8051)。RISC:指令精简,执行效率高,便于流水线操作(如ARM、RISC-V、AVR、PIC)。2.单片机的分类(4)按应用领域和特性通用型:标准功能与接口,适用于常见控制场景(如STM32F1、ATmega)。专用型:为特定应用设计,集成专用硬件(如电机控制、触控、无线、汽车级单片机)。(5)按内存技术OTP型:一次性可编程,成本低,适合大批量生产。Flash型:可重复编程,主流选择,支持在线升级。EEPROM型:用于存储频繁修改的小数据(如配置参数)。3.51单片机(1)MCS-51系列单片机Intel推出的经典8位微控制器系列,定义了“8051内核”。特点:CISC架构、哈佛结构、强大的位操作能力、通过SFR管理外设。原始型号:8031、8051、8751、8951等。后续发展:Intel授权IP核给多家公司,形成庞大的51单片机生态。3.51单片机(2)51单片机的发展与分类51单片机泛指所有基于8051指令集与架构的单片机。两大分支:基本型(经典型):标准8051内核。增强型:单时钟周期指令、更大存储、丰富外设(ADC/PWM/SPI/I²C)、低功耗。特点:指令兼容,学会一种即可快速上手其他型号。3.51单片机(3)其他采用“8051内核”的单片机Atmel→AT89系列STC→STC89系列、STC12/15系列NXP(原Philips)→P87LPC700系列SST→89E系列Toshiba→TMP87C系列本书实践选用:STC89C52RC/RD+系列-增强型51单片机,高速、低功耗、抗干扰强。-完全兼容标准8051指令,支持12/6时钟选择。-示例型号:STC89C52RCthanks什么是单片机1.单片机的定义单片机,全称单片微型计算机(MCU),又称微控制器。将CPU、存储器、定时/计数器、I/O接口、中断系统、串行通信等集成在一块芯片上。特点:结构简单、控制功能强、可靠性高、体积小、价格低。应用领域:工业自动化、仪器仪表、家用电器、通信设备、军事装备等。2.单片机的分类(1)按CPU字长类型特点常见机型4位单片机处理4位数据,指令简单,功能单一8位单片机处理1字节,指令完善,通用性强PIC、AVR、STC89系列16位单片机速度与吞吐能力提升,功耗敏感设备MSP430、PIC2432位单片机高性能,支持复杂系统,外设丰富STM32、ESP32、GD322.单片机的分类(2)按存储器结构冯·诺依曼结构:程序与数据共享存储空间,结构简单。哈佛结构:程序与数据独立存储空间,可同时访问,效率高。现代单片机多采用改进型哈佛结构。(3)按指令集架构CISC:指令复杂,功能强,执行时间不一(如8051)。RISC:指令精简,执行效率高,便于流水线操作(如ARM、RISC-V、AVR、PIC)。2.单片机的分类(4)按应用领域和特性通用型:标准功能与接口,适用于常见控制场景(如STM32F1、ATmega)。专用型:为特定应用设计,集成专用硬件(如电机控制、触控、无线、汽车级单片机)。(5)按内存技术OTP型:一次性可编程,成本低,适合大批量生产。Flash型:可重复编程,主流选择,支持在线升级。EEPROM型:用于存储频繁修改的小数据(如配置参数)。3.51单片机(1)MCS-51系列单片机Intel推出的经典8位微控制器系列,定义了“8051内核”。特点:CISC架构、哈佛结构、强大的位操作能力、通过SFR管理外设。原始型号:8031、8051、8751、8951等。后续发展:Intel授权IP核给多家公司,形成庞大的51单片机生态。3.51单片机(2)51单片机的发展与分类51单片机泛指所有基于8051指令集与架构的单片机。两大分支:基本型(经典型):标准8051内核。增强型:单时钟周期指令、更大存储、丰富外设(ADC/PWM/SPI/I²C)、低功耗。特点:指令兼容,学会一种即可快速上手其他型号。3.51单片机(3)其他采用“8051内核”的单片机Atmel→AT89系列STC→STC89系列、STC12/15系列NXP(原Philips)→P87LPC700系列SST→89E系列Toshiba→TMP87C系列本书实践选用:STC89C52RC/RD+系列-增强型51单片机,高速、低功耗、抗干扰强。-完全兼容标准8051指令,支持12/6时钟选择。-示例型号:STC89C52RCthanks单片机的内部结构时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器结构框图哈佛结构RAM与ROM为两个独立的空间RAM与ROM独立编址、独立访问时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器CPU:单片机的控制核心控制器控制和协调整个单片机的工作运算器对数据进行各种运算CPU时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器CPUEARSTALEPSEN通过CPU控制单片机运行时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器时钟电路时钟源电路时钟信号时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器实现单片机与其他设备之间的串行数据通信异步串行口串行输入串行输出时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器并行输入输出8位数据并行接口P0P1P2P3每个口各有8条I/O线时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器两个优先级中断系统外部中断源内部中断源突发事件的处理时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器可实现定时或计数功能定时/计数器计数器计数脉冲输入时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器可读写,访问速度快,用于暂存中间数据,断电后数据丢失RAM时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口运算器控制器断电后数据不丢失,存放程序或表格常数ROMSTC89C52RC/RD+系列单片机增强功能在基本型模块基础上,还集成:-更大容量的Flash程序存储器和SRAM数据存储器。-EEPROM:用于存储需掉电保存的数据。-看门狗定时器(WDT):提高系统抗干扰与可靠性。部分型号(HD/90C版本)特有:-内置MAX810专用复位电路,简化外部电路,提升系统可靠性。thanks程序存储器ROM时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口时钟源电路P0P1P2P3外部中断源内部中断源串行输入串行输出计数脉冲输入运算器控制器EARSTALEPSEN用于存储用户程序、常数和表格系统断电后数据不丢失程序存储器P1.5~P1.7程序下载端ROMReadOnlyMemory只读存储器可随机读取数据但不可随机写入数据存储单元01234567010x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFD4KBROMK:1024B:byte字节4×1024个字节C51程序如何存储到存储单元中?编译器将C51程序转换成机器语言EA非:片外程序存储器选择引脚为高选择内部程序存储器为低选择外部程序存储器0x00000x00010x0FFE0x0FFF0x10000x10010xFFFE0xFFFFPC的取值范围为0x1000~0xFFFFEA非=1PC的取值范围为0x0000~0x0FFF内部ROM外部ROM4KBEA非=1最多60KBPC为16位程序计数器取值范围为0x0000~0xFFFF0x00000x00010xFFFE0xFFFFEA非=0外部ROM64KBunsignedcharcodea[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//在code区定义数组变量a[]单片机的片内与片外ROM区属于code区0x0003外部中断0中断程序地址区0x000A0x000B0x00120x00130x001A0x001B0x00220x00230x002A定时/计数器0中断程序地址区外部中断1中断程序地址区定时/计数器1中断程序地址区串行口中断程序地址区STC89C52RC/RD+系列单片机程序存储器内部集成了4K~64K字节的Flash程序存储器。程序Flash存储器可在线反复编程擦写10万次以上,提高了使用的灵活性和方便性。还可访问64KB的外部程序存储器。STC89C52RC/RD+系列单片机EEPROM部分STC89C52RC/RD+系列单片机内部集成。与程序空间分开。利用ISP/IAP技术可对EEPROM操作。EEPROM可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。thanks数据存储器RAM时钟电路4KBROM程序存储器128BRAM数据存储器2个16位定时/计数器CPU中断系统4个并行I/O口1个串行口时钟源电路P0P1P2P3外部中断源内部中断源串行输入串行输出计数脉冲输入运算器控制器EARSTALEPSENRAMRandomAccessMemory随机存取存储器可随机读写数据128B存放中间结果或临时数据系统断电后数据丢失数据存储器0x2F0x20~0x1F0x00~0x7F0x30~data区RAM128Bunsignedcharu;//在data区定义变量u0x000x7F通用RAM区位寻址区工作寄存器区~通用RAM区位寻址区工作寄存器区0x1F0x00~0组0x000x070x080x0f0x100x170x180x1fR0R7R0R7R0R7R0R71组2组3组RS1和RS011100100/通用寄存器区通用RAM区位寻址区工作寄存器区0x2F0x20~0x210x200x2f0x2e~0x000x7fbdata区/通用寄存器区16B通用RAM区位寻址区工作寄存器区0x7F0x30~共80个单元,可以作为数据缓冲器使用/通用寄存器区增强型51单片机所有0x800xFF~idata区高128B片外RAM0x00000xFFFF~xdata区64KB0x000xFF~pdata区由于RAM存储器较小,在进行C51程序开发时,若使用到较多的常量,可将其存储至ROM中,以节约RAM空间unsignedcharcodea[]=={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x000x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x000x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00};STC89C52RC/RD+系列单片机数据寄存器STC89C52RC系列内部集成512字节的数据存储器。内部RAM(256B)内部扩展RAM(256B)低128字节RAM(与基本型51单片机兼容)高128字节RAM。512字节数据存储器STC89C52RC/RD+系列单片机数据寄存器STC89C52RD+系列内部集成1280字节的数据存储器。内部RAM(256B)访问方法和基本型51单片机访问外部扩展RAM的方法相同,存储类型为xdata。内部扩展RAM(1024B)1280字节数据存储器STC89C52RC/RD+系列单片机数据寄存器内部扩展RAM是否可以访问受辅助寄存器AUXR(地址为0x8E)中的EXTRAM位控制。STC89C52RC/RD+系列单片机还可以访问在片外扩展的64KB外部数据存储器。thanks特殊功能寄存器SFR0x800xFF~128B数据存储器区128B0x000x7F~存放临时数据SpecialFunctionRegisterSFR特殊功能寄存器用于对片内各部件进行集中控制和监测21个特殊功能寄存器0x800x810x820x830x870x880x890x8A0x8B0x8C0x8D0x900x980x990xA00xA80xB00xB80xD00xE00xF0P0SPDPLDPHPCONTCONTMODTL0TL1TH0TH1P1SCONSBUFP2IEP3IPPSWACCB地址名称0xB9~0xCF共21个寄存器0xCF为T2控制寄存器T2CON单片机硬件升级预留如何在程序中使用SFR?特殊功能寄存器必须先定义后使用sfrsfrP2=0xA0;//把地址是0xA0的特殊功能寄存器名称定义为P2P2=0xFE;//把0xFE(11111110)赋值给特殊功能寄存器P211111110SFRP276543210字节操作:定义特殊功能寄存器的名字和地址的对应关系流水灯程序reg52.h文件片段0x800x810x820x830x870x880x890x8A0x8B0x8C0x8D0x900x980x990xA00xA80xB00xB80xD00xE00xF0P0SPDPLDPHPCONTCONTMODTL0TL1TH0TH1P1SCONSBUFP2IEP3IPPSWACCB地址名称字节地址能被8整除的SFR可位寻址可位寻址的特殊功能寄存器的每一位必须先定义后使用sbitsbitLED=P3^2;//定义P3的第2位位名称为LEDLED=1;76543210SFRP3位操作LED1单片机P3.21:定义特殊功能寄存器中可位寻址位名称定时控制器控制程序片段#include<reg52.h>reg52.h文件SCON位定义SCONSM0SM1SM2RENTB8RB8TIRIREN=0REN=10x980x800x810x820x830x870x880x890x8A0x8B0x8C0x8D0x900x980x990xA00xA80xB00xB80xD00xE00xF0P0SPDPLDPHPCONTCONTMODTL0TL1TH0TH1P1SCONSBUFP2IEP3IPPSWACCB地址名称与单片机硬件相关寄存器单片机系统寄存器系统运行时默认使用它们,在C程序中基本不会出现数据存储器增强型单片机所有0x800xFF~低128B数据存储器区高128B0x000x7F~特殊功能寄存器地址范围也为0x80~0xFF!二者分属不同的物理空间STC89C52RC/RD+系列单片机新增特殊功能寄存器thanks单片机的外部引脚VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0GND40393837363534333231302928272625242322211234567891011121314151617181920VCC、GND(40、20):电源引脚,接入单片机的工作电源接+5V接电源地0VP0.0~P0.7(39~32):P0口引脚P1.0~P1.7(1~7):P1口引脚P2.0~P2.7(21~27):P2口引脚P3.0~P3.7(10~17):P3口引脚每个并行IO均为8位为准双向口输入输出数据VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RSTXTAL2GNDXTAL140393837363534333231302928272625242322211234567891011121314151617181920X2:片内振荡器的反相放大器的输入端;外部时钟发生器的输入端。X1:片内振荡器的反相放大器的输出端。在该引脚输入两个机器周期以上的高电平时,单片机复位。RST:复位信号输入端VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RSTXTAL2GNDXTAL1PSEN40393837363534333231302928272625242322211234567891011121314151617181920访问外部ROM时,产生负脉冲信号作为外部程序存储器的片选信号。在访问外部ROM的每个机器周期内,产生两个负脉冲信号。在访问外部ROM的每个机器周期内,产生两个负脉冲信号。PSEN非:外部ROM读选通引脚VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RSTXTAL2GNDXTAL1ALEPSEN40393837363534333231302928272625242322211234567891011121314151617181920ALE:地址锁存允许引脚单片机正常运行时,ALE以1/6晶振频率输出脉冲。该引脚为CPU访问外部存储器提供地址锁存信号,信号下降沿将低8位地址锁存到片外地址锁存器中。VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0EARSTXTAL2GNDXTAL1ALEPSEN40393837363534333231302928272625242322211234567891011121314151617181920EA非:外部ROM选择引脚当该引脚为高电平时,从片内ROM读取指令,只有当PC超出片内ROM地址范围时,才转到外部ROM中读取指令。当该引脚为低电平时,一律从外部ROM中读取指令。VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0EARSTXTAL2GNDXTAL1ALEPSEN/RXD/TXD/INT0/INT1/T0/T1/WR/RD40393837363534333231302928272625242322211234567891011121314151617181920RXD(P3.0):串行数据输入端TXD(P3.1):串行数据输出端INT0(P3.2):外部中断0申请输入端INT1(P3.3):外部中断1申请输入端VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0EARSTXTAL2GNDXTAL1ALEPSEN/RXD/TXD/INT0/INT1/T0/T1/WR/RD40393837363534333231302928272625242322211234567891011121314151617181920T0(P3.4):计数器0外部计数脉冲输入端T1(P3.5):计数器1外部计数脉冲输入端WR(P3.6):写外设控制信号输出端RD(P3.7):读外设控制信号输出端VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0EARSTXTAL2GNDXTAL1ALEPSEN/RXD/TXD/INT0/INT1/T0/T1/WR/RD40393837363534333231302928272625242322211234567891011121314151617181920A0/D0/A1/D1/A2/D2/A3/D3/A4/D4/A5/D5/A6/D6/A7/D7/A8/A9/A10/A11/A12/A13/A14/A15/P0口分时作为数据线和片外存储器低8位地址线。单片机扩展片外存储器时P2口输出片外存储器地址高8位电源引脚单片机外部引脚时钟引脚VCC(40脚)GND(20脚)控制引脚并行I/O口引脚:XTAL1(19脚)XTAL2(18脚)复位引脚RST(9脚)地址锁存允许引脚ALE(30脚)外部程序存储器选择引脚(31脚)外部程序存储器读选通引脚(29脚)P0、P1、P2、P3STC89C52RC/RD+系列单片机外部引脚HD版本90C版本PDIP40封装引脚排列STC89C52RC/RD+系列单片机外部引脚HD版本90C版本LQFP44封装引脚排列多出4个标准I/O口:P4.0、P4.1、P4.2和P4.3thanks程序计数器PC单片机的工作过程就是执行程序的过程//单字节语句//单字节语句//双字节语句//双字节语句0x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFDTR0=0;LED=0;Set_Min=10;min=0;ProgramCounter16位寄存器,寻找范围64KB用来存放下一条指令(语句)的地址,具有自动加一功能上电时自动复位,运行时可手动复位,复位后PC内容为0x0000程序计数器PC没有物理地址//单字节语句//单字节语句//双字节语句//双字节语句TR0=0;LED=0;Set_Min=10;min=0;0x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFD指令寄存器PCPC0x000123450PCPCPCPCPCPC60x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFD指令寄存器PC0x0006PCPC0x0FFD0x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFD指令寄存器PC0xNNNNPCPC0x00000x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFDthanksProteus工作界面介绍

主菜单栏

工具栏

工具箱

绘图工具栏

图形编辑窗口状态栏仿真进程控制按钮对象选择器窗口预览对象方位控制按钮预览窗口对象选择按钮

主菜单栏

工具栏

绘图工具栏

状态栏仿真进程控制按钮图形编辑窗口显示工作状态和系统运行状态通过鼠标滚轮可放大/缩小图形编辑窗口开始、单步、暂停、停止快捷地使用菜单命令File工具栏、View工具栏、Edit工具栏和Design工具栏

工具箱选择模式鼠标指针恢复至箭头状态组件模式单击“P”按钮从元件库选择元件到对象选择器窗口选择对象选择器窗口中的元件放置到电路图中导线标号模式给连线定义标号,标号相同的点在电气上是连接的总线模式画总线时用到,与导线标号模式配合使用终端模式电源电源地默认端子

工具箱输入端子输出端子信号发生器直流电源正弦波发生器脉冲发生器数字时钟信号发生器

工具箱

电压探针模式测试探针处的电压值电流探针模式测试探针处的电流值电流探针的方向一定要与电路的导线平行工具箱虚拟仪器模式逻辑分析仪虚拟终端I2C调试器模式发生器交直流电流表

虚拟示波器计数/定时器信号发生器SPI调试器交直流电压表工具箱在放置元器件时,通过预览窗口预览元器件图形

预览窗口在预览窗口上单击,会有一个矩形绿框标示出在编辑窗口中显示的区域

预览窗口

预览对象方位控制按钮调整对象选择器窗口中元件的方位对象选择器窗口显示元件库中选择的元件对象选择器窗口显示工具箱中各模式中的设备、终端、引脚、图形符号、标注和图形等对象选择按钮查找元件窗口对象选择按钮元件库管理器

thanks单片机的时钟电路+5V0V0x00000x00010x0FFE0x0FFF0x00020x00030x00040x00050x00060x00070x0FFC0x0FFDROM1.单片机正常工作条件用户程序时钟信号接通电源、下载用户程序的单片机能正常工作吗?时钟电路1.单片机正常工作条件XTAL2XTAL11819输出端输入端晶振晶振大小:6MHz12MHz11.0592MHz起振电容:30PF左右,二者大小一致反相放大器单片机自激振荡电路稳定振荡频率快速起振C1C22.内部时钟电路XTAL2XTAL11819反相放大器单片机外部振荡源用于多个单片机同步工作3.外部时钟电路注意事项:时钟电路尽可能靠近单片机,减少寄生电容,保证振荡器稳定和可靠工作。12MHz30PFthanks单片机的时序振荡脉冲的周期定义为节拍,用P表示ToscTosc=1/fosc时钟电路产生的信号频率即为晶振频率fosc节拍为单片机最小时间单位振荡信号P1.振荡信号P1P2S时钟信号的周期,用S表示时钟信号时钟信号的周期为振荡信号周期的2倍状态是节拍的2倍时钟信号的频率为晶振频率的1/2时钟信号是振荡信号2分频后的结果振荡信号2.状态P1P2S1一个机器周期宽度为6个状态,用S1~S6表示P1P2一个机器周期T机器周期=12Tosc=12/fosc时钟信号振荡信号单片机中最基本的时间单位P1P2P1P2P1P2P1P2S2S3S4S5S6晶振频率为12MHz,则机器周期为12/(12×10^6)=1us完成一个基本操作(取指令、存储器读写)3.机器周期一条指令执行的时间单周期指令:指令执行时间为1个机器周期双周期指令:指令执行时间为2个机器周期四周期指令:指令执行时间为4个机器周期已知晶振频率为12MHz,则一由1000条指令组成的程序,执行时间为1ms~2ms乘法和除法含1~4个机器周期4.指令周期晶振频率振荡脉冲频率振荡脉冲周期(节拍)时钟信号(状态)机器周期单周期指令双周期指令4周期指令即为倒数2分频6分频thanks单片机的复位电路使单片机的状态处于初始化状态,让单片机的程序从头开始执行,运行时钟处于稳定状态,各寄存器,端口处于初始化状态等。让单片机能够稳定、正确的从头开始执行程序。1.单片机复位电路的作用2机器周期以上高电平晶振频率为12MHz机器周期为1us2us2.单片机的复位信号上电复位VRST5Vττ取决于R与C的大小,选择合适的RC值便可使τ大于两个机器周期3.6V10uF10KΩ电解电容高电平范围3.6V~5V0V3.上电复位电路工作原理单片机运行过程中出现了卡死现象,需要不断电复位时上电复位电路是无法实现复位的3.上电复位电路工作原理10uF10KΩ4.上电+按钮复位电路上电+按钮复位10uF10KΩ4.上电+按钮复位电路5.单片机复位后寄存器的状态STC89C52RC/RD+系列单片机复位后:PCON的状态为0x00×00000IE的状态为0x0×00000IP的状态为0x××000000复位后,程序计数器PC内容为0,从头开始执行用户程序存放下一条指令的地址,具有自动加1功能程序计数器PC为一16位寄存器死机后,按下复位按键,将程序计数器PC清零,从头重新执行程序即可恢复正常5.单片机复位后寄存器的状态5.单片机复位后寄存器的状态STC89C52RC/RD+系列新增的20个特殊功能寄存器复位状态:(1)看门狗的作用与背景6.看门狗(WDT)复位①应用场景:工业控制、汽车电子、航空航天等高可靠性系统。②主要问题:系统受干扰时,CPU程序可能“跑飞”,导致长时间异常工作。③看门狗的作用:-监控CPU运行状态。-若CPU未在规定时间内访问看门狗,则判定系统异常。-自动触发CPU复位,使系统重新从初始状态执行程序。(2)STC89C52的看门狗功能6.看门狗(WDT)复位内部集成了看门狗功能,提升系统可靠性,简化设计。通过看门狗控制寄存器WDT_CONTR(地址0xE1)进行配置。注意:该寄存器不可位寻址,必须字节操作。EN_WDT:看门狗允许位,当设置为1时,看门狗启动。CLR_WDT:看门狗清零位。当设置为1时,看门狗将重新计数。硬件将自动清零此位。(2)STC89C52的看门狗功能6.看门狗(WDT)复位看门狗溢出时间计算计算公式:看门狗溢出时间=12×预分频值×32768÷晶振频率预分频值由PS2、PS1、PS0三位决定(000B~111B)。IDLE_WDT:看门狗空闲模式位。1,看门狗定时器在空闲模式时计数;0,看门狗定时器在空闲模式时不计数。thanks并行I/OP3的内部结构与操作1.P3的功能RXD(P3.0):串行数据输入端TXD(P3.1):串行数据输出端INT0(P3.2):外部中断0申请输入端INT1(P3.3):外部中断1申请输入端T0(P3.4):计数器0外部计数脉冲输入端T1(P3.5):计数器1外部计数脉冲输入端WR(P3.6):写外设控制信号输出端RD(P3.7):读外设控制信号输出端第一功能:作为准双向I/O输入/输出数据第二功能:每一位具有不同的第二功能①②输出驱动电路②①输出信号选择电路①选择P3口作为准双向IO口输出或作为第二功能输出第二功能输入(RXD,T0,T1,INT0,INT1)第二功能输出(WR/RD/TXD)2.P3的内部结构2.P3的内部结构每一位具有不同第二功能P3的操作准双向I/O输入/输出数据3.P3的操作作为准双向I/O输入/输出数据3.P3的操作1第二功能输出(WR/RD/TXD)截止101111第二功能输入(RXD,T0,T1,INT0,INT1)输出13.P3的操作0第二功能输出(WR/RD/TXD)11001第二功能输入(RXD,T0,T1,INT0,INT1)输出0饱和导通03.P3的操作第二功能输出(WR/RD/TXD)第二功能输入(RXD,T0,T1,INT0,INT1)输入数据1截止011/0111/0读引脚指令11/01/03.P3的操作第二功能输出(WR/RD/TXD)第二功能输入(RXD,T0,T1,INT0,INT1)输入数据1/01/01/0读锁存器指令3.P3的操作每一位具有不同第二功能TXD(P3.1):串行口接收数据输出端WR(P3.6):写外设控制信号输出端RD(P3.7):读外设控制信号输出端RXD(P3.0):串行口接收数据输入端INT0(P3.2):外部中断0申请输入端INT1(P3.3):外部中断1申请输入端T0(P3.4):计数器0外部计数脉冲输入端T1(P3.5):计数器1外部计数脉冲输入端输出数据输入数据3.P3的操作第二功能输出(WR/RD/TXD)第二功能输入(RXD,T0,T1,INT0,INT1)输出11截止0111113.P3的操作第二功能输出(WR/RD/TXD)第二功能输入(RXD,T0,T1,INT0,INT1)111010饱和导通0输出03.P3的操作第二功能输出(WR/RD/TXD)第二功能输入(RXD,T0,T1,INT0,INT1)输入数据1截止011/0111/013.P3的操作thanks单片机I/O口与负载的接口电路1.I/O口的负载能力P0口(通用I/O模式):漏极开路输出。每位可驱动8个TTL电平,但驱动拉电流负载时必须外接上拉电阻。P0口(总线模式):推挽输出。驱动能力强,无需上拉电阻,但不能作通用I/O。P1、P2、P3口:内部已带上拉电阻。每位可驱动4个TTL电平,可直接驱动OC/OD电路。电平兼容:P0、P1、P2、P3口电平与CMOS和TTL电平兼容。驱动晶体管基极时,必须在I/O口与基极间串接限流电阻。2.低电平驱动方式-“灌电流”工作原理:I/O口输出低电平(0)来驱动负载。电流从Vcc经负载流入I/O口,最终到GND。I/O口吸收电流,即“灌电流”。优点:

单片机I/O口的灌电流能力通常强于拉电流,是首选的驱动方式。2.STC89C52灌电流参数与计算最大灌电流(数据手册):P0口:12mA(每I/O口)P1/P2/P3口:6mA(每I/O口)输出低电平电压:不是0V,存在压降。灌电流10mA时:约0.4V~0.5V灌电流<1mA时:约0.1V~0.2V限流电阻R计算公式(以驱动LED为例)LED正向压降I/O口输出0时的低电平电压电源电压期望的LED工作电流(需小于最大灌电流)3.高电平驱动方式-“拉电流”工作原理:I/O口输出高电平1来驱动负载。电流从I/O口流出,即“拉电流”。存在的问题(单片机自身能力弱):P0口:开漏输出,无内部上拉,基本无拉电流能力。P1/P2/P3口:虽有内部上拉电阻,但阻值大(约30kΩ-100kΩ),提供的拉电流通常小于1mA,不足以直接驱动多数负载(如LED会很暗)。设计电路时,应避免直接使用I/O口的拉电流驱动负载。3.高电平驱动方式-“拉电流”如何实现高电平有效驱动?首选方案:重新设计逻辑,采用低电平有效(灌电流)驱动。必须使用高电平时:添加外部上拉电阻(图示):为负载提供额外电流。使用总线驱动器:如74HC244等,增强驱动能力。外接上拉电阻R的计算公式:I/O口输出高电平,其输出电阻影响较小,可近似忽略。需要保证I/O口在输出低电平时,能吸收流经该电阻的电流。thanks并行I/OP1的内部结构与操作作为普通I/O口输入/输出数据1.P1的功能①①输出驱动电路上拉电阻x为0~72.P1的内部结构输出数据1P1的操作输出数据0输入数据读引脚与读锁存器3.P1的操作1001输出1截止11输出1后,引脚将保持为1状态,直到更新输出数据。3.P1的操作0110饱和导通0输出00输出0后,引脚将保持为0状态,直到更新输出数据。3.P1的操作0110饱和导通输入数据若之前输出数据0引脚始终钳位为0电平3.P1的操作1001截止11输入数据若之前输出数据1外部数据1/0可输入3.P1的操作输入数据输入数据时,先令该引脚输出1,使内部场效应管截止引脚输出1也称为置位该引脚3.P1的操作1/0截止1/0读引脚指令①读引脚1/01/0输入数据3.P1的操作②读锁存器1/01/01/0读锁存器指令输入数据3.P1的操作输入数据时,先令该引脚输出1,因此P1口为准双向口3.P1的操作输出锁存器的作用:存储引脚发送出去的数据,存储引脚读入的数据3.P1的操作特殊功能寄存器P1字节地址为0x904.特殊功能寄存器P1特殊功能寄存器P1的作用:存储引脚发送及接收的数据4.特殊功能寄存器P1SFRP1的物理形式4.特殊功能寄存器P1thanks并行I/OP0的内部结构与操作第一功能:作为准双向I/O口输入/输出数据第二功能:作为地址/数据总线,分时输出外部存储器的低8位地址A0~A7,输入/输出8位数据D0~D71.P0的功能①②推挽结构的输出电路②①双功能选择电路①实现锁存器的输出和地址/数据信号之间的选择2.P0的内部结构2.P0的内部结构地址/数据总线P0的操作准双向I/O输入/输出数据同P1并行扩展外部存储器,P0分时输出外部存储器的低8位地址A0~A7,输入/输出8位数据D0~D7向外部存储器输出数据从外部存储器输入数据P0先输出外部存储器的低8位地址A0~A7,后输出8位数据D0~D7P0先输出外部存储器的低8位地址A0~A7,后输入8位数据D0~D73.P0的操作作为准双向I/O输入/输出数据3.P0的操作0截止00VCC4.7K~10K作为准双向I/O口输入/输出数据原理同P1上拉电阻3.P0的操作作为地址/数据总线,并行扩展外部存储器向外部存储器输出数据先输出外部存储器的低8位地址,后输出8位数据3.P0的操作1VCC输出地址/数据0110饱和导通3.P0的操作11VCC输出地址/数据1001截止饱和导通3.P0的操作作为地址/数据总线,并行扩展外部存储器从外部存储器输入数据P0先输出外部存储器低8位地址,后输入8位数据3.P0的操作1VCC输出地址1/00/11/0输出过程同向外部存储器输出数据3.P0的操作00VCC截止1000截止输入数据1/03.P0的操作VCC1/0读引脚指令1/0输入数据1/0截止截止1/01/03.P0的操作VCC输入数据1/0截止截止1/01/0读锁存器指令1/03.P0的操作作为地址/数据总线使用时是一个真正的双向口T1和T2是一起工作的,构成推挽结构输出高电平时,T1导通,T2截止,需外接上拉电阻;输出低电平时,T1截止,T2导通,不用外接上拉电阻。第二功能输出高电平时,因内部电源直接通过T1输出到P0上,因此驱动电流可以很大,可驱动8个TTL逻辑电平。3.P0的操作thanks并行I/OP2的内部结构与操作第一功能:作为准双向I/O输入/输出数据第二功能:并行扩展外部存储器时,输出外部存储器地址的高8位A8~A151.P2的功能外部存储器小于256B时,只需8位地址即可。①②输出驱动电路②①双功能选择电路①实现锁存器的输出和地址/数据信号之间的选择2.P2的内部结构2.P2的内部结构地址总线P2的操作准双向I/O输入/输出数据并行扩展外部存储器(容量大于256B),P2输出高8位地址A8~A15。(P0输出地8位地址A0~A7)3.P2的操作1输出1截止0011作为准双向I/O输入/输出数据3.P2的操作0饱和导通1000作为准双向I/O输入/输出数据输出03.P2的操作1截止011/01/0读引脚指令0作为准双向I/O输入/输出数据输入数据1/01/03.P2的操作截止1/00作为准双向I/O输入/输出数据1/01/0读锁存器指令输入数据3.P2的操作1截止101地址输出外部存储器地址的高8位输出地址13.P2的操作011饱和导通0输出外部存储器地址的高8位输出地址0地址3.P2的操作①①锁存低8位地址向指定存储单元写入数据存储单元高8位地址由P2送出,低8位地址由P0送出ALE输出使能信号使能锁存器,低8位地址锁存,P0总线空闲待写数据经P0写入指定存储单元4.单片机并行扩展外部数据存储器接口电路①①锁存低8位地址从指定存储单元读取数据存储单元高8位地址由P2送出,低8位地址由P0送出ALE输出使能信号使能锁存器,低8位地址锁存,P0总线空闲先向P0写入0xFF数据经P0读入单片机4.单片机并行扩展外部数据存储器接口电路thanksC51数据类型C51编译器支持的数据类型标准C语言的数据类型C51扩充数据类型unsignedchar取值范围为:0~255长度:1字节8位均为数据位11111111000000000255经常用于处理ASCII字符或小于等于255的整型数是使用最为广泛的数据类型1.无符号字符型数据unsignedcharu;定义了无符号字符型变量u变量u可以是0~255的整数u=126变量u也可以是字符u='a'1.无符号字符型数据低7位为数据位11111111000000000127char取值范围:-128~127长度:1字节符号位0:正数1:负数chara[11]={'d','a','n','','p','i','a','n','','j','i'};定义了一个数组并用字符常量逐个初始化数组2.字符型数据unsignedint取值范围:0~65535长度:2字节16位均为数据位11111111000000001111111100000000065535连续两个相邻字节unsignedintms;定义了一个无符号整型变量ms,取值范围为0~655353.无符号整型数据低15位为数据位11111111000000001111111100000000032767int取值范围:-32768~32767长度:2字节符号位0:正数1:负数4.整型数据-2147483648~2147483647unsignedlong无符号长整型长整型long0~42949672954字节4字节连续4个相邻字节5.长整型数据4字节float取值范围:±1.175494E-38~±3.402823E+38小数类型,精确到小数点后6位floata;2.3333336.浮点型数据*数据地址1~3字节指针型本身就是一个变量,存放的内容是另一个数据的地址unsignedchar*p;//定义了指针变量p,长度为1个字节指针变量p可存放数据的地址int*q;//定义了指针变量q,长度为2个字节7.指针型数据bit取值范围:0或1长度:1位10bitkey=0;定义一个名为key的位变量并赋值为08.位型数据寄存器型可寻址位16位寄存器型sbitsfrsfr160~2550~655350或11位1字节2字节定义SFR及SFR的某一位9.寄存器型数据寄存器型16位寄存器型sfrsfr16sfr特殊功能寄存器名称=特殊功能寄存器地址;C51编译器在头文件“REG51.h”(“REG52.h”)中定义了全部寄存器型变量和部分sbit变量。16特殊功能寄存器高低8位分别定义用一条预处理命令#include<REG51.h>(<REG52.h>)把这个头文件包含到C51程序中,无需重定义即可直接使用它们的名称。REG51.h片段9.寄存器型数据sbit位名称=位地址;可寻址位sbitsbit位名称=特殊功能寄存器^位位置;sbit位名称=特殊功能寄存器字节地址^位位置;sbitled=P1^0;REG51.h片段REG52.h片段9.寄存器型数据thanks常量ms、u、P2、0、1、0xfe、350程序中的数据:ms、u、P2程序中的变量:0、1、0xfe、350程序中的常量:流水灯程序常量是指在程序执行期间其值固定、不能被改变的量1.常量的定义数值型常量整型常量字符型常量浮点型常量字符串型常量位型常量符号常量常量2.常量的种类数据格式示例十进制十六进制124、36000xfe、0x12af整型常量数据格式11000010、00001010二进制整型常量包含的数据类型有:无符号字符型、字符型、整型、无符号整型、长整型、无符号长整型(1)整型常量2.常量的种类整型常量应用举例0、124、1、350十进制常量:0xfe十六进制常量:流水灯程序2.常量的种类数据格式示例位0、1位型常量数据格式(2)位型常量2.常量的种类数据格式示例小数指数0.0195、-23.76130e3、-8.01e-3浮点型常量数据格式(3)浮点型常量2.常量的种类位型与浮点型常量应用举例bit

flag=1;//1为位型常量

result=0.0196*Read();//0.0196为浮点型常数

2.常量的种类数据格式示例单引号括起来的单一字符'1'字符型常量数据格式ASCII码数值49'+'43(4)字符型常量''382.常量的种类字符型常量应用举例简易计算器键盘扫描子程序片段2.常量的种类字符常量数据类型为无符号字符型2.常量的种类数据格式示例字符串组成用英文双引号括起来的一串字符"LCDcalculator"字符串型常量数据格式'L'、'C'、'D'、''、'c'、'a'、'l'、'c'、'u'、'l'、'a'、't'、'o'、'r'、'\0'"A"'A'、'\0'""'\0'(5)字符串型常量2.常量的种类字符串型常量的应用举例LCD_Write_String(0,0,"LCDcalculator");

LCD_Write_String(0,1,"+-x/");2.常量的种类符号常量先定义后使用(6)符号常量温度控制系统控制程序片段2.常量的种类数值型常量整型常量字符型常量浮点型常量字符串型常量位型常量符号常量常量不用说明就可以直接使用使用之前必须用编译预处理命“#define”先进行定义thanks变量的定义变量是一种在程序执行过程中其值能不断变化的量。一个变量由变量名和变量值组成,变量名是存储单元(存储位)地址的符号表示,而变量的值就是该单元(位)存放的内容。变量必须先定义、后使用。a011000111.什么是变量数据类型变量名表;char、unsignedchar、unsigendint、float等C51编译器支持的数据类型变量定义的一般格式:变量名表可由一个或多个变量名组成,多个变量名之间用逗号分开2.变量定义的一般格式同标识符命名规则①由a~z、A~Z、0~9、_和$组成;变量名命名规则:②不能以数字开头,不能是关键字;③严格区分大小写;④标识符的可以为任意长度。合法变量名:a、sign、m1、_gk、kdsa723、非法变量名:1a2.变量定义的一般格式unsignedcharn,i,j,sign;//定义了四个无符号字符型变量,变量之间用逗号隔开bit

flag;//定义了一个位型变量2.变量定义的一般格式在定义变量时可为变量赋初值floata=0,b=0;

//定义了两个浮点型变量a与b,并分别赋值为02.变量定义的一般格式数据类型变量名表;定义变量类型为变量指定存储区域存储种类存储器类型3.变量定义的完整格式存储种类数据类型存储器类型变量名表;auto(自动变量)extern(外部变量)static(静态变量)register(寄存器变量)作用域仅限于定义该变量的个体内在函数内,凡未加存储种类说明的均为自动变量自动变量是C语言中使用最广泛的一种类型存储种类:3.变量定义的完整格式变量u为auto类型,作用域为delay函数内流水灯程序3.变量定义的完整格式存储种类数据类型存储器类型变量名表;auto(自动变量)extern(外部变量)static(静态变量)register(寄存器变量)作用域仅限于定义该变量的个体内在函数内,凡未加存储种类说明的均为自动变量自动变量是C语言中使用最广泛的一种类型在所有函数之前,在函数外部定义的变量都是外部变量extern可省略存储种类:若在一个函数体内说明一个说明一个已在函数体外或别的程序模块文件中定义过的外部变量,必须使用

extern说明符3.变量定义的完整格式在所有函数之前,在函数外部定义,均为外部变量,extern省略定时控制器控制程序片段3.变量定义的完整格式存储种类数据类型存储器类型变量名表;auto(自动变量)extern(外部变量)static(静态变量)register(寄存器变量)作用域仅限于定义该变量的个体内在函数内,凡未加存储种类说明的均为自动变量自动变量是C语言中使用最广泛的一种类型在所有函数之前,在函数外部定义的变量都是外部变量extern可省略属于静态存储方式静态局部变量静态全局变量在定义该变量的函数内使用作用域局限于一个源文件内存放于CPU的寄存器中存储种类:3.变量定义的完整格式变量在51单片机硬件系统中所使用的存储区域,共6个存储区data区:片内RAM,地址范围为0x00~0x7f,共128Bbdata区:片内RAM的位寻址区,地址范围为0x20~0x2fidata区:片内RAM的高128B(增强型单片机),地址范围为0x80~0xffxdata区:片外RAM,地址范围为0x0000~0xffffpdata区:片外RAM,地址范围为0x00~0xffcode区:ROM区,地址范围为0x0000~0xffff存储种类数据类型存储器类型变量名表;存储器类型:3.变量定义的完整格式Small:默认存储区域为data区Compact:默认存储区域为pdata区Large:默认存储区域为xdata区默认存储器模式为Small一般在定义变量时经常省略存储器类型的定义,采用默认的存储器类型,而默认的存储器类型与存储器模式有关。3.变量定义的完整格式unsignedcharu;

//变量u位于data区unsignedcharcodea[]=={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//数组a位于ROM区数量较多、在程序运行中不改变的常量,一般存储在ROM区3.变量定义的完整格式thanks赋值运算符与赋值表达式u=0P2=0xfeP2=_crol_(P2,1)赋值表达式=为赋值运算符流水灯程序赋值运算符:赋值表达式;利用赋值运算符“=”将变量与表达式连接起来的式子变量/寄存器名/位名=表达式①存储单元地址的符号。a、s、b[1]②特殊功能寄存器名。P2、TMOD、SCON③定义的存储位,特殊功能寄存器中的位。Key、TR1、ES④常数,算式,调用子函数。5、b、8+9、delay()“=”左右的数据类型要一致1.赋值表达式①②③④a=5将常数5赋给变量ac=5+1000先计算5+1000,然后将结果赋给变量cm[1]=n将变量n的值赋给数组变量m[1],赋值后n的值不变t=get()将函数get()的返回值赋给变量tP2=0xfe将0xfe赋给寄存器P2TR0=1将常数1赋给寄存器位TR0x=y=5将常数5赋给变量y,然后赋给变量x在C51程序中,允许在一个语句中同时给多个变量赋值,赋值顺序自右向左1.赋值表达式a=a+1b=b-11x=x*(y+9)i=i/3abxi+=-=*=/=111y+93算术运算复合赋值符复合赋值表达式有利于提高编译效率j=j%3j%=32.复合赋值表达式&=|=^=<<=>>=~=3.位运算复合赋值符thanks算术运算符与算术表达式1.算术运算符加法减法乘法除法取余自增+-*÷%++自减--取整/用算术运算符连接起来的式子表达式1加/减/乘/除/取整/取余表达式2表达式:常数、变量、式子62/1062%10加/减/乘/除/取余运算符为双目运算符3+3x-25*(100+c)62÷m加/减/乘/除/取整/取余算术表达式2.算术表达式用算术运算符连接起来的式子变量++变量--++变量--变量后置运算前置运算自增自减运算符为单目运算符自增自减运算表达式:使变量增或减12.算术表达式unsignedinti=21,j;j=++i;//前置运算,先执行变量加1操作,再使用变量的值,执行后i为23,j为23j=i++;//i++;j=i;//定义两个无符号整型变量i与j,i赋初值为21//后置运算,先使用变量的值,再执行变量加1操作,执行后i为24,j为23//j=i;i++;使用时尽量避免将++,--运算符与其他运算用在一

温馨提示

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

评论

0/150

提交评论