单片机技术-南京工业大学课件_第1页
单片机技术-南京工业大学课件_第2页
单片机技术-南京工业大学课件_第3页
单片机技术-南京工业大学课件_第4页
单片机技术-南京工业大学课件_第5页
已阅读5页,还剩1027页未读 继续免费阅读

下载本文档

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

文档简介

明德厚学沉毅笃行单片微机原理与接口技术主讲:蒋书波参考教材:例说51单片机(第3版)(C语言版) 明德厚学沉毅笃行单片微机目录第一章单片机系统设计入门第二章深入探讨单片机系统硬件设计第三章内部RAM存储空间第四章MCS51指令系统第五章伪指令第六章输出口的应用第七章输入口的应用第八章外部RAM的扩展目录第一章单片机系统设计入门目录第九章中断的应用第十章定时器/计数器的应用第十一章串行口的应用第十二章C程序设计规范第十三章STC89C52RC第十四章液晶显示技术第十五章DS18B20温度传感器目录第九章中断的应用明德厚学沉毅笃行第一章

单片机系统设计入门1明德厚学沉毅笃行第一章

第一章单片机系统设计入门什么是单片机单片机系统设计案例硬件设计简介软件设计AT89S51内部结构简介第一章单片机系统设计入门什么是单片机明德厚学沉毅笃行什么是单片机1明德厚学沉毅笃行什么是单什么是单片机一个单片的微型计算机英文简写:MCU(MicrocontrollerUnit)什么是单片机一个单片的微型计算机AT89S51芯片文字说明ATMEL:公司名AT89S51:芯片型号[1-3]24PU:最大晶振24M,工业级(PC为民用级)0940A:09年第40批AT89S51芯片文字说明ATMEL:公司名STC89C52STC89C52STC89C52芯片文字说明STC:公司名89C52RC:芯片型号[39]40C:最大晶振40M,民用级(I为工业级)PDIP:封装类型40:引脚数STC89C52芯片文字说明STC:公STC89C52同AT89S51的区别STC89C52功能更多,更强。STC89C52兼容AT89S51的功能。具体区别,后面会陆续介绍。STC89C52同AT89S51的区别STC89C52功能更明德厚学沉毅笃行单片机系统设计案例1明德厚学沉毅笃行单片机系单片机系统设计案例例题:1个LED闪烁(汇编)功能:用汇编语言编写程序实现1个LED闪烁,并在学习板上运行。硬件设计简介软件设计单片机系统设计案例例题:1个LED闪烁(汇编)明德厚学沉毅笃行硬件设计简介1明德厚学沉毅笃行硬件设计电路图电路图AT89S51AT89S51一共有多少个引脚?引脚号的确定:缺口朝上,左边最上面的引脚为1号引脚AT89S51AT89S51一共有多少个引脚?晶振电路提供时间基准晶振频率越高,指令执行速度越快。晶振电路提供时间基准复位电路复位电路后面的课程详细讲。复位电路复位电路后面的课程详细讲。存储器设置电路31号引脚接高电平,使用内部ROM;接低电平,不使用内部ROM。存储器设置电路31号引脚接高电平,使用内部ROM;接低电平,电源双列直插式芯片的电源引脚一般为:左下角接地右上角接电源正极图中的C6起滤波作用,以后详细讲。电源双列直插式芯片的电源引脚一般为:LED电路LED电路,参考如下:LED电路LED电路,参考如下:思考当P1.0引脚电压为0时,发光LED亮还是灭?当P1.0引脚电压为VCC时,发光LED亮还是灭?思考当P1.0引脚电压为0时,发光LED亮还是灭?电路图电路图AT89S51硬件电路的最小系统上述电路图除发光LED电路外的其它电路都是单片机正常工作必不可少的,称为单片机硬件电路的最小系统。AT89S51硬件电路的最小系统上述电路图除发光LED电路外课堂练习打开[42]。在学习板电路图中找到单片机最小系统(晶振电路、复位电路、存储器设置电路、电源)的电路图。透彻理解该部分电路,并利用万用表,在学习板上找到相关元器件。分析学习板电路图上LED的电路,并在学习板上找到相关元器件。课堂练习打开[42]。在学习板电路图中找到单片机最小系统(晶明德厚学沉毅笃行软件设计1明德厚学沉毅笃行软件设计集成开发环境KeilμVision是单片机最流行的集成开发环境。目前的最新版本是KeilμVision4。该环境可支持多种汇编语言和C语言。集成开发环境KeilμVision是单片机最流行的集成开课堂练习:KeilμVision的安装大家跟我一起来安装KeilμVision如果需要Keil对STC的支持,参考[41]课堂练习:KeilμVision的安装大家跟我一起来安装K汇编语言由于二进制指令代码(机器语言)阅读困难,难以记忆,可通过一些容易记忆的符号代替二进制指令代码,来编写程序,然后,通过对程序进行汇编,翻译成机器语言烧写到ROM中。这种用助记符代替二进制指令代码的语言就是汇编语言。汇编语言由于二进制指令代码(机器语言)阅读困难,难以记忆,可读懂例题程序打开例题项目文件,读懂例题程序。读懂例题程序打开例题项目文件,读懂例题程序。将例题程序烧录到学习板上将程序烧录到芯片中,需要编译生成“*.hex”文件选中:Targetoptions\output\“createHEXfile”后,点击“rebuild”图标,生成“*.hex”文件STC单片机可通过串口“烧录”程序安装STC烧录程序软件烧录程序将例题程序烧录到学习板上将程序烧录到芯片中,需要编译生成“课堂练习修改例题,在学习板上实现2个LED交替闪烁。课堂练习修改例题,在学习板上实现2个LED交替闪烁。学会自己建立项目新建一个文件夹,用于存放项目文件。文件夹的名称可根据需要任意设定。建1个名称为“v0.0.0”的子文件夹,该名称为该项目的版本号(见下页)在项目中添加“main.asm”文件,用于编写汇编程序。学会自己建立项目新建一个文件夹,用于存放项目文件。版本号添加规范版本号添加规范:v0.0.0当版本号带有第3个数字时,为调试版本,当修改程序时,需保存老版本,并增加该数字的值在新版本上修改。当程序调试成功,可以发布时,可增加中间的数字,并去掉第3个数字。当可发布的版本有重大改进,可增加第1个数字。版本号添加规范版本号添加规范:v0.0.0课堂练习新建项目,在项目中添加“main.asm”文件,并在该文件中编写汇编代码实现:[1]P83霹雳灯实验。课堂练习新建项目,在项目中添加“main.asm”文件,并在明德厚学沉毅笃行AT89S51内部结构简介1明德厚学沉毅笃行AT89AT89S51的内部结构图AT89S51的内部结构图单片机的内部结构单片机的内部结构主要有以下几部分:CPU(CentralProcessingUnit,中央处理器)ROM(Read-OnlyMemory,只读存储器)RAM(RandomAccessMemory,随机存取存储器)其它内部设备单片机的内部结构单片机的内部结构主要有以下几部分:单片机系统设计单片机系统设计包括:硬件设计(上图中的绿色部分)软件设计(上图中的黄色部分)硬件设计:设计单片机及外部设备的硬件电路软件设计:用C语言或汇编语言编写程序并烧写到ROM中单片机系统设计单片机系统设计包括:CPUCPU也称为内核内核为MCS51的单片机统称为51系列单片机AT89S51、STC89C52均为51系列单品机CPU的作用:读取指令,执行指令CPUCPU也称为内核指令[5]基于MCS51核的汇编指令有111条这些指令都是用机器语言(二进制代码)来表示指令的单位是字节(Byte)1字节为8位(bit)每条指令的长度为1-3B为什么有些指令超过1个字节呢指令代码可以通过烧写器写到ROM中指令[5]基于MCS51核的汇编指令有111条指令周期每条指令执行时间为1-2个机器周期(乘除指令除外)1个机器周期=12*晶振振荡周期思考:如果晶振选用12MHz,执行1条单片机指令需要多长时间?指令周期每条指令执行时间为1-2个机器周期(乘除指令除外)思考如果晶振是12M,案例中延时子程序的精确延时时间是多少?思考如果晶振是12M,案例中延时子程序的精确延时时间是多少ROMROM:用于存放指令代码MCS51核可读取(不能写)ROM中的指令代码。MCS51核通过内部总线读取内部ROM。ROMROM:用于存放指令代码内部总线内部总线分为:地址总线数据总线控制总线内部总线内部总线分为:思考AT89S51的内部ROM地址范围是?AT89S51的内部ROM中最多可存放多少条指令?答:0x0000-0x0fff答:2000条左右思考AT89S51的内部ROM地址范围是?思考STC89C52的内部ROM为8K,其地址范围是?答:0x0000-0x1fff思考STC89C52的内部ROM为8K,其地址范围是?程序计数器PC作用:存放CPU将要读取的ROM地址占用2个字节默认值为:0x0000读取ROM1个字节后,PC值自动加1程序计数器PC作用:存放CPU将要读取的ROM地址CPUCPU也称为内核内核为MCS51的单片机统称为51系列单片机AT89S51、STC89C52均为51系列单片机CPU的作用:读取指令,执行指令CPUCPU也称为内核ROM的读取过程(自动)CPU端:1.将PC值通过地址总线送出3.给读ROM控制总线短暂低信号5.将数据总线数据读至CPU6.PC值自动加1ROM端:2.根据地址选中相应存储单元4.当有读ROM控制总线有低信号时,将选中的单元数据送数据总线。ROM的读取过程(自动)CPU端:RAM空间MCS51核内部RAM空间是256个字节地址范围是:0x00-0xff其中,0x00-0x7f为128B的RAM,0x80-0xff散布着20多个(不同型号数量不同)专用寄存器(见图)。RAM空间MCS51核内部RAM空间是256个字节专用寄存器有专门用途的存储单元专用寄存器有专门用途的存储单元CPU的作用读取指令,执行指令自动:读ROM,读写RAM,永不停息。CPU的作用读取指令,执行指令内部设备CPU通过对专用寄存器的读写间接控制内部设备。内部设备CPU通过对专用寄存器的读写间接控制内部设备。外部设备外部设备通过引脚连接到部分内部设备上CPU通过对专用寄存器的读写间接控制内部设备,进而控制外部设备。外部设备外部设备通过引脚连接到部分内部设备上例题进入软件调试状态,单步调试程序,观察P1口引脚变化、RAM的变化、ROM中的值、PC的变化,熟悉CPU工作原理。例题进入软件调试状态,单步调试程序,观察P1口引脚变化、R课后练习熟悉keil编程环境,熟悉keil调试环境熟悉程序的烧录过程。通过调试程序,熟悉MCS51核的工作原理。编程实现:利用软件延时实现LED每隔1秒定时闪烁,并在学习板上试验。参考资料[42],P1口和8个LED灯。复习:C语言课后练习熟悉keil编程环境,熟悉keil调试环境明德厚学沉毅笃行第二章

深入探讨单片机系统硬件设计1明德厚学沉毅笃行第二章

第二章深入探讨单片机系统硬件设计复位电路电源电路LED电路单片机IO口的内部结构简介第二章深入探讨单片机系统硬件设计复位电路提问CPU,RAM,ROM的作用是?CPU的工作过程是?提问CPU,RAM,ROM的作用是?明德厚学沉毅笃行复位电路1明德厚学沉毅笃行复位电路复位电路复位电路复位电路单片机9号引脚保持高电平(>2.8V)时间超过10ms时,AT89S51自动复位。思考:复位电路上电后,9号引脚电压如何变化?请写出电压变化公式。复位电路单片机9号引脚保持高电平(>2.8V)时间超过10m三个重要公式三个重要公式复位电路分析复位电路分析课堂练习求9号引脚电压值。课堂练习求9号引脚电压值。电容电压求解电容电压求解9号引脚电压9号引脚电压9号引脚电压变化曲线图9号引脚电压变化曲线图电容和电阻的取值当t=RC时,9号引脚电压约为0.37*VCC通常:电阻选择10K,电容选择10uF此时,9号引脚电压保持高电平(>2.8V)时间接近100ms,可以可靠复位。电容和电阻的取值当t=RC时,9号引脚电压约为0.37*VC思考思考:复位电路可否采用大电阻小电容形式?答:也可以。但该电路抗干扰能力差。思考:如何添加复位键?思考思考:复位电路可否采用大电阻小电容形式?课本中添加复位键的方法课本中添加复位键的方法思考上图有一个缺陷,是什么?答:按键需串联1个小电阻,防止电容损坏。思考上图有一个缺陷,是什么?明德厚学沉毅笃行电源设计1明德厚学沉毅笃行电源设计思考普通5V稳压电源能直接给单片机供电吗?AT89S51单片机的供电电压:4V-5.5V我们先研究一下普通稳压电源的内部结构。思考普通5V稳压电源能直接给单片机供电吗?稳压电源的内部结构图(a)是普通稳压电源的内部结构图(b)是未加电容时输出电压波形图。稳压电源的内部结构图(a)是普通稳压电源的内部结构图添加电容后输出电压波形图电容越大滤波效果越好(RL为负载电阻)。添加电容后输出电压波形图电容越大滤波效果越好(RL为负载电阻电解电容大容量电容几乎都是电解电容。主要有两种:铝电解电容钽电解电容铝电解电容一般简称:电解电容钽电解电容一般简称:钽电容电解电容大容量电容几乎都是电解电容。主要有两种:电解电容规格额定耐压值需大于正常工作电压的2倍。常见耐压值有:6.3V、10V、16V、25V、35V、50V、63V、80V、100V、250V、400V、500V、630V。常见电容值有:0.47uF、1.0uF、2.2uF、3.3uF、4.7uF、10uF、22uF、33uF、47uF、100uF、220uF、330uF、470uF、680uF、1000uF、2200uF、3300uF、4700uF、6800uF电解电容规格额定耐压值需大于正常工作电压的2倍。钽电容规格额定耐压值需大于正常工作电压的2倍。常见耐压值有:6.3V、10V、16V、25V、35V。常见电容值有:0.47uF、1.0uF、2.2uF、3.3uF、4.7uF、10uF、22uF、33uF、47uF、100uF、220uF、330uF、470uF、680uF钽电容规格额定耐压值需大于正常工作电压的2倍。电解电容电解电容钽电容钽电容电解电容与钽电容比较电解电容优点:价格便宜,耐压值高,容量大缺点:误差大,稳定性差,寿命低。钽电容优点:误差小,稳定性高,寿命高。缺点:价格高,耐压值低电解电容与钽电容比较电解电容稳压电源能直接给单片机供电吗?答:不可以,稳压电源的电源电压波动太大,直接给单片机供电,将影响单片机工作的稳定性,甚至会损坏单片机。一般需添加稳压芯片。稳压电源能直接给单片机供电吗?答:不可以,稳压电源的电源电压常见的稳压芯片[7-10]线性稳压芯片:LM7805,LM1117开关稳压芯片:LM2596观察学习板上使用的稳压芯片。常见的稳压芯片[7-10]线性稳压芯片:LM7805,LM1LM7805[7]性能指标输出电压:+5V输出电流:<1A(添加散热器可达1.5A)线性调整率:<100mV负载调整率:<100mV输入电压:8V-15V淘宝价格:约0.5元LM7805[7]性能指标线性调整率和负载调整率线性调整率:输入电压变化时输出电压变化指标负载调整率:负载变化时输出电压变化指标线性调整率和负载调整率线性调整率:输入电压变化时输出电压变化lm1117-3.3[8]性能指标输出电压:+3.3V输出电流:<800mA线性调整率:<0.2%负载调整率:<0.4%输入电压:4.75V-10V淘宝价格:约0.2元lm1117-3.3[8]性能指标Lm2596–5.0[9]性能指标输出电压:+5.0V输出电流:<3A输出电压误差:<4%输入电压:7V-40V效率:80%淘宝价格:约2元Lm2596–5.0[9]性能指标关于输出电流如果系统长期运行,系统中稳压芯片的实际输出电流不能超过额定电流的1/3。关于输出电流如果系统长期运行,系统中稳压芯片的实际输出电流不学习板电源电路下面我们来研究一下,学习板的电源电路。请同学们拿出学习板,观察学习板电源电路的相关元器件。学习板电源电路下面我们来研究一下,学习板的电源电路。学习板电源电路图学习板电源电路图思考为什么稳压芯片两端需加电容?答:电源滤波。思考为什么稳压芯片两端需加电容?思考为什么用两个电容并联?这个问题比较复杂,先学习一下基本知识。思考为什么用两个电容并联?电解电容电解电容并不是理想地呈现容性,也存在很小的电阻和电感。电解电容电解电容并不是理想地呈现容性,也存在很小的电阻和电感电解电容的阻抗电解电容的阻抗电解电容的阻抗电解电容的电阻和电感非常小,因此,当频率较低时,电解电容呈现容性。但是,当频率非常高时,电解电容反而呈现感性。电解电容的阻抗电解电容的电阻和电感非常小,因此,当频率较低时电解电容阻抗随频率变化的图形电解电容阻抗随频率变化的图形电解电容结论:电解电容可以滤除电源电路中的低频干扰,但不能滤除高频干扰。[11,12]陶瓷电容感性非常小,可以滤除高频干扰。独石电容和薄膜电容现在使用越来越少。电解电容结论:电解电容可以滤除电源电路中的低频干扰,但不能滤贴片陶瓷电容贴片陶瓷电容独石电容独石电容薄膜电容薄膜电容课堂练习请画出陶瓷电容阻抗随频率变化的图形,并与电解电容进行比较。课堂练习请画出陶瓷电容阻抗随频率变化的图形,并与电解电容进行学习板电源电路中的电解电容思考:C1、C2的作用?C1的电容值一般大于C2,防止断电后C1放电过快,稳压芯片电压反转损坏芯片。思考:当外接稳压电源时,C1可以省略吗?学习板电源电路中的电解电容思考:C1、C2的作用?学习板电源电路中的的电容C3、C4用于滤除高频干扰,该电容的正极需尽可能靠近稳压芯片的管脚。一般情况下,高频干扰对IC芯片影响较大,而PCB板的走线很容易受环境影响产生高频干扰信号。解决办法:在每个芯片的输入电源处加一个0.1uF的高频滤波电容,并尽可能靠近芯片的电源正极引脚。学习板电源电路中的的电容C3、C4用于滤除高频干扰,该电容的提问:C6的作用是?提问:C6的作用是?明德厚学沉毅笃行LED电路1明德厚学沉毅笃行LED电思考限流电阻取多大比较合适?思考限流电阻取多大比较合适?LED(Light-EmittingDiode)LED即发光二极管,一般电流达到3mA以上可正常发光特性如图,当电压达到约1.7V时,电压变化很小。LED(Light-EmittingDiode)LED即发限流电阻为使LED正常发光,例题中的限流电阻不能超过1KLED的电流最好不要超过100mA,否则容易被烧坏。限流电阻为使LED正常发光,例题中的限流电阻不能超过1K思考限流电阻取100R可以吗?LED可以反接吗?我们还需要进一步熟悉单片机IO口的内部结构。思考限流电阻取100R可以吗?例题硬件知识学晕了吧?下面讲软件缓解一下。例题:1个LED闪烁(汇编改进版)例题:1个LED闪烁(C语言)例题硬件知识学晕了吧?下面讲软件缓解一下。明德厚学沉毅笃行单片机IO口的内部结构简介2明德厚学沉毅笃行单片机I单片机IO口简介单片机有4个输入输出口(P0、P1、P2、P3),每个口8个引脚,共32个引脚均可接LED电路。单片机IO口简介单片机有4个输入输出口(P0、P1、P2思考AT89S51单片机一共多少个引脚?有多少引脚我们已经学过了?还剩/P/S/E/N引脚和ALE引脚没学过。这两个引脚现在已经很少使用,后面会简单提及这两个引脚的接法。下面对P1口的引脚作部分讲解。思考AT89S51单片机一共多少个引脚?单片机P1.x的内部结构单片机P1.x的内部结构P1.x的内部结构P1.x主要由1个D锁存器,两个三态门,1个上拉电阻(约30K)和1个场效应管组成。可实现的功能:写引脚,读引脚,读锁存器。今天,我们仅研究写引脚。P1.x的内部结构P1.x主要由1个D锁存器,两个三态门,1P1.x的D锁存器D锁存器的工作原理。D:接内部数据总线(共8根)中的1根CL:由“写RAM”控制总线+地址总线共同得到锁存信号。P1.x的D锁存器D锁存器的工作原理。写引脚举例指令:MOV0x90,#0xfeCPU端:1.CPU将#0xfe送内部数据总线3.CPU将#0x90送地址总线4.CPU给“写RAM”控制总线控制信号P1.0引脚:2.D锁存器的D端得到信号“0”5.D锁存器的CL端得到上升沿信号6.D锁存器的/Q端锁存为信号“1”7.场效应管导通,P1.0引脚呈现电压0写引脚举例指令:MOV0x90,#0xfeAT89S51引脚的驱动能力当引脚流过的电流过大时,容易引起单片机工作不稳定,甚至损毁。AT89S51引脚的驱动能力:P0口-P3口的每个引脚:<10mAP1口-P3口的8个引脚合计:<15mAP0口的8个引脚合计:<26mAAT89S51引脚的驱动能力当引脚流过的电流过大时,容易引起STC89C52引脚的驱动能力STC89C52引脚的驱动能力:P0口的每个引脚:<12mAP1口-P3口的每个引脚:<6mA参见[44]P62STC89C52引脚的驱动能力STC89C52引脚的驱动能力回答思考题限流电阻取100R可以吗?答:不可以,超过AT89S51芯片引脚的驱动能力。当该芯片P1口仅接1个LED时,限流电阻一般可取为:330R–1K。LED可以反接吗?答:不可以,由于内部上拉电阻较大,使电流太小,LED不亮。回答思考题限流电阻取100R可以吗?LED电路LED电路思考限流电阻取500R可以吗?答:可以取470R或510R[6],最好不要取500R,500R的电阻不好买,价格较高思考限流电阻取500R可以吗?第二章课后练习用学习板实现十字路口交通灯系统,其中,绿灯切换为红灯前用黄灯过渡1秒钟(用汇编语言和C语言两种语言编写)。熟悉电解电容的特性和低频滤波功能。熟悉陶瓷电容的特性和高频滤波功能。熟悉电容的相关公式。熟悉IO口的内部结构。第二章课后练习用学习板实现十字路口交通灯系统,其中,绿灯切换明德厚学沉毅笃行第三章

内部RAM存储空间6明德厚学沉毅笃行第三章

第三章内部RAM存储空间内部RAM区通用寄存器区位寻址区堆栈区普通存储区专用寄存器区位寻址区相关指令第三章内部RAM存储空间内部RAM区AT89S51的内部结构图AT89S51的内部结构图内部RAM存储空间内部RAM存储空间内部RAM存储空间内部RAM存储空间分为两部分:内部RAM区专用寄存器区内部RAM区:128B(0x00-0x7f)专用寄存器区:散布着若干个专用寄存器。专用寄存器区的剩余空间未被使用。内部RAM存储空间内部RAM存储空间分为两部分:内部RAM内部RAM又分为:通用寄存器区位寻址区堆栈区普通存储区内部RAM内部RAM又分为:内部RAM内部RAM通用寄存器区R0-R7共4组(0组,1组,2组,3组)地址分别为:0x00-0x07,0x08-0x0f,0x10-0x17,0x18-0x1f上电复位后,默认使用第0组通用寄存器。通用寄存器区R0-R7共4组(0组,1组,2组,3组)例题观察例题(1个LED闪烁汇编改进版)调试过程中通用寄存器区值的变化。例题观察例题(1个LED闪烁汇编改进版)调试过程中通用寄存器MOVP1,#0xfe为便于编写对专用寄存器的读写操作指令,专用寄存器均可用特定的符号代替专用寄存器的地址。在汇编时,自动将符号转换为相应的地址值。观察该指令代码与上次课例题相应的指令代码是否相同。MOVP1,#0xfe为便于编写对专用寄存器的读写操作指MOVR7,#0xff观察该指令代码与上次课例题相应的指令代码是否相同。观察该指令执行后,RAM的变化与上次课例题是否相同。结论:用不同的指令,实现了相同的运行结果。MOVR7,#0xff观察该指令代码与上次课例题相应的指两条指令代码的区别[4]MOVdirect,#data指令代码:75H

操作内容:direct←data

字节数:3

机器周期:2MOVRn,#data指令代码:0x78~0x7F操作内容:Rn←data,n=0~7字节数:2机器周期:1两条指令代码的区别[4]MOVdirect,#data两条指令代码的区别第1条指令可以写整个内部RAM空间第2条指令只能写通用寄存器第2条指令效率更高:占用空间小,执行速度快。一般子程序中的临时变量多使用通用寄存器。两条指令代码的区别第1条指令可以写整个内部RAM空间通用寄存器组在子程序调用时,如果主程序中已经使用了通用寄存器,在子程序中使用同样的通用寄存器后,再返回会引起错误。为什么?怎么解决?子程序调用时,可以改变寄存器的组号。通用寄存器组号的更改通过写专用寄存器PSW(程序状态字)实现。通用寄存器组在子程序调用时,如果主程序中已经使用了通用寄存器PSW(0D0H)P:奇偶校验位(自动变化)CY:进位标志(自动变化);位累加器RS0、RS1:寄存器组选择位PSW(0D0H)P:奇偶校验位(自动变化)课堂练习写出改用第1组通用寄存器的指令。答:MOVPSW,#0X08课堂练习写出改用第1组通用寄存器的指令。课堂练习观察下列指令执行后内部RAM的变化:MOVA,#0X08MOVPSW,ASETBCCLRRS0SETBRS1MOVR2,#0X55课堂练习观察下列指令执行后内部RAM的变化:间接寻址通用寄存器中的R0、R1还支持间接寻址。间接寻址通用寄存器中的R0、R1还支持间接寻址。课堂练习观察下列指令执行后内部RAM的变化:MOVR0,#0x30MOV@R0,#0x55试试看以下指令是否错误?为什么?MOV@R2,#0x55MOV@0x00,#0x55课堂练习观察下列指令执行后内部RAM的变化:课堂练习观察下列指令执行后PSW的值:MOVA,#0X10MOVPSW,A观察下列指令执行后内部RAM的变化:MOVPSW,#0X08MOVR2,#0X55课堂练习观察下列指令执行后PSW的值:提问AT89S51的内部RAM空间是多大?AT89S51的内部RAM是多大?AT89S51的内部RAM分为几个区?通用寄存器共几组?每组几个?哪些通用寄存器可间接寻址?提问AT89S51的内部RAM空间是多大?STC的内部RAMSTC的内部RAM为512B。STC的内部RAM中有128B,读写方式同AT89S51相同。其余字节的读写方式以后介绍。STC的内部RAMSTC的内部RAM为512B。明德厚学沉毅笃行位寻址区1明德厚学沉毅笃行位寻址区位寻址区内部RAM中,0x20-0x2f共16个单元可以进行位操作,且有专门的位地址。专用寄存器区也有11个专用寄存器可以进行位操作,且有专门的位地址。PSW、P0、P1、P2、P3都可位操作。指令系统中与位操作相关的指令有17条。见[20]第三章P68位寻址区内部RAM中,0x20-0x2f共16个单元可以进行内部RAM中位寻址区位地址从0x20.0-0x2f.7共128位,位地址为:0x00-0x7f。内部RAM中位寻址区位地址从0x20.0-0x2f.7共12位寻址区的位地址(部分)位寻址区的位地址(部分)思考:空白处的位地址思考:空白处的位地址思考0x22.4的位地址是?0x2f.0的位地址是?答:0x14,0x78思考0x22.4的位地址是?11个专用寄存器位地址11个专用寄存器位地址明德厚学沉毅笃行位操作的相关指令1明德厚学沉毅笃行位操作的位操作的相关指令位传送指令2条位修改指令6条位逻辑与指令2条位逻辑或指令2条位条件转移指令5条位操作的相关指令位传送指令2条位传送指令MOV C,bitMOV bit,C位传送指令MOV C,bit课堂练习下列关于位操作的指令正确吗?MOV C, 0x20.7MOV 0x90,CMOV C,#0x01MOV C,0x90.0MOV C,0xc0MOV 0x01,0x02答:√√×√××课堂练习下列关于位操作的指令正确吗?课堂练习观察下列指令执行后内部RAM的变化:MOV 0x20,#0x55MOV C,0x01MOV 0x90,CMOV C,0x20.0MOV P1.0,C课堂练习观察下列指令执行后内部RAM的变化:课堂练习写出将0x20.1中的值传送到0x20.0中的指令。答:MOVC,0x20.1MOV0x20.0,C课堂练习写出将0x20.1中的值传送到0x20.0中的指令。位修改指令CLR C CLR bit CPL C CPL bit SETB C SETB bit 位修改指令CLR C 课堂练习观察下列指令执行后内部RAM的变化:MOV 0x20,#0x55CPL0x20SETB CCLR 0x20.6SETB 0x07CLR C课堂练习观察下列指令执行后内部RAM的变化:课堂练习使用位修改指令,改进第1个例题,并在学习板上实现。课堂练习使用位修改指令,改进第1个例题,并在学习板上实现。位逻辑与指令ANL C,bit ANL C,/bit 位逻辑与指令ANL C,bit 课堂练习观察下列指令执行后内部RAM的变化:SETB CANL C,0x00SETB CANL C,/0x00课堂练习观察下列指令执行后内部RAM的变化:位逻辑或指令ORL C,bitORL C,/bit位逻辑或指令ORL C,bit课堂练习观察下列指令执行后内部RAM的变化:ORL C,/0x00CLR CORL C,0x00课堂练习观察下列指令执行后内部RAM的变化:位条件转移指令JC rel;如Cy=1,转移JNC rel;如Cy=0,转移JB bit,rel;如bit=1,转移JNB bit,rel;如bit=0,转移JBC bit,rel;如bit=1,转移,并清0位条件转移指令JC rel;如Cy=1JC rel指令代码:40H操作内容:若(C)≠1,则PC←(PC)+2若(C)=1,则PC←(PC)+2+rel字节数:2JC rel指令代码:40H关于relrel占用1个字节,因此跳转范围受到限制。写汇编程序时,可以用标号代替rel,汇编时,该标号会被计算好的rel值。关于relrel占用1个字节,因此跳转范围受到限制。课堂练习打开案例“JC指令”,先看懂程序,然后输入不同的R0值调试程序,观察运行结果。案例中用到新的指令:“CJNEA,dircet,rel”请参考[4]自学课堂练习打开案例“JC指令”,先看懂程序,然后输入不同的R0例题用AT89S51实现熟悉例题(1个LED闪烁C语言)的反汇编程序例题用AT89S51实现熟悉例题(1个LED闪烁C语言)的反C语言与汇编语言比较C语言优点:可读性好移植性好编写容易汇编语言优点:代码效率高C语言成为主流,但学习汇编语言有利于熟悉微机原理和更好地编写C语言程序C语言与汇编语言比较C语言优点:明德厚学沉毅笃行堆栈区1明德厚学沉毅笃行堆栈区1堆栈区作用:子程序或中断程序调用时保护断点和保护现场堆栈区的地址:0x08-0x7f(默认)堆栈区的大小可通过改变SP的值来实现。SP(0x81):堆栈指针,默认值是0x07堆栈操作遵循的原则是:先进后出。通过课堂练习来熟悉SP和堆栈区的作用。堆栈区作用:子程序或中断程序调用时保护断点和保护现场课堂练习观察“1个LED闪烁(汇编改进版)”例题的RAM变化添加指令“MOVSP,#0X60”后,观察RAM的变化。课堂练习观察“1个LED闪烁(汇编改进版)”例题的RAM变化课堂练习观察“堆栈区”例题的RAM变化例题中涉及新的指令,请参考[4]课堂练习观察“堆栈区”例题的RAM变化子程序(中断程序)调用过程汇编程序:子程序(中断程序)调用时,自动保护断点,人工保护现场;子程序(中断程序)退出时,人工恢复现场,自动恢复断点。C程序:全部自动保护子程序(中断程序)调用过程汇编程序:明德厚学沉毅笃行普通存储区1明德厚学沉毅笃行普通存储普通存储区内部RAM均可作为普通存储区。熟悉普通存储区的相关指令。(direct)普通存储区内部RAM均可作为普通存储区。累加器A累加器A是使用最频繁的寄存器,与A相关的指令最多。熟悉与累加器A相关的指令。累加器A累加器A是使用最频繁的寄存器,与A相关的指令最多。专用寄存器思考:我们已经学过的专用寄存器有哪些?答:P0,P1,P2,P3,PSW,SP,PC,ACC其余专用寄存器我们会陆续学习专用寄存器思考:我们已经学过的专用寄存器有哪些?第三章课后练习熟悉内部RAM存储空间。参考[4-5],理解位操作指令,熟悉其余汇编指令。用学习板实现十字路口交通灯系统,其中,绿灯切换为红灯前用黄灯过渡1秒钟(用C语言编写,并熟悉其反汇编程序)。第三章课后练习熟悉内部RAM存储空间。回答问题电容的滤波原理复位电路原理MOVP1,#0xfe的执行过程子程序调用时,内存变化情况回答问题电容的滤波原理明德厚学沉毅笃行第四章

MCS51指令系统

(基本了解)1明德厚学沉毅笃行第四章第四章MCS51指令系统数据传送类指令(28条)算术运算类指令(24条)逻辑操作类指令(25条)控制转移类指令(17条)位操作类指令(17条)第四章MCS51指令系统数据传送类指令(28条)MCS51指令系统MCS51指令系统共111条指令,按功能分为五类:数据传送类指令(28条)算术运算类指令(24条)逻辑操作类指令(25条)控制转移类指令(17条)位操作类指令(17条)MCS51指令系统MCS51指令系统共111条指令,按功能分明德厚学沉毅笃行数据传送类指令(28条)1明德厚学沉毅笃行数据传送以A为目的操作数的指令MOV A,Rn MOV A,@Ri MOV A,direct MOV A,#data 以A为目的操作数的指令MOV A,Rn A与ACC观察和思考下面指令的区别:MOVACC,#0x33MOVA,#0x33答:2条指令不同,但效果相同。第1条指令等同于:MOV0xE0,#0x33;第2条指令代码效率更高。A与ACC观察和思考下面指令的区别:MOV A,@Ri@为间接寻址标识。内部RAM空间的间接寻址不能寻址专用寄存器区。MOV A,@Ri@为间接寻址标识。STC89C52的内部RAMSTC89C52内部有512B的RAMAT89S52内部有256B的RAMAT89S52内部RAM中低128B的读写方法同AT89S51,高128B的读写方法只能采用间接寻址。STC89C52内部RAM中低256B的读写方法同AT89S52,高256B的读写方法以后介绍。STC89C52的内部RAMSTC89C52内部有512B的AT89S52高128BRAM读写方法汇编:MOV A,@RiMOV@Ri,AC语言:unsignedcharidatatest;AT89S52高128BRAM读写方法汇编:课堂练习观察下列程序的反汇编代码:unsignedchart1; unsignedintdatat2; unsignedintidatat3; t1=0x11; t2=0x2222; t3=0x3333;课堂练习观察下列程序的反汇编代码:以Rn为目的操作数的指令MOVRn,AMOVRn,direct MOVRn,#data 以Rn为目的操作数的指令MOVRn,A课堂练习写出将R2中的内容转到R1中的指令。课堂练习写出将R2中的内容转到R1中的指令。以direct为目的操作数的指令MOVdirect,AMOVdirect,Rn MOVdirect1,direct2 MOVdirect,@Ri MOVdirect,#data 以direct为目的操作数的指令MOVdirect,A以寄存器间接地址为目的操作数的指令MOV @Ri,A MOV @Ri,directMOV @Ri,#data以寄存器间接地址为目的操作数的指令MOV @Ri,A 16位地址传送指令MOV DPTR,#data1616位地址传送指令MOV DPTR,#data16DPTRDPTR是16位的专用寄存器,用于存放16位地址,后面会详细讲。它由2个8位专用寄存器组成:DPL(0x82)DPH(0x83)上述也可写成:MOV DPH,#dataMOV DPL,#dataDPTRDPTR是16位的专用寄存器,用于存放16位地址,堆栈操作指令PUSHdirectPOP direct堆栈操作指令PUSHdirect课堂练习将PSW中的内容读入A,下列指令正确的是:(1)MOVA,PSW(2)MOVA,0D0H(3)MOVR0,#0D0H MOVA,@R0(4)PUSHPSW POPACC答:(1)(2)(4)课堂练习将PSW中的内容读入A,下列指令正确的是:外部RAM传送指令(后面详细讲)MOVXA,@DPTRMOVXA,@RiMOVX@DPTR,AMOVX@Ri,A

外部RAM传送指令(后面详细讲)MOVXA,@DPT查表指令(后面详细讲)MOVCA,@A+PCMOVCA,@A+DPTR查表指令(后面详细讲)MOVCA,@A+PC字节交换指令XCH A,RnXCH A,directXCH A,@RiXCHDA,@Ri;半字节交换字节交换指令XCH A,Rn课堂练习编写程序,测试字节交换指令和半字节交换指令课堂练习编写程序,测试字节交换指令和半字节交换指令明德厚学沉毅笃行算术运算类指令(24条)1明德厚学沉毅笃行算术运算加法指令ADDA,Rn ADDA,direct ADDA,@RiADDA,#dataADDCA,Rn;带进位标志加ADDCA,directADDCA,@RiADDCA,#data加法指令ADDA,Rn 加法指令说明所有加法指令都有A参与,且结果存于A中。加法指令对所有的标志位(Cy、Ac、OV、P)都有影响。加法指令说明所有加法指令都有A参与,且结果存于A中。加法指令对标志位的影响如果有溢出(位7有进位),则Cy=1,否则Cy=0如果有符号数有溢出(位6有进位,位7没有进位,或者位7有进位,位6没有进位),则OV=1,否则OV=0如果位3有进位(已很少使用,可不学),Ac=1,否则Ac=0加法指令对标志位的影响如果有溢出(位7有进位),则Cy=1,课堂练习观察下面指令运行后,RAM的变化:MOVA,#0xffADDA,#0x02结果:PSW=0xc1;A=1观察下面指令运行后,RAM的变化:MOVA,#0x7fADDA,#0x02结果:PSW=0x44;A=0x81课堂练习观察下面指令运行后,RAM的变化:课堂练习观察下面指令运行后,RAM的变化:MOVA,#0xffADDA,#0xff结果:PSW=0xc1;A=0xfe观察下面指令运行后,RAM的变化:MOVA,#0xf0ADDA,#0x81结果:PSW=0x84;A=0x71课堂练习观察下面指令运行后,RAM的变化:课堂练习下列指令执行后,,RAM的变化SETBCMOVA,#0x50ADDA,#0x50ADDCA,#0x50答:A=0xf0课堂练习下列指令执行后,,RAM的变化思考如果1个单元(单字节)用于存放无符号整数(正整数),该单元可存放值的范围是?答:0~255如果2个单元(双字节)用于存放无符号整数(正整数),该单元可存放值的范围是?答:0~65536思考如果1个单元(单字节)用于存放无符号整数(正整数),该单例题双字节无符号加法。例题双字节无符号加法。思考如果用补码表示有符号整数(整数),1个单元(单字节)可存放值的范围是?答:-128~127思考如果用补码表示有符号整数(整数),1个单元(单字节)可补码补码的最高位为符号位,“0”,表示正数,“1”表示负数下面举几个补码的例子,请大家思考补码是如何表示的:0xff代表-10xf0代表-160x80代表-1280x7f代表+127补码补码的最高位为符号位,“0”,表示正数,“1”表示负数思考连续2个单元(双字节)中,如果存放的是有符号整数,值的范围是?答:-32768~32767思考连续2个单元(双字节)中,如果存放的是有符号整数,值的例题双字节有符号加法。例题双字节有符号加法。课堂练习编程实现单字节有符号加法,结果存在两个单元中。课堂练习编程实现单字节有符号加法,结果存在两个单元中。增1指令INCAINCRn INCdirectINC@Ri INCDPTR增1指令INCA课堂练习下面指令执行后,A=?MOVA,#0x33INCA下面指令执行后,A=?CY=?MOVA,#0xffINCA课堂练习下面指令执行后,A=?增1指令增1指令不影响标志位(除P外)。增1指令增1指令不影响标志位(除P外)。十进制调整指令DAA对压缩的BCD码(一个字节存放2位BCD码)的加法结果进行十进制调整。BCD码现在已经很少使用。十进制调整指令DAA例题观察和分析下列指令执行后的结果:MOVR7,#0X50MOVA,#0X50ADDA,R7DAA最后两条指令合在一起相当于压缩BCD码的加法。结果为:A=0;CY=1例题观察和分析下列指令执行后的结果:课堂练习观察和分析下列指令执行后的结果:MOV0x60,#0x2BMOV0x61,#0x61CLRCMOVA,#0x91SUBBA,0x60ADDA,0x61DAA答:A=0x27;CY=1课堂练习观察和分析下列指令执行后的结果:带借位减法指令SUBB A,Rn ;A=A–Rn-CySUBB A,directSUBB A,@RiSUBB A,#data带借位减法指令SUBB A,Rn ;A=A–对标志的影响如果位7需借位则Cy置1,否则Cy清0;如果位6借位而位7不借位,或者位7借位而位6不借位,则溢出标志位OV置“1”,否则OV清“0”。如果位3需借位则Ac置1,否则Ac清0;对标志的影响如果位7需借位则Cy置1,否则Cy清0;课堂练习观察下面指令运行后的结果:MOVA,#0x00SUBBA,#0x01结果:PSW=0xc0;A=0xff观察下面指令运行后,RAM的变化:MOVA,#0x7fSUBBA,#0x80结果:PSW=0x84;A=0xff课堂练习观察下面指令运行后的结果:减1指令DEC ADEC RnDEC directDEC @Ri减1指令DEC A减1指令减1指令不影响标志位(除P外)。减1指令减1指令不影响标志位(除P外)。乘法指令MUL AB积的低字节在累加器A中,高字节在B中。如果积大于255,则OV置1,否则OV清0。Cy标志总是清0。乘法指令MUL AB除法指令DIV AB指令执行后,商(整数)存于A中,余数存于B中,Cy和OV清“0”。如果B的内容为0(即除数为0),指令执行后,A、B中内容不定,OV置1。除法指令DIV AB例题双字节无符号乘法。例题双字节无符号乘法。明德厚学沉毅笃行逻辑操作类指令(25条)1明德厚学沉毅笃行逻辑操作逻辑与指令ANL A,RnANL A,direct ANL A,#dataANL A,@RiANL direct,AANL direct,#data逻辑与指令ANL A,Rn思考下列指令实行后的结果:MOVA,#0x07MOVR7,#0xfdANL A,R7答:A=0x05思考下列指令实行后的结果:逻辑或指令ORL A,RnORL A,direct ORL A,#dataORL A,@RiORL direct,AORL direct,#data逻辑或指令ORL A,Rn思考下列指令实行后的结果:MOVA,#0x07MOVR7,#0xfdORL A,R7答:A=0xff思考下列指令实行后的结果:逻辑异或指令XRL A,RnXRL A,direct XRL A,#dataXRL A,@RiXRL direct,AXRL direct,#data逻辑异或指令XRL A,Rn思考下列指令实行后的结果:MOVA,#0x07MOVR7,#0xfdXRL A,R7答:A=0xfa思考下列指令实行后的结果:其它逻辑操作指令CLR ACPL ARL ARLC ARR ARRC ASWAPA;高半字节与低半字节互换其它逻辑操作指令CLR A思考下列指令实行后的结果:MOV A,#0x57SWAPA答:A=0x75思考下列指令实行后的结果:明德厚学沉毅笃行控制转移类指令(17条)1明德厚学沉毅笃行控制转移直接跳转指令LJMP addr16PC=addr16AJMP addr11PC=PC+2PC0-10=addr11SJMP relPC=PC+2PC=PC+rel直接跳转指令LJMP addr16间接跳转指令JMP@A+DPTRPC=A+DPTR该指令用于实现多分支转移间接跳转指令JMP@A+DPTR条件转移指令JZ rel 若A==0,PC=PC+2+rel若A!=0,PC=PC+2JNZ rel若A!=0,PC=PC+2+rel若A==0,PC=PC+2条件转移指令JZ rel 比较转移指令CJNE A,#data,rel若A==data,PC=PC+3;CY=0若A>data,PC=PC+3+rel;CY=0若A<data,PC=PC+3+rel;CY=1CJNE A,direct,relCJNERn,#data,relCJNE@Ri,#data,rel比较转移指令CJNE A,#data,rel减1条件转移指令DJNE Rn,relRn=Rn–1若Rn!=0,PC=PC+2+rel若Rn==0,PC=PC+2DJNE direct,rel减1条件转移指令DJNE Rn,rel调用子程序指令LCALL addr16PC=PC+3SP=SP+1(SP)=PC7-0SP=SP+1(SP)=PC15-8PC=addr16ACALL addr11调用子程序指令LCALL addr16返回指令RET;子程序返回PC15-8=(SP)SP=SP-1PC7-0=(SP)SP=SP-1RETI;中断程序返回除上述功能外,还清除了中断响应时被置1的内部中断优先级寄存器的中断优先级状态返回指令RET;子程序返回空指令NOPPC=PC+1空指令NOP明德厚学沉毅笃行位操作类指令(17条)1明德厚学沉毅笃行位操作类位操作类指令第三章已作介绍。位操作类指令第三章已作介绍。第四章课后练习熟悉全部111条指令。实现双字节无符号减法。实现双字节有符号减法。实现双字节无符号除法。第四章课后练习熟悉全部111条指令。明德厚学沉毅笃行第五章伪指令1明德厚学沉毅笃行第五章汇编语言程序设计概述程序是指令的有序集合。汇编语言程序:用汇编语言编写的程序。汇编语言的两种基本语句:指令语句伪指令语句汇编语言程序设计概述程序是指令的有序集合。伪指令是控制汇编(翻译)过程的一些控制命令。在汇编时没有机器代码与之对应。伪指令是控制汇编(翻译)过程的一些控制命令。在汇编时没有机器伪指令ORG//汇编起始地址命令END //汇编终止命令EQU //标号赋值命令DB //定义数据字节命令DW //定义数据字命令DS //定义存储区命令BIT //位定义命令伪指令ORG//汇编起始地址命令数码管我们先学习一下七段LED数码管,然后讲关于伪指令的例题。数码管我们先学习一下七段LED数码管,然后讲关于伪指令的例题明德厚学沉毅笃行七段LED数码管1明德厚学沉毅笃行七段LE七段LED数码管七段LED数码管七段LED数码管的内部结构

七段LED数码管的内部结构七段LED数码管七段LED数码管说明上图中,“6”,“9”通常更习惯添上一横。说明上图中,“6”,“9”通常更习惯添上一横。七段LED数码管当采用共阳极七段LED数码管时,显示“0”的代码是:0xc0思考:显示“1”的代码是?思考:显示“2”的代码是?七段LED数码管当采用共阳极七段LED数码管时,显示“0”的例题七段LED数码管+1(C语言)。七段LED数码管+1(汇编)。功能:实现1位七段LED数码管显示值自动加一。硬件图:打开[42]为什么加三极管,下一章详细讲。例题七段LED数码管+1(C语言)。DS定义存储区命令从指定地址开始,保留指定数目的字节单元作为存储区,供程序运行使用。例如: TABEL:DS 10表示从TABEL代表的地址开始,保留10个连续的地址单元。DS定义存储区命令BIT位定义命令例如: LED0 BITP1.0功能是把P1.0的位地址赋给变量LED0。BIT位定义命令例题在最右边的数码管上实现:七段LED数码管+1。在最右边的数码管上实现:光标循环转动。例题在最右边的数码管上实现:七段LED数码管+1。明德厚学沉毅笃行第六章输出口的应用1明德厚学沉毅笃行第六章第六章输出口的应用输出口的内部结构蜂鸣器三极管让蜂鸣器发出声音让蜂鸣器发出音乐多个七段LED数码管组合动态显示技术继电器第六章输出口的应用输出口的内部结构明德厚学沉毅笃行P1口内部结构回顾1明德厚学沉毅笃行P1口内单片机P1.x的内部结构单片机P1.x的内部结构P1.x的内部结构P1.x主要由1个D锁存器,两个三态门,1个上拉电阻(约30K)和1个场效应管组成。可实现的功能:写引脚,读引脚,读锁存器。P1.x的内部结构P1.x主要由1个D锁存器,两个三态门,1P1.x的D锁存器D锁存器的工作原理。D:接内部数据总线(共8根)中的1根CL:由“写RAM”控制总线+地址总线共同得到锁存信号。P1.x的D锁存器D锁存器的工作原理。写引脚举例指令:MOV0x90,#0xfeCPU端:CPU将#0xfe送内部数据总线CPU将#0x90送地址总线CPU给“写RAM”控制总线控制信号P1.0引脚:D锁存器的D端得到信号“0”D锁存器的CL端得到上升沿信号D锁存器的/Q端锁存为信号“1”场效应管导通,P1.0引脚呈现电压0写引脚举例指令:MOV0x90,#0xfeAT89S51引脚的驱动能力当引脚流过的电流过大时,容易引起单片机工作不稳定,甚至损毁。AT89S51引脚的驱动能力:P0口-P3口的每个引脚:<10mAP1口-P3口的8个引脚合计:<15mAP0口的8个引脚合计:<26mAAT89S51引脚的驱动能力当引脚流过的电流过大时,容易引起STC89C52引脚的驱动能力STC89C52引脚的驱动能力:P0口的每个引脚:<12mAP1口-P3口的每个引脚:<6mA参见[44]P62STC89C52引脚的驱动能力STC89C52引脚的驱动能力明德厚学沉毅笃行其它输出口的内部结构2明德厚学沉毅笃行其它输出其它输出口的内部结构当作为输出口使用时,P2口、P3口的内部结构同P1口完全相同。P0口当作为输出口使用时,同P1口的区别只是:没有上拉电阻。其它输出口的内部结构当作为输出口使用时,P2口、P3口的内部单片机P0.x口的内部结构单片机P0.x口的内部结构明德厚学沉毅笃行蜂鸣器1明德厚学沉毅笃行蜂鸣器1蜂鸣器蜂鸣器分为有源蜂鸣器和无源蜂鸣器。这里的“源”是指震荡源。有源的一通电就会叫;无源的必须用频率为1K~5K的信号才能鸣叫。蜂鸣器的内阻约为几十R,驱动电压一般1.5V-15V都可以。蜂鸣器蜂鸣器分为有源蜂鸣器和无源蜂鸣器。这里的“源”是指震有源蜂鸣器有源蜂鸣器无源蜂鸣器无源蜂鸣器学习板上的蜂鸣器学习板上是无源蜂鸣器用万用表测量学习板上无源蜂鸣器的电阻。学习板上的蜂鸣器学习板上是无源蜂鸣器思考如果给无源蜂鸣器引脚接5V电源,蜂鸣器流过的电流为多大?可以用单片机引脚直接驱动吗?回答:不可以,电流太大。一般采用三极管驱动蜂鸣器。打开参考资料[42],看看学习板上蜂鸣器的电路图。思考如果给无源蜂鸣器引脚接5V电源,蜂鸣器流过的电流为多大?明德厚学沉毅笃行三极管1明德厚学沉毅笃行三极管1三极管的管脚三极管的管脚三极管的特性曲线放大区饱和区截止区0uA100uA80uA60uA40uA20uAICBOvCEiC64224681012VCE=VBE0三极管的特性曲线放大区饱和区截止区0uA100uA80uA6三极管的特性3个区域:截止区、放大区、饱和区截止区(VBE<0.7V):关断状态(IC=0)放大区:电流被控状态(IC=βIB)饱和区:导通状态举例:三极管开关电路(发射极接1K电阻,基极接100K电阻;将100K电阻降为1K)三极管的特性3个区域:截止区、放大区、饱和区思考学习板蜂鸣器电路中三极管IB约为多大?学习板蜂鸣器电路中三极管ICE约为多大?三极管允许的最大ICE是多少?参考[13]思考学习板蜂鸣器电路中三极管IB约为多大?对[13]的补充5551NPN160V600mA625mW300MHz放大倍数30-2505401PNP150V600mA625mW300MHz放大倍数50-240对[13]的补充5551NPN160V600mA62明德厚学沉毅笃行让蜂鸣器发出声音1明德厚学沉毅笃行让蜂鸣器例题利用学习板实现:无源蜂鸣器发出声音。例题利用学习板实现:无源蜂鸣器发出声音。声音[1]P240音频的范围:20HZ~200kHZ人耳辨认的声音:<20kHZ声音[1]P240音频的范围:20HZ~200kHZ明德厚学沉毅笃行课本中的蜂鸣器驱动电路1明德厚学沉毅笃行课本中的驱动电路1[1]P39驱动电路1[1]P39说明同学习板不同的是增加了泄放电阻。泄放电阻的作用:快速释放BE间储存的少数载流子,使三极管快速关断。课后练习(选做):熟悉三极管的结构和原理,理解泄放电阻的作用。思考:上图基极电流是多大?答:约1mA(4.3/3.3k-0.7/3.3k)说明同学习板不同的是增加了泄放电阻。驱动电路2[1]P39驱动电路2[1]P39说明思考:左图电阻上的电流是多大?答:(5v-0.7v-0.7v)/31k思考:左图用1个三极管可以吗?答:不可以,驱动能力不够达林顿管:2个9013组合左图不能用于P0口,为什么?右图可以用于P0口。说明思考:左图电阻上的电流是多大?达林顿管达林顿管ULN2003芯片[14-15]如果电路中使用的达林顿管较多,可以选用ULN2003芯片该芯片集成了7个达林顿管淘宝价格约0.7元COM端内部带有保护二极管,该引脚可接VCC,用于关断的瞬间,泄放感性负载储存的能量。ULN2003芯片[14-15]如果电路中使用的达林顿管较多ULN2003ULN2003明德厚学沉毅笃行让蜂鸣器发出音乐1明德厚学沉毅笃行让蜂鸣器例题利用学习板实现:无源蜂鸣器发出简单的音乐。例题利用学习板实现:无源蜂鸣器发出简单的音乐。音调[1]P241

温馨提示

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

评论

0/150

提交评论