《单片机培训》PPT课件.ppt

上传人:牧羊曲112 文档编号:5475490 上传时间:2023-07-11 格式:PPT 页数:43 大小:2.07MB
返回 下载 相关 举报
《单片机培训》PPT课件.ppt_第1页
第1页 / 共43页
《单片机培训》PPT课件.ppt_第2页
第2页 / 共43页
《单片机培训》PPT课件.ppt_第3页
第3页 / 共43页
《单片机培训》PPT课件.ppt_第4页
第4页 / 共43页
《单片机培训》PPT课件.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《《单片机培训》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单片机培训》PPT课件.ppt(43页珍藏版)》请在三一办公上搜索。

1、,-单片机,首届机器人大赛培训资料,一、单片机概述 针对比赛项目的具体功能,对所用单片机模块进行介绍。前期知识准备引脚图说明,重要!,单片机工作在稳定的5V下,引脚数字信号输出的驱动能力强,拉出(流出)和灌入(注入)电流均达到了25mA,一般引脚都有第一、第二功能,所以使用的时要进行功能的选择,一般第一项为默认功能。如:17脚默认为I/O口功能RC2。还有闲置的输入I/O口不要悬空,要么接地要么接电源。为什么不要悬空,悬空会造成额外的电流损失,还有引脚输入阻抗(电阻对直流的阻碍,电容、电感对交流电的阻碍作用)大,引脚上易积累电荷,产生较大的感应电动势,使引脚处于(01)的过渡间,造成单片机门限

2、判别电路对信号的判断模糊现象。另外引脚作为驱动输出时,接适当的限流电阻(芯片内部电路所致)。,单片机对输入引脚高低电平的门限判别(TTL)单片机采用二值数字逻辑(以二元集合O,1为变化元的逻辑系统,即只有逻辑0和1,也就是我们平时说的高低电平)。对于TTL电平,我们通俗地说,在4.5-5V之间为逻辑1,高电平:在0V左右为逻辑0,低电平。扩展:TTL输出高电压2.4V,输出低电压0.4V。在室温下,一般输出高电压是3.5V,输出低电压是0.2V。输入高电压=1.2V,输入低电压=0.4V,噪声容限(门电路抗干扰能力)是0.4V。,3、信号(用大小和逻辑来标识,这次我们接触到的)a、模拟信号 可

3、用连续的、不间断的、平滑曲线表示,如图(1),4、数据表示方式程序中数据的表示有二进制0bxxxxxxxx,如:0b10100010;十进制如125,数字前没有前缀;八进制以0开头,如012;十六进制以0 x开头或以H结尾,如0 x0a2或67H。,第1位是字母时,字母前面加0,4、单片机模块和寄存器的关系单片机的模块都有不同的功能,要实现各自的功能,就需要进行一些相应的设置,在这里就设置相应的寄存器,如要实现RD口的输出高电平功能,设置TRISD=0X00;PORTD=0X0FF;可见,从程序的角度看,单片机的引脚端口或功能模块就是一堆寄存器组成。对它们的使用就是对寄存器的操作。,5、系统初

4、始化,为何要进行系统初始化?有两方面原因:从能耗上讲,不用的功能模块就不要使能,关掉节省能量。从要实现的功能上讲,需进行一些设置,系统才会工作。如下是单片机PIC16F877A的初始化程序段:Void sys_init(void)INTCON=0X00;/关掉总中断,根据情况是否/使用中断进行/相应设置,这次比赛我们都可以不采用中断,大家在遇见中断时,都对其复位处理./*下面就是各个模块的初始化*/.,6、单片机程序是怎样执行的,7、程序是怎样烧写的?关于在线编程是?,单片机中有一定的内存,我们编写的程序代码就存储在内存内,这样每一句代码就会相应的地址,在单片机中有一个程序计数器PC自动递增)

5、,它就是用来记录并指向下一句代码的的地址,这样程序就一句句地执行完成了。,引脚上的两个引脚(ICD)可以实现,二、A/D模块1、灰度传感器输出信号类型分析传感器粗略电路 简单串联电路,理想情况下,光从弱变强得到传感器输出的模拟信号(实际中有很多毛刺),如曲线,白色采样区,绿色采样区,1、怎样将模拟信号转换成单片机引脚可以识别的数字信号这个过程就是由单片机内部的A/D(analog-digital)模块实现的 a、A/D模块内容,Pic877a单片机有8个用于A/D转换通道的输入引脚,使用时须在I/O端口的引脚的方向寄存器设为输入。引脚上的模拟信号经转换过后,可以得到与信号大小成正比的数值,范围

6、在0-1023之间,这样会用到两个8位的寄存器来储存转换结果。A/D模块 包含了ADCON0、ADCON1、ADRESH、ADRESL三个寄存器。,ADRESH:ADRESL是用于存放AD转换10位结果,在确定通道位后,读取它俩就会得到结果,ADRESH中只有两位(bit0、bit1或bit6、bit7)有效。ADCON0的ADCS1、ADCS0是AD转换时钟选择位,控制转换器的时钟速度,它与信号输入引脚上采样保持时间、单片机工作时钟有关。(采样保持电路是由二极管、电阻、电容构成的RC回路,输入信号进入引脚时快速充电,当电荷充饱保持电容后,电压就是模拟输入电压,电压器上电压就是AD转换器的输入

7、电压值,这一个过程需要时间,,也就是采样保持时间Tacq(芯片手册上Tacq是19.72),这之后就是AD转换时间,10位转换要12时间,为AD转换一位的时间,对PIC877A至少要1.6。)CHS2、CHS1、CHS0位的组合是选择转换通道哪一路为输入,同一时间只能处理一个AD通道的输入,如有多路模拟信号输入时,就必须依次完成AD转换后,重新设定新的AD转换通道。GO/位是AD转换状态显示位、AD转换开始标志位。GO/=1时启动AD转换,就会按照寄存器设定进行完AD转换,然后GO/清0,,可以通过检测这个来判断AD转换是否完成。注意:在设置通道和GO/,之间必须让采样电容足够充电。ADO位是

8、AD转换的允许位,ADON=1表示打开转换器电源,该模块 可以工作,ADON=0,关闭整个转换器,此时它会消耗工作电流。ADCON0寄存器具体设置如下:,ADCON1中ADFM用来设定转换结果在ADRESH:ADRESL如何存放。ADFM=1转换结果右对齐;ADFM=0转换结果左对齐。如图所示:,本次比赛中AD转换结果8位精度便可满足要求,可设ADFM=1,只读取ADRESL的8位结果。那么,PCFG3:PCFG0AD转换引脚功能选择位,用来设置AD转换引脚 的工作模式(模拟功能、数字IO功能)和转换的基准电压来源。ADCON1寄存器具体设置如下:,ADFM=0,结果存在什么寄存器里?,b、A

9、D模块使用流程如下:,3、和A/D有关的寄存器及初始化,思考:关于AD要怎样初始化,Void AD_init().TRISA=0X0FF;ADRESL=0X00;ADRESH=0X00;/清结果寄存器ADCON1=0X00;/设置结果为左对齐,8位结/果存放于ADRESH中ADCON0=0B10000001;/32Fsoc,通道0,AD/转换电源打开。Delay();/采样等待时间19.72us-20usGO=1;/开启转换While(ADGO=1);/等待AD转换结束ADGO/清0,转换结束,读取ADRESH结果,三、电机控制模块目的:控制小车车轮方向及调节车轮速度1、普通直流电机怎样才可以

10、转起来?电机两端施加一定电压且有电流流过电机。2、为什么不用单片机引脚去驱动普通直流电机?A、功率不够。最大功P=25mA*5v=75mWB、功率足够也不行,普通直流电机内部有线圈,在电机断电时,由于它有惯性,会慢慢停下来,据法拉第电磁感应定律,这样会产生瞬间感应电动势,它对我们单片机引脚产生不小的冲击,严重会损坏单片机内部电路。,综上,在电机控制过程中,电机与单片机引脚要隔开,这里我们使用的是芯片为前面介绍的L298.3、怎样调速控制电机?引导 单片机调速控制电机就如同流水带动水车,水流大,水车转速快,如果我们让水流断断续续流动,那么水车也会流断断续续转动,这是我们宏观上看见的现象,微观地看

11、,应用在电机上,只是电机转动有惯性,我们看不出它断断续续的转动。,可以看出我们也能用断断续续的有一定频率的电压脉冲信号去控制电机的转动。其频率f=1/T,T为周期,Tr为运行周期,也就是驱动电机的高电平持续时间。如图:思考:占空比的值是做什么的,占空比=Tr/T,A、怎样产生周期时间TTimer2定时器就可以产生这个周期时基T。我们使用它工作在定时器模式下,包含的寄存器有T2CON、PR2、TMR2三个。TMR2寄存器是可读可写的,任何单片机复位都将对其清0,它是用于存放计数值的,定时器工作在定时器模式下,只能使用内部时钟来触发增量,在一定的(指令周期)时钟频率下从00H递增的(就比如现实中钟

12、表的秒针一样,不停一走)。PR2是周期寄存器,我们可以给它赋一个合适的值,TMR2寄存器的值同PR2寄存器的值相等时,,(如果中断使能,就会响应中断)TMR2的值就会清0,又从00H开始下一个循环。(这里就好比我们给钟表定闹钟一样)。PR2也是可读写的,对它赋新值,要到下一次TMR2匹配PR2后才会生效。但是,PR2被复位后会被填入初值FFH。T2CON寄存器是Timer2的控制寄存器,它包括预分频和后分频的设置,还有就是Timer2的使能位 TMR2ON。关于预分频(有三种选择1:1,1:4,1:16),前几节说过程序执行有个指令周期,这个预分频就是将指令周期的频率分成几分之几,来触发TMR

13、2的增量,分频的效果是,是频率小了周期大了,那样上图一个脉冲信号持续时间变长了。对于后分频,我们不使用中断,可以对它不进行设置,保持默认0状态。T2CON寄存器如下:,这样设置好PR2的值,周期T就设定了。和Timer2有关的寄存器如图:那么,这里怎样初始化Timer2?,则Timer2初始化如下:.Void Timer2_init()INTCON=0X00;/关总中断PIE1=0X00;/关外设中断T2CON=0B00000000;/Timer2关闭,预分/频为1:1.PR2=0X0FF;/周期寄存器高初值TMR2=0X00;/计数器清0TMR2ON=1;/打开定时器2开时计时,C、怎样输出

14、运行周期间的高电平这由单片机的CCP模块的PWM(Pulse width Modulation)模式实现,CCP工作在PWM模式,需要设定CCP1CON=0X0C和CCP2CON=0X0C,并且CCP的两引脚也要设置为输出,即TRISC位的设定。PWM 模式有CCPRxL、CCPRxH寄存器.,CCPRxL寄存器是用于存放运行周期Tr的值。在Timer2从0开始增量的过程中,TMR2的值会不停地和CCPRxL的值进行比较(比较器中),刚开始时时C1、C2输出高电平,直到TMR2的值等于CCPRxL的值时,C1、C2输出低电平,TMR2会再增下去,到等于PR2的值时,TMR2值清0,开始下一个循

15、环重新计数。当CCPRxL的值超过PR2的值时,就会一直输出高电平。,CCPRxH是个只读寄存器(就是我们不能操作的寄存器),其实当我们给CCPRxL赋值后,CCPRxL会把这个值加载到CCPRxH,供PWM的比较器使用,所以它是CCPRxL的内部缓冲寄存器。和PWM、Timer2有关的寄存器也有几个即:,PWM怎样初始化?,Void PWM_init()INTCON=0X00;/关总中断PIE1=0X00;/关外设中断PIE2=0X00;T2CON=0B00000000;/Timer2关闭预分1:1PR2=0X0FF;/周期寄存器高初值TMR2=0X00;/计数器清0CCP1CON=0X0C;/设两个CCP为PWM模式CCP1CON=0X0C;TRISC=0X00;/CCP引脚设为输出CCPR1L=0X00;/清0两个运行周期寄存器CCPR2L=0X00;TMR2ON=1;/打开定时器2开时计时,四、比赛有关,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号