1、智能小车的设计与研究 主讲人:杨威,学习资料介绍,http:/ (52为8K) 128bytes的数据存储器(RAM) (52有256bytes的RAM) 32条I/O口线111条指令,大部分为单字节指令 21个专用寄存器 2个可编程定时/计数器5个中断源,2个优先级(52有6个) 一个全双工串行通信口 外部数据存储器寻址空间为64kB 外部程序存储器寻址空间为64kB 逻辑操作位寻址功能双列直插40PinDIP封装 单一+5V电源供电 CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;,51单片机简介,RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显
2、示的数据; ROM:用以存放程序、一些原始数据和表格; I/O口:四个8位并行I/O口,既可用作输入,也可用作输出 T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式; 五个中断源的中断控制系统; 一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信; 片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M12M。,模拟信号和数字信号,模拟量-模拟电子技术:专门研究模拟信号的处理。模拟量的特点:连续性。自然界中的温度、声音、电压都是模拟量, 收音机就是典型的采用模拟电子技术的产品,其内部电路是模拟电路。 数字
3、量-数字电子技术:专门研究数字信号的处理。数字量的特点:离散性。芯片的个数,产品的个数、人数、齿轮的齿数都是数字量, 计数器就是典型的采用数字电子技术的产品,其内部电路是数字电路,单片机是典型的数字电路, 数字电路只能处理数字量,不能直接处理模拟量,模拟量转换成数字量后(用专业的术语讲是离散化以后),才可以被数字电路处理。,模拟信号和数字信号,模拟信号是表示模拟量的信号,模拟量是在时间和数值上都是连续的的物理量。模拟信号包括正弦波信号和脉冲信号,脉冲信号如方波、矩形波、尖脉冲锯齿波、梯形波等。,模拟信号和数字信号,几种模拟信号图形,模拟信号和数字信号,几种数字信号图形,数字信号是表示数字量的信
4、号,数字量实在时间和数值上都是离散的。实现数字信号的产生、传输和处理的电路称为数字电路。数字信号包括脉冲型(归0型)和电平型(不归0型)。,模拟信号和数字信号,数字电路中只有两种电平:高和低 (本课程中)定义单片机为TTL电平: 高 +5V 低 0V 例如:单片机输出1,其实就是某个管脚输出高电平。我们给某个管脚输入高电平,就是向单片机输入了 1,三极管的分类,三极管的分类,一、按材质分三极管种类有:硅管、锗管二、按结构分三极管的种类有:NPN PNP. 三、按三极管消耗功率的不同三极管的种类有小功率管、中功率管和大功率管等 四、按功能分三极管种类有开关管、功率管、达林顿管、光敏管等,三极管的
5、分类,三极管的作用,三极管的作用:放大作用和开关作用,三极管的工作特性,三极管的工作特性,三极管的开关作用,三极管开关是利用三极管在截止区(断开)和饱和区(闭合) 特性的电子开关,三极管的开关作用,功能:1、电机是单向还是双向转动?2、需不需要调速?对于单向的电机驱动,只要用一个大功率三极管或场效应管或继电器直接带动电机即可,当电机需要双向转动时,可以使用由4个功率元件组成的H桥电路或者使用一个双刀双掷的继电器。如果不需要调速,只要使用继电器即可;但如果需要调速,可以使用三极管,场效应管等开关元件实现PWM(脉冲宽度调制)调速。,电机驱动设计,电机驱动电路性能指标,性能:对于PWM调速的电机驱
6、动电路,主要有以下性能指标。1)输出电流和电压范围,它决定着电路能驱动多大功率的电机。2)效率,高的效率不仅意味着节省电源,也会减少驱动电路的发热。要提高电路的效率,可以从保证功率器件的开关工作状态和防止共态导通(H桥或推挽电路可能出现的一个问题,即两个功率器件同时导通使电源短路)入手。3)对控制输入端的影响。功率电路对其输入端应有良好的信号隔离,防止有高电压大电流进入主控电路,这可以用高的输入阻抗或者光电耦合器实现隔离。4)对电源的影响。共态导通可以引起电源电压的瞬间下降造成高频电源污染;大的电流可能导致地线电位浮动。5)可靠性。电机驱动电路应该尽可能做到,无论加上何种控制信号,何种无源负载
7、,电路都是安全的。,接地方式,有三种基本的信号接地方式:浮地、单点接地、多点接地。 (1)浮地 目的:使电路或设备与公共地线可能引起环流的公共导线隔离起来,浮地还使不同电位的电路之间配合变得容易。 缺点:容易出现静电积累引起强烈的静电放电。 折衷方案:接入泄放电阻。 (2) 单点接地 方式:线路中只有一个物理点被定义为接地参考点,凡需要接地均接于此。 缺点:不适宜用于高频场合。 (3)多点接地 方式:凡需要接地的点都直接连到距它最近的接地平面上,以便使接地线长度为最短。 缺点:维护较麻烦。 (4) 混合接地 按需要选用单点及多点接地。PCB中的大面积敷铜接地 其实就是多点接地 所以单面Pcb也
8、可以实现多点接地(实际操作中经常用这种方法,在这里也应该注意有时候不可以不布地线,尤其是高速高频的,以及多层板的情况)。 多层PCB大多为高速电路地层的增加可以有效提高PCB的电磁兼容性是提高信号抗干扰的基本手段。,电路接地设计,单点接地单点接地有两种类型,一种是串联单点接地,另一种是并联单点接地。串联单点接地中,许多电路之间有公共阻抗,因此相互之间由公共阻抗耦合产生的干扰十分严重。 串联单点接地的干扰: A点的电位是:VA = ( I1 + I2 + I3 ) R1 B点的电位是:VB = ( I1 + I2 + I3 ) R1 + ( I2 + I3 ) R2 C点的电位是: VC = (
9、 I1 + I2 + I3 ) R1 + ( I2 + I3 ) R2 + I3 R3 从公式中可以看出,A、B、C各点的电位是受电路工作电流影响的,随各电路的地线电流而变化。尤其是C点的电位,十分不稳定。,电路接地设计,这种接地方式虽然有很大的问题,却是实际中最常见的,因为它十分简单。但在大功率和小功率电路混合的系统中,切忌使用,因为大功率电路中的地线电流会影响小功率电路的正常工作。另外,最敏感的电路要放在A点,这点电位是最稳定的。另外,从前面讨论的放大器情况知道,功率输出级要放在A点,前置放大器放在B、C点。当驱动板与单片机共用一组电源时,单点接地电阻可以防止大电流沿着连线流入单片机主板的
10、地线造成干扰。,电路接地设计,电路接地设计,将电路按照特性分组,相互之间不易发生干扰的电路放在同一组,相互之间容易发生干扰的电路放在不同的组。每个组内采用串联单点接地,获得最简单的地线结构,不同组的接地采用并联单点接地,避免相互之间干扰。这个方法的关键:绝不要使功率相差很大的电路或噪声电平 相差很大的电路共用一段地线。,这些不同的地仅能在通过一点连接起来。,H桥的理解,很多器件对电源极性要求不高,如发热桥丝,正反接都可以工作,而且现象都差不多,也有的器件对电源极性敏感,而且接反了就不工作,例如多数半导体器件,LED等;但也有的器件对电源极性敏感,但正反接都可以工作,区别是正反接出来的现象不同,
11、如普通直流电磁电机,因为电流方向不同,线圈产生的磁极方向会不同,从而旋转方向不同。这样的特性使得电动车,遥控玩具车可以实现前进,倒退。,H桥的理解,H桥(H-Bridge),即全桥(因外形与H相似故得名),常用于逆变器(DC-AC转换,即直流变交流)。通过开关的开合,将直流电(来自电池等)逆变为某个频率或可变频率的交流电,用于驱动交流电机(异步电机等)。,H桥的理解,双刀双掷开关,H桥的理解,单刀双掷开关,H桥的理解,单刀单掷开关代替单刀双掷开关,存在的设计缺陷?,H桥的理解,单刀双掷开关换成三极管,H桥的组成形式,两种类型三极管组成的H桥结构,H桥的组成形式,一种类型三极管组成的H桥结构,H
12、桥的理解,H桥的理解,加入二极管的作用是什么?,H桥的理解,L298N电机驱动芯片内部的结构,PWM(脉宽调制)的理解,Pulse Width Modulation,PWM就是脉冲宽度调制,也就是占空比可变的脉冲波形.,PWM控制技术就是以该结论为理论基础,对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所需要的波形。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。,令频率不变,直接改变脉冲的宽度,亦即控制开关元件的导通时间;比如现在是高电平导通,那么方波的高电平越大,低调平越小,导通时间就长
13、;否则就越短。,PWM(脉宽调制)的理解,PWM(脉宽调制)的理解,Pulse Width Modulation,PWM的产生方法,用微处理机来实现脉宽调制,通常的方法有两种:(1)用软件方式来实现,即通过执行软件延时循环程序交替改变端 口某个二进制位输出逻辑状态来产生脉宽调制信号, 设置不同的延时 时间得到不同的占空比。(2)硬件实验自动产生 PWM 信号,不占用 CPU 处理的时间。 这就要用到 STC89C52 的在 PWM 模式下的计数器 1, 具体内容可参考 相关书籍。,PWM的占空比改变方法,如果你就要用 51 单片机的话,也是可以的,但是比较的麻烦. 可以用定时器 T0 来控制频
14、率, 定时器 T1 来控制占空比: 大致的的编程思路是这样的: T0 定时器中断是让一个 I0 口输出高电平, 在这个定时器 T0 的中断当中起动定时器T1,而这个 T1 是让 IO 口输出低电平,这样改变定时器 T0 的初值就可以改变频率,改变定时器 T1 的初值就可以改变占空比。,保护电路分析,保护电路分析,因为虚断,运放同向端没有电流流过,则流过R1和R2的电流相等,同理流过R4和R3的电流也相等。故 (V1 V+)/R1 = (V+ - V2)/R2 a(Vout V-)/R3 =V-/R4 b由虚短知: V+ = V- c 如果R1=R2,R3=R4,则由以上式子可以推导出 V+ =
15、 (V1 + V2)/2 V- = Vout/2 故 Vout = V1 +V2 也是一个加法器。,保护电路分析,循迹小车,什么是循迹小车使用一定的循迹方法,使得小车自动循着赛道运行的技术,就是循迹技术,这样的循迹小车又称为简单的循迹机器人。,循迹方法,各种循迹方法介绍 小车比赛赛道 底色一般是白色 赛道一般为单条或双条黑线,具有直道、普通弯道、交叉、 180度转弯、连续波浪弯道等 自己制作跑道:用黑胶布作为赛道,用白色KT板作为底板,如果没有KT板,也可以用大的白纸或者直接在浅色地砖上铺设赛道,简单的循迹赛道,循迹方法,各种循迹方法介绍红外对管循迹法:利用黑、白色对红外线的吸收 作用不同;
16、摄像头循迹法:利用摄像头读取赛道信息,分为 模拟和数字,购买套餐后送了大量的摄像头循 迹资料,在这里不作为本讲主要内容; 激光管循迹法:和红外循迹法原理相似,但是检 测距离远; 飞思卡尔智能车比赛还使用电磁循迹法。,光电传感器循迹,红外反射式光电传感器,光电二极管传感器电路,红外循迹原理 基本硬件 红外发射管和接收管:分离式和一体式 变送电路:模拟量;数字量:将模拟量经过比较器输出开关量电阻测量法 用万用表1k挡。光电二极管正向电阻约10M左右。在无光照情况下,反向电阻为时,这管子是好的(反向电阻不是时说明漏电流大);有光照时,反向电阻随光照强度增加而减小,阻值可达到几k或1k以下,则管子是好
17、的;若反向电阻都是或为零,则管子是坏的。,光电传感器电路,白色的底,光电传感器电路,黑色的底,光电传感器电路,光电传感器电路,比较器最简单的应用就是检测一个信号是否超过0,下图所示,其反相输入端(一)接地作为参考电压端(参考电压为0),输入信号Vin从同相输入端(+)进入比较器。,光电传感器电路,比较器,光电传感器电路,对于集电极开路的结构输出的比较器集成电路来说, 输出端的上拉电阻R是不能省去的。用Multisim进行电路仿真,循迹原理过程,2路循迹原理 黑线(黑色赛道)会根据小车的运行情况,被某一探头所检测到,则2个探头分为2种情况对小车进行转向控制; 若没有被任何一个探头检测到,则继续直
18、行; 上述算法描述是最简单的循迹算法,如果有一定的速度需求,则在以上算法上进行改进。,循迹原理过程,循迹原理过程,循迹原理过程,循迹算法的实现与运行 利用C语言实现以上思路,请看演示视频,51单片机的软件开发部分,下载调试软件,编译开发软件,Keil软件新建工程的步骤,keil有两个版本,一个是keilC51,主要是针对51单片机等CPU的编译软件,另一个是MDK,主要是针对ARM等CPU的编译软件。本系列是涉及到51单片机,因此本节介绍keilC51新建工程。,Keil软件新建工程的步骤,1、选择工程选项,新建工程,Keil软件新建工程的步骤,2、选择工程保存的途径,填写工程的文件名,Kei
19、l软件新建工程的步骤,3、选择CPU的型号。目前市场上51单片机很多类型,但这个不会影响CPU型号的选择,随便选择51型号的CPU即可,如图:,Keil软件新建工程的步骤,4、选择好cpu型号,keil会提示是否自动添加自带的文件,选择“是”,4、选择好cpu型号,keil会提示是否自动添加自带的文件,选择“是”,Keil软件新建工程的步骤,5、新建完工程的开发环境,接下来是新建文件,新建的文件会涉及到.c .h .asm等格式的代码文件。,Keil软件新建工程的步骤,6、新建文件必须先保存文件,并且需要手动添加文件的后缀。,Keil软件新建工程的步骤,7、保存完文件,然后将文件添加到工程里面
20、,右击工程组文件夹,选择添加文件到组。,Keil软件新建工程的步骤,单片机C语言的基本语句 与标准C语言基本相同: if 选择语句 while 循环语句 do-while 循环语 for 循环语句 switch/case 多分支选择语句,51单片机的C语言基础,if选择语句if语句是指编程语言(包括c语言, C#, VB,汇编语言等)中用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。 形式: if(表达式)语句,51单片机的C语言基础,51单片机的C语言基础,while循环语句 循环语句,计算机的一种基本循环模式。 当满足条件时进入循环,不满足跳出。 whil
21、e语句的一般表达式为: while(表达式) 循环体 ,51单片机的C语言基础,do-while循环语句 do.while do 需执行的代码 while (变量 = 结束值) do 需执行的代码 while (变量 = 结束值) 注意: do.while 循环是 while 循环的变种。 该循环程序在初次运行时会首先执行一遍 其中的代码,然后当指定的条件为 true 时, 它会继续这个循环。所以可以这么说, do.while 循环为执行至少一遍其中的代码, 即使条件为 false,因为其中的代码执行后 才会进行条件验证,51单片机的C语言基础,for循环语句 在不少实际问题中有许多具有规律性
22、的重 复操作,因此在程序中就需要重复执行某 些语句。一组被重复执行的语句称之为循 环体,能否继续重复,决定循环的终止条 件。循环结构是再一定条件下反复执行某 段程序的流程结构,被反复执行的程序被 称为循环体。 1 循环语句是由循环体及循 环的终止条件两部分组成的。,51单片机的C语言基础,循环语句总结 总结以上三种循环语句, for语句的功能最强,它有多种特殊形式。该语句小括号内的表达式,可任意变动,可以省略,也可以增加。例如,在小括号内的分号间增加几个表达式如for(m=0,h=1;n100;n+),或 for (h=0,j-50;h=j;h+,j-)等等。可以将循环体的一些语句放在表达式3
23、的位置,中间用逗号分隔。如: for (i=1,j=strlen (me); i三种循环语句,均可嵌套使用,也就是在一个循环内又包含另一个循环结构。也可互相嵌套使用,可有多曾嵌套结构。,51单片机的C语言基础,C语言的第一个函数 Main 函数 格式: void main() 特点:无返回值,无参。 任何一个C程序有且仅有一个main函数, 它是整个程序开始执行的入口。 例: void main() 总程序从这里开始执行; 其他语句; ,51单片机的C语言基础,循环语句总结 总结以上三种循环语句, for语句的功能最强,它有多种特殊形式。该语句小括号内的表达式,可任意变动,可以省略,也可以增加
24、。例如,在小括号内的分号间增加几个表达式如for(m=0,h=1;n100;n+),或 for (h=0,j-50;h=j;h+,j-)等等。可以将循环体的一些语句放在表达式3的位置,中间用逗号分隔。如: for (i=1,j=strlen (me); i三种循环语句,均可嵌套使用,也就是在一个循环内又包含另一个循环结构。也可互相嵌套使用,可有多曾嵌套结构。,51单片机的C语言基础,常量、变量和赋值符 什么是常量、变量? a=10; a=255; a=a+1; 1、变量就是RAM中的某个存储单元,可以比做 旅馆的某个房间,变量名就是房间的名称,变量 的值就是放入该房间中的数据。 2、房间的类型
25、,我们称为存储类型。里面住的 客人的类型就是数据类型。 3、 =不是等号,是赋值符。,51单片机扩充数据类型,sfr: 特殊功能寄存器声明 sfr16:sfr的16位数据声明 sbit: 特殊功能位声明 bit: 位变量声明 例: sfr SCON = 0X98; sfr16 T2 = 0xCC; sbit OV = PSW2;,单片机C语言的扩充数据类型,基本位操作,#define BitGet(Number,pos) (Number)|= 1 (pos)&1) /用宏得到某数的某位 #define BitGet(Number,pos) (Number) = 1(pos) /把Number的
26、POS位取反,单片机I/O口的使用,对单片机的控制,其实就是对I/O口的控制,无论单片机对外界进行何种控制,或接受外部的何种控制,都是通过I/O口进行的。51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用,其中P0和P2通常用于对外部存储器的访问。,当P0作为I/O口使用时,特别是作为输出时,输出级属于开漏电路,必须外接上拉电阻才会有高电平输出;如果作为输入,必须先向相应的锁存器写“1”,才不会影响输入电平。,单片机的包含的头文件, 通常有:reg51.h reg52.h math.h ctype.h s
27、tdio.h stdlib.h absacc.h 常用有:reg51.h reg52.h (定义特殊功能寄存器和位寄存器) math.h (定义常用数学运算),51单片机的机器周期是12个时钟周期(12T),12M晶振就是一个时钟周期是1/12M秒,即机器周期是1/1M秒,1us,那一个for循环延时时间就等于执行指令数乘以机器周期。通过软件来看延时时间,可以大概的获取延时函数的数值,单片机如何实现延时,单片机的延时实现方法,定时器介绍(数据手册47页),8051定时器/计数器介绍: 8051有两个定时器/计数器,定时器0和定时器1。而8052则有三个定时器/计数器。定时器、计数器本质都是一样
28、的,定时器通过对内部脉冲进行计数来达到计时的目的,而计数器是对外部输入脉冲进行计数,所以它们的本质都是一样的。2个定时/计数器有4种操作模式,通过TMOD的M1和M2选择。2个定时/计数器的模式0、1、2都相同,模式3不同。,定时器/计数器的工作模式: 定时器/计数器0有四种工作模式,而定时器/计数器1只有三种工作模式,工作模式由TMOD寄存器的M1和M0位控制。(不可位寻址),定时器介绍,CT功能选择位。 C/T1时,选择计数功能;C/T0时,选择定时功能。 T0、T1 的计数、定时功能是通过TMOD中的位来选择的。 定时器,设置C/T0计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值增
29、1。每个机器周期等于12个振荡周期,故计数速率为振荡周期的112。当采用12MHz的晶体时,计数速率为1MHz。定时器的定时时间,与系统的振荡频率fosc、计数器的长度和初始值等有关。 计数器,设置C/T1这时,通过引脚T0(P3.4)和T1(P3.5)对外部信号进行计数。在每个机器周期的S5P2期间,CPU采样引脚的输入电平。若前一机器周期采样值为1,下一机器周期采样值为0,则计数器增1,此后的机器周期S3P1期间,新的计数值装入计数器。,定时器介绍,定时器介绍,T0、T1 的控制寄存器TCON(可以位寻址)控制寄存器TCON是一个逐位定义的8位寄存器,字节地址为88H,位寻址的地址为88H
30、8FH。其格式如下:,定时器介绍,TCON各位的意义如下:TFx(TCON7,5)定时器计数器Tx的溢出标志。Tx溢出时,该位由内部硬件置位。若中断开放,即响应中断,进入中断服务程序后,由硬件自动清0;若中断禁止,可用于判跳,用软件清0。 TRx(TCON6,4)Tx的运行控制位。用软件控制,置1时,启动 Tx;清0时,停止 Tx。IE1(TCON3)外部中断1触发标志位。IE0(TCONI)外部中断0触发标志位。IT1(TCON2)外部中断1触发类型选择位。IT0(TCON0)外部中断0触发类型选择位。TCON的低4位与中断有关,已在第五章“中断系统”中讨论过。复位后,TCON的所有位均清0
31、。T0和T1均是关断的。,THx、TLx初值计算: 假设8051外接12MHz的晶振,由于8051的机器周期是时钟周期的12分频,所以8051的机器周期为1MHz,那么计数一次的时间刚好为1us,如果定时器工作在模式0下,那么可以最长计时为8192us,工作模式1可以最长计时为65536us。那么假设8051工作在模式1下,定时1ms,那么THx、TLx的初值应该为多少呢?如果定时1ms,也就意味着需要计数1000次,那么初值就应该为65536-1000=64536,也就是THx=0xFC,TLx=0x18。 根据上面可以总结出如下公式: 定时时间=(最大计数值-计数器初值)*机器周期=(最大
32、计数值-计数器初值)*(12000000/晶振频率(Hz)(us); 计数器初值=(最大计数值-定时时间*(晶振频率(Hz)/12000000); 套用这个公式,初值=(65536-1000*(12000000/12000000)=64536=0xFC18,那么TH就应该为0xFC,TL为0x18。,定时器介绍,定时器介绍,4.根据单片机晶振,所选TMOD的的工作方式,所要定的时间,来确定THO和TLO所要赋予的初值(以12M晶振,工作方式1,16位计数器为例,设所定时间为Xus(16为计数器最大数65536,即65536us,若所定时间大于65535,则要用if语句控制,现假设X65535)
33、1.时钟周期的时间t=1/12M=1/12 us2.机器周期的时间T=12*1/12=1 us3.因为每经过一个机器周期计数器+1,所以,计数器+1,经过的时间为 1 us。若所定时间为X,则要求经过Xus,中断响应,又因为16为计数器要全部置1(即达到65535)+1后,中断才会响应,所以,初值=(65536-X),4.将初值转化为16进制码,分别付给THO和TLOeg:所定时间5ms初值=(65536-5000)=60536=EC78TH0=0XEC; TL0=0X78;(当工作方式不同时,TH0/TL0的赋值也不同,个人觉得有了16位计数器了,其余的没什么用,不介绍了)5.写程序时另一种
34、THO/TLO赋值方法TH0=(65536-20000)/256; (简便的写法) TL0=(65536-20000)%256;这样设置,每经过20ms,发生一次中断,中断时间一般以秒为单位,所以经过n次中断即可。,定时器介绍,中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断,中断介绍,中断介绍,中断寄存器单片机有10个寄存器主要与中断程序的书写控制有关1.中断允许控制寄存器IE2.定时器
35、控制寄存器TCON3.串口控制寄存器SCON4.中断优先控制寄存器IP5.定时器工作方式控制寄存器TMOD6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1),中断介绍,寄存器功能与赋值说明注:在用到中断时,必须要开总中断EA,即EA=1。 /开总中断1.中断允许控制寄存器IEEX0(EX1):外部中断允许控制位EX0=1 外部中断0开关闭合 /开外部0中断 EX0=0 外部中断0开关断开ET0(ET1):定时中断允许控制位ET0=1 定时器中断0开关闭合 /开内部中断0ET0=0 定时器中断0开关断开 ES: 串口中断允许控制位 ES=1 串口中断开关闭合 /开串口中断ES=0 串口中
36、断开关断开,中断介绍,2.定时器控制寄存器 TCON /控制外部中断和定时器中断外部中断:IE0(IE1):外部中断请求标志位当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入中断程序后由单片机自动置0./外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。IT0(IT1):外部中断触发方式控制位 /选择有效信号IT0(IT1)=1:脉冲触发方式,下降沿有效。IT0(IT1)=0:电平触发方式,低电平有效。,中断介绍,内部中断:TF0(TF1):内部定时器/计数器溢出中断标志位当定时器、计数器计数溢出的时候,此位由单片机自动置
37、1,cup开始响应,处理中断,而当进入中断程序后由单片机自动置0./内部中断实际上就是利用内部的计数器,只不过提供计数的脉冲来自单片机自身。TRO(TR1):定时器/计数器启动位 /启动定时器TRO(TR1)=1; 启动定时器/计数器0TR0(TR1)=0; 关闭定时器/计数器0,中断介绍,串口控制寄存器SCONTI:串行口发送中断标志位当单片机串口发送完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,必须由用户在中断服务中用软件清0.RI:串行口接收中断标志位当单片机串口接收完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的,必须由用户在中断服务软件中用软件清0.,中断介绍,#include void InitTimer0(void) TMOD = 0x01;TH0 = 0x0FF;TL0 = 0x9C;EA = 1;ET0 = 1;TR0 = 1; ,例程介绍,void main(void) InitTimer0(); void Timer0Interrupt(void) interrupt 1 TH0 = 0x0FF;TL0 = 0x9C;/add your code here! ,例程介绍,循迹小车例程讲解,