第五讲 单片机

上传人:sx****84 文档编号:243434912 上传时间:2024-09-23 格式:PPT 页数:35 大小:1.29MB
返回 下载 相关 举报
第五讲 单片机_第1页
第1页 / 共35页
第五讲 单片机_第2页
第2页 / 共35页
第五讲 单片机_第3页
第3页 / 共35页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五讲,16,位系类,MC9S12DG128,MC9S12XS128,DSC,56F8013,32,位系类,32,位,Kinetis,系列,(K10 K60),32,位,ColdFire,系列,32,位,MPC56xx,系列,16位S12系列,32位MPC56系列,32,位,ColdFire,系列,MC9S12XS128,性能概述,MC9S12XS128,只是,S12,家族中的一员,该器件包括大量的片上存储器和外部,I/O,口,它是一个,16,位器件,由,16,位中央处理单元、,128KB,程序,Flash,、,8KB RAM,、,8KB,数据,Flash,组成内部存储器。同时还包括,2,个异步串行通信接口(,SCI,)、,1,个串行外设接口(,SPI,)、,1,个,8,通道输入捕捉,/,输出比较定时器(,TIM,)、,16,通道,12,位,A/D,转换器和一个,8,通道脉冲宽度调制模块(,PWM,)。,MC9S12XS128单片机,各个引脚的介绍,各个模块的介绍,实例,引脚,通用的I/O口,PWM输出口,中断口,A/D口,串口,各个模块,锁相环模块,I/O,输入和输出,PWM脉宽调制模块,定时器模块,A/D转换模块,串行口通信模块,PLL,锁相环,MC9S12XS128,的时钟和复位发生器(,CRG,)模块,提供了锁相环(,PLL,)功能,单片机使用,PLL,功能能够获得更高的总线频率,这对于需要提高单片机运行速度的应用场合非常必要。,相关频率计算公式,f(vco)=2*f(osc)*(SYNR+1)/(REFDV) /VCO,时钟频率,f(PLL)=f(vco)/(2*POSTDIV)/,锁相环频率,f(BUS)=f(PLL)/2 /,总线频率为锁相环频率的,1/2,PLL,锁相环(实例设置总线频率,40M,),void SetBusCLK_40M(void) /,函数名称,CLKSEL_PLLSEL=0x00; /,禁止锁相环时钟,PLLCTL_PLLON=1; /,锁相环电路使能,SYNR=4,;等效(,0XC0 | 0X04,),; /,设置时钟合成寄存器,REFDV=1,;等效(,0X80 | 0X01,),; /,设置时钟参考分频寄存器,POSTDIV=0X00; /,设置时钟后分频寄存器,VCO,频率和,PLL,相同,_asm(nop); /,短暂延时,等待时钟频率稳定,_asm(nop);,while(!(CRGFLG_LOCK=1);/,等待稳定 锁相环锁定,;,CLKSEL_PLLSEL=1;/,使能锁相环时钟,PLL_CLK=2*OSCCLK*(SYNR+1)/(REFDV+1),PLL模块设定步骤,禁止锁相环时钟,锁相环电路使能,设置,CRG,时钟合成寄存器(,SYNR,),设置,CRG,时钟参考分频寄存器(,REFDV,),设置,CRG,时钟后分频寄存器(,POSTDIV,),短暂延时,等待时钟频率稳定,锁相环频率锁定,使能锁相环时钟,I/O口,MC9S12XS128内部有非常丰富的输入,/,输出端口资源,同时也集成了多种功能模块,其输入,/,输出引脚大多为复用引脚。 MC9S12XS128通用I/O口包括:,PORTA 、 PORTB 、PORTE 、PORTK 、PORTT 、PORTS 、PORTM 、PORTP 、PORTH 、PORTJ 以及 PORTAD,MC9S12XS128,除了,PORTK,有,7,个引脚以及,PORTJ,有,4,个引脚,相关寄存器介绍,其中PORTA 、 PORTB 、PORTE 、PORTK这四个口的寄存器包括:数据寄存器(Px)、数据方向寄存器(DDRx)、,上拉电阻寄存器(PUCR)、驱动控制寄存器(RDR)。,其中PORTT 、PORTS 、PORTM 、PORTP 、PORTH 、PORTJ 这六个口的寄存器有:数据寄存器(Px)、输入寄存器(PTIx)、数据方向寄存器(DDRx)、 上/下拉使能寄存器(PERx)、上/下拉选择寄存器(PPSx)、驱动控制寄存器(RDR)、中断使能寄存器(PIEx)、中断标志寄存器(PIFx)。,I/O,输入输出实例介绍,(,实现流水灯,),Void delay(void),unsigned i, j;,for(i=0;i500;i+),for,(,j=0;j500;j+,),;,Void main(void ),unsigned char z;,DDRB=0xff;,z=0;,While(1),switch(z),case 0:PORTB=0xFE;break;,.,case 7:PORTB=0x7F;,Z+;if(z=8),z=0;,Delay();,I/O,DDRA =0x00;,DDRM =0x00;,DDRS=0x00;,PORTB=0x3F;,DDRE=0XFF;,PORTE =0x0C;,DDRT=0xFF;,PTT=0x31;,PWM模块结构组成及其特点,MC9S12XS128,的,PWM,模块具有,8,路,8,位独立,PWM,通道,通过相应设置也可变成,4,个,16,位,PWM,通道,每个,PWM,通道由独立运行的,8,位通道计数器,PWMCNT,、两个比较寄存器为通道周期寄存器,PWMPER,和占空比寄存器,PWMDTY,等组成。通过各寄存器的参数设置,确定,PWM,波形的输出周期和占空比,另外还可以通过通道极性寄存器,PWMPOL,和居中对齐使能寄存器,PWMCAE,设置,PWM,输出脉冲波形的极性和对齐方式,PWM输出口,PWM模块具有以下基本特征:,1.具有可编程周期和占空比的8个独立PWM通道;,2.每个PWM通道具有独立的计数器;,3.每个通道可编程允许/禁止PWM功能;,4.每个通道可软件选择PWM脉冲极性;,5.具有双缓冲的周期和占空比寄存器,当达到有效周期终点(PWM计数器到达0)或通道禁止时,修改值生效;,6.每个通道可编程中心对齐或左对齐输出;,7.8个8位通道或4个16位通道PWM分辨率;,8.4个时钟源(A、B、SA和SB)提供宽频带频率;,9.可编程时钟选择逻辑;,10.紧急关闭功能。,PWM寄存器,PWM模块包括以下寄存器:,PWM使能寄存器(PWME)、PWM极性寄存器(PWMPOL)、PWM时钟选择寄存器(PWMCLK)、PWM预分频时钟选择寄存器(PWMPRCLK)、PWM居中对齐使能寄存器(PWMCAE)、PWM控制寄存器(PWMCTL)、PWM比例因子A寄存器(PWMCLK)、PWM比例因子B寄存器(PWMSCLB)、PWM通道计数器(PWMCNT)、PWM通道周期寄存器(PWMPER)、PWM通道占空比寄存器(PWMDTY)、PWM关闭寄存器(PWMSDN)。,PWM,初始化步骤,禁止,PWM PWM PWME = 0,选择时钟,PWMPRCLK,,,PWMSCLA,,,PWMSCLB,,,PWMCLK,选择极性,PWMPOL,选择对齐方式,PWMCAE,选择占空比和周期,PWMDTYx,,,PWMPERx,使能,PWM PWM PWME = 1,左对齐方式:,输出周期,=,通道周期, PWMPERx,;,占空比,= (PWMPERx - PWMDTYx) / PWMPERx 100%,中心对齐方式:,输出周期,=,通道周期, PWMPERx 2,占空比,= PWMDTYx / PWMPERx 100%,PWM,void Init_PWMout(void),PWME=0x00; /,关闭,pwm,PWME=0x28;,PWMCAE=0x00; /,左对齐方式,PWMPOL=0x28; /,极性位,=1, duty=,高电平时间,PWMCTL = 0x70; /45. 23.01,通道级联,PWMCLK = 0x28;,PWMPRCLK=0x00;,PWMSCLA = 6;,PWMSCLB = 12; /clockSA=clock/(2*pwmscla),PWMPER23=20000; /P3,口输出频率,100HZ,PWMDTY23=3150; /,中心,=3150,;左极限,=3360,;右极限,=2940,PWMPER45=2000; /P5,口输出频率,20KHZ,PWMDTY45=1200;,PWME=0xff; /,启动,pwm,定时器模块,一、TIM模块具有以下基本特征:,1.8个输入捕捉/输出比较通道;,2.时钟分频;,3.16位计数器功能;,4.16位脉冲累加器功能。,二、TIM模块有4种工作模式:,1.停止模式:时钟停止运行,关闭TIM模块;,2.冻结模式:除了TSCR1寄存器中的TSFRZ=1外,TIM模块保持运行状态;,3.等待模式:除了TSCR1寄存器中的TSFRZ=1外,计数器保持运行状态;,4.正常模式:除了TSCR1寄存器中的TEN=0外,TIM模块保持运行状态。,定时器的应用,产生波形输出,:,从,MCU,的,I/O,引脚上向外部电路输出一系列符合一定时序规范的周期信号,测量输入波形:从,MCU,的,I/O,引脚上检测外部电路输入的一系列周期信号的脉宽,统计脉冲或边沿个数:对端口引脚输入的、由外部事件产生的触发信号进行计数,作为定时基准:产生内部精确定时,例如用于定时采样等,智能车系统中的常用功能为计脉冲数或作为定时基准,定时器捕捉脉冲举例,void ect_init(void),TIOS_IOS2=0; /,设置,2,为输入捕捉,TIOS_IOS3 = 0;,TSCR1_TFFCA=0; / FAST FLAG CLEAR,读取即清零 快速清零,TCTL4_EDG2A=1;,TCTL4_EDG2B=0; /,脉冲计数,(PT2),上升沿捕捉,TCTL4_EDG3A=1;,TCTL4_EDG3B=0; /,脉冲计数,(PT3),上升沿捕捉,TIE_C2I = 1; /,中断请求允许,TIE_C3I = 1;,A/D转换模块,ATD模块具有以下基本特征:,1.8位/10位/12位可选转换精度;,2.停止模式下转换使用内部时钟;,3.转换完成后为低功耗状态;,4.自动和可编程数值比较,可设定大于或者小于等于设定值时申请中断;,5.可编程采样时间;,6.左对齐/右对齐转换数值;,7.外部触发功能;,8.转换完成中断申请;,9.16路模拟输入通道多路开关;,10.可实现Vrh、Vrl和(Vrh+Vrl)/2特殊转换;,11.可转换序列长度为116;,12.连续转换模式;,13.多通道扫描功能;,12.外部触发功能可配置为A/D通道或4个外部附加触发输入端,外部触发源可选择片外或片内信号。,A/D,模块寄存器,MC9S12XS128,单片机,A/D,模块寄存器主要分为,ATD,控制寄存器,0,(,ATD0CTL0,)、,ATD,控制寄存器,1,(,ATD0CTL01,)、,ATD,控制寄存器,2,(,ATD0CTL02,)、,ATD,控制寄存器,3,(,ATD0CTL03,)、,ATD,控制寄存器,4,(,ATD0CTL04,)、,ATD,控制寄存器,5,(,ATD0CTL05,)、,ATD,状态寄存器,0,(,ATDSTAT0,)、,ATD,比较使能寄存器(,ATDCMPE,)、,ATD,状态寄存器,2,(,ATDSTAT2,)、,ATD,输入使能寄存器(,ATDDIEN,)、,ATD,比较大于寄存器(,ATDCMPHT,)、,ATD,转换结果寄存器(,ATDDRn,),A/D,模块举例,ATD0,模块的通道,0,连接一个可调电阻,提供可调的模拟输入电压,,PORTB,端口连接八个,LED,。编程实现,ATD0,模块的连续采样,采用,8,位采样精度,转换结果右对齐格式,将,A/D,转换结果送到,PORTB,口,通过点亮,LED,灯的明暗情况,了解,A/D,转换结果的变化,Void ATD0_Init(void),ATD0DIEN=0x00;/,禁止数字输入功能,ATD0CTL1=0x00;/A/D,分辨率选择,8,位,且采样前不放电,ATD0CTL2=0x40;/A/D,模块快速清零,禁止外部触发,禁止中断,ATD0CTL3=0x88;/A/D,模块转换结果右对齐,每个序列,1,个通道,ATD0CTL4=0x03;/,采样时间,4,个周期,,PRS=3,ATD0CTL5=0x20;/,对通道,0,单通道连续采样,同时启动,A/D,转换序列,Void main,(,void,), unsigned char AD_result;/,定义一个变量存储,A/D,转换结果,DDRB=0xff;/,定义,PORTB,端口为输出端口,PORTB=0xff;/,关闭所有,LED,for(;), while(!ADT0STAT2L_CCF0),; /,等待转换结果,AD_result=ATD0DR0L;,PORTB=AD_result,SCI模块寄存器,1.SCI波特率寄存器(SCIBDH,SCIBDL);,2.SCI控制寄存器1(SCICR1);,3.SCI可选择状态寄存器1(SCIASR1);,4.SCI可选择控制寄存器1(SCIACR1);,5.SCI可选择控制寄存器2(SCIACR2);,6.SCI控制寄存器2(SCICR2);,7.SCI状态寄存器1(SCISR1);,8.SCI状态寄存器2(SCISR2);,9.SCI数据寄存器(SCIDRH,SCIDRL)。,串口,void InitSci(void),SCI0CR1 =0x00;,SCI0CR2 =0x2c;,SCI0BD =0x138;,SCI0BDL=busclk/(16*SCI0BDL) 波特率,SCI模块应用举例,实现,SCI,模块的数据发送,利用,SCI0,模块连续发送,099,共计,100,个数据。串行口通信波特率设定为,9600bps,总线时钟为,8MHZ,,此时,SCI0BD,的取值为,52.,初始化模块,void SCI0_Init(void),SCI0BD=52;/,设置波特率为,9600,SCI0CR1=0X00;,SCI0CR2=0X0C;,延迟函数,Void delay(void),unsigned int i, j;,for(i=0;i500;i+),for(j=0;j500;j+),;,主函数,Void main(void),unsigned char z;,SCI0_Init();,for(z=0;z100;z+),while(!SCI0SR1_TDRE),;,/,等待发送缓冲空区,SCI0DRL=z; /,发送数据,delay();,While(1),;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!