某培训资料课件.ppt

上传人(卖家):ziliao2023 文档编号:5757142 上传时间:2023-05-06 格式:PPT 页数:95 大小:3.05MB
下载 相关 举报
某培训资料课件.ppt_第1页
第1页 / 共95页
某培训资料课件.ppt_第2页
第2页 / 共95页
某培训资料课件.ppt_第3页
第3页 / 共95页
某培训资料课件.ppt_第4页
第4页 / 共95页
某培训资料课件.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

1、ZZTI郑郑州州1飞思卡尔智能车_单片机篇ZZTI郑郑州州2飞思卡尔单片机 8位单片机 51,宏晶,C8051,AVR 16位单片机 飞思卡尔9S12XS128,ARM,430,DSP2000最小系统板BDM调试器ZZTI郑郑州州3飞思卡尔单片机 MC9S12sx128:16位单片机 系统时钟:晶振16M,总线时钟可到80M 模块时钟:可对系统时钟分频 功能及模块 IO端口 PWM ECT PIT ATD SCIZZTI郑郑州州4端口控制 概述 A、B:通用IO E:AD:ATD模块 K T:TIM模块 P:PWM模块 S:SCI模块 M J H复位后端口为IO口输入,子系统使能后,自动变更为

2、专用功能口。端口作用:IO(输入,输出),功能口ZZTI郑郑州州5管脚图ZZTI郑郑州州6单片机端口配置ZZTI郑郑州州7最小系统管脚接线图ZZTI郑郑州州8引脚ZZTI郑郑州州9常用引脚ZZTI郑郑州州10背面焊接ZZTI郑郑州州11IO口设置 概述 PORTA,PORTB做IO,T,P,AD功能不变 AB口IO设置 输入输出:(1位对应一个端口)方向寄存器A口-DDRA,B口-DDRB 0输入,1输出 输出时的驱动能力(1位对应一组端口)A口-RDRIV0;B口-RDRIV1;1全额驱动能力,0缩减(全额/3)驱动能力 上拉电阻控制(1位对应一组端口)A口-PUCR0;B口-PUCR1;1

3、使用,0不使用ZZTI郑郑州州12端口的位访问 PORTA DDRA PORTB DDRBPA7PA6PA5PA4PA3PA2PA1PA076543210DDRA7 DDRA6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRA076543210PB7PB6PB5PB4PB3PB2PB1PB076543210DDRB7 DDRB6 DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 DDRB076543210位访问方法:例PORTA_PA0ZZTI郑郑州州13第一个练习 点亮一盏灯 PB3口 输出DDRB=0 x0f;亮灯:PORTB=0 x00;复位高电平ZZTI郑

4、郑州州14飞思卡尔单片机使用 官网:飞思卡尔半导体http:/ CodeWarrior 下载:CW_S12_v5.0_Special(3).exe 安装:-BDM调试器 安装驱动:USBDMreleasedriver首创科技光盘资料首创科技光盘资料ZZTI郑郑州州15最小系统板使用 电路板 电源 系统板及插座 电阻,LEDZZTI郑郑州州16操作过程 运行程序ZZTI郑郑州州17ZZTI郑郑州州18ZZTI郑郑州州19ZZTI郑郑州州20CodeWarriorZZTI郑郑州州21写程序、编译、连接、下载ZZTI郑郑州州22ZZTI郑郑州州23程序调试界面ZZTI郑郑州州24效果图ZZTI郑郑州

5、州25单片机时钟ZZTI郑郑州州26总线时钟频率 总线时钟:可编程改变(一般最大80M)时钟合成寄存器SYNR低4位 时钟分频寄存器REFDV低4位PLLCLK=2*OSCCLK*(1+SYNR)/(1+REFDV)BUSCLK=PLLCLK/2 ZZTI郑郑州州27SYNR与REFDIV高位 FVCO=2*FOSC*(SYN+1)/(REF+1)SYNR=0 xc0|0 x04;FREF=FOSC/(REFDIV+1)REFDV=0 x80|0 x01;FVCO32-48M48-80M保留80-120MSYNR7-4 0 x000 x400 x800 xC0FREF1-2M2-6M6-12M

6、12MREFDIV7-40 x000 x400 x800 xC0ZZTI郑郑州州28时钟设置典型程序1/24M主频CLKSEL_PLLSEL=0;/系统时钟=晶振/2PLLCTL_PLLON=1;/允许锁相环SYNR=0 x40|0 x02;REFDV=0 x80|0 x01;POSTDIV=0 x00;_asm(nop);_asm(nop);while(!(CRGFLG_LOCK=1);/等待系统稳定CLKSEL_PLLSEL=1;/系统时钟=PLLCLK/2ZZTI郑郑州州29时钟设置典型程序2/80M主频CLKSEL_PLLSEL=0;/系统时钟=晶振/2PLLCTL_PLLON=1;/

7、允许锁相环SYNR=0 xc0|0 x09;REFDV=0 x80|0 x01;POSTDIV=0 x00;_asm(nop);_asm(nop);while(!(CRGFLG_LOCK=1);/等待系统稳定CLKSEL_PLLSEL=1;/系统时钟=PLLCLK/2ZZTI郑郑州州30PWM模块 作用:硬件方法产生PWM,控制电机U0ZZTI郑郑州州31PWM产生原理 计数器 周期 比较值 原理:当计数器值=比较值时,电平翻转连续增计数方式连续增减计数方式计数值比较值0周期ZZTI郑郑州州32PWM产生 起始电平:高计数值比较值0周期PWMZZTI郑郑州州33PWM产生原理 起始电平:低计数

8、值比较值0周期PWMZZTI郑郑州州34PWM模块 8路PWM 8位ZZTI郑郑州州35PWM寄存器设置 PWM允许:1允许,0禁止 极性:0起始低,1起始高 居中对齐:0左对齐,1居中对齐 周期寄存器PWMPERx:8位 比较值寄存器PWMDTYx:8位ZZTI郑郑州州36PWM时钟 时钟选择 CLOCKA/B:对总线时钟分频ZZTI郑郑州州37PWM时钟 SA与SB由CLOCK A/B分频得到ZZTI郑郑州州38PWM模块 级联级联 4路PWM 16位ZZTI郑郑州州39PWM级联 CONxy=1,表示xy级联,组成16位PWM 01,23,45,67级联 PWM允许,极性,居中对齐寄存器

9、,PWM输出 分别继承1,3,5,7 周期寄存器PWMPERxy:16位 比较值寄存器PWMDTYxy:16位ZZTI郑郑州州40PWM寄存器ZZTI郑郑州州41练习 利用1个8位PWM通道,左对齐方式,起始高电平,产生一个频率=10kHz,占空比=1/4的PWM波形。计算:周期=24000000/10000=2400 超过8位,分频:2400/256=9.4,16分频 周期=2400/16=150 比较值:150/4=37T=100usZZTI郑郑州州42寄存器设置 PP0通道:PWME _PWME0=1 左对齐:PWMCAE_CAE0=0;极性起始高电平:PWMPOL _PPOL0=1;时

10、钟选择:PWMCLK _PCLK0=0,CLKA A分频1/16:PWMPRCLK _PCKA=4 周期:PWMPER0=150 比较值:PWMDTY0=37ZZTI郑郑州州43程序PWME=1;/PP0通道:PWMCAE=0;/左对齐:PWMPOL=0;/极性起始高电平:PWMCLK=0;/时钟选择,CLKAPWMPRCLK=0 x04;/A分频1/16:PWMPER0=150;/周期:PWMDTY0=37;/比较值:两种寄存器设置方法两种寄存器设置方法所有寄存器定义可查所有寄存器定义可查 MC9S12XS128.H继续练习:使用级联PWM生成PWM波形,50HzZZTI郑郑州州44单片机中

11、断 void mian()初始化For(;)后台程序。中断程序中断程序1中断程序2中断程序3特定事件1 特定事件2 特定事件3开中断清中断标记特定事件发生Void interrupt 中断号 程序名()。ZZTI郑郑州州45ZZTI郑郑州州46中断程序定位 一般情况下,中断程序必须定位于non-banked区域,通过使用#pragma CODE_SEG NON_BANKED可以把中断程序定位于non-banked区域,同时你必须确保sectionNON_BANKED不能出现在.prm文件中。在中断程序的末尾,你需要添加#pragma CODE_SEG DEFAULT,否则的话,后面的函数也会被

12、定位在non-banked区域。也即,中断服务程序必须被#pragma CODE_SEG NON_BANKED与#pragma CODE_SEG DEFAULT包围。#pragma CODE_SEG NON_BANKEDvoid interrupt 中断号 中断程序名()中断程序代码#pragma CODE_SEG DEFAULTZZTI郑郑州州47TIM模块ECT模块 输入捕捉 比较输出 16位脉冲累加器参考:http:/ 时钟分频 定时器使能 0停止 1使能 计数器TCNT原理 使能后从0-0 xFFFF-0-0 xFFFF循环计数ZZTI郑郑州州49TIM时钟和定时器 当PRTN=1,定

13、时器由PTPSR精密分频ZZTI郑郑州州50TIM输入捕捉IC 捕捉跳变沿,跳变时刻装入寄存器 通道功能选择 0输入捕捉 1输出比较 边沿设置 8组 跳变时刻保存 TC0-TC7ZZTI郑郑州州51TIM输出比较OC 输出比较 设定一个值16,当计数器值=该值时,做特定输出 通道功能选择 0输入捕捉 1输出比较 比较值:TC0-7 比较动作 8组TC=TCNT+TZZTI郑郑州州52TIM输出比较OC 输出比较引脚断路寄存器OCPD OCPDx=0,允许该通道上输出比较动作在该通道产生;OCPDx=1,禁止该通道输出比较动作在该通道产生,但输出比较标志位仍然置位。即只与输出引脚断开连接。ZZT

14、I郑郑州州53OC之强制比较与OC7控制ZZTI郑郑州州54IC-OC中断 中断允许(捕捉中断和比较中断)0禁止 1允许 中断标记 中断号 8-15对应0-7通道 定时器溢出中断允许 中断号16 定时器溢出中断标记ZZTI郑郑州州5516位脉冲累加器 对外部IC7脉冲进行计数,结果在PACNT中 使用 使能PAEN=1,该位不受TEN影响 PAMOD=0事件计数模式 PEDGE=0:PT7下降沿计数 PEDGE=1:PT7上升沿计数 PAMOD=1门控计时累加模式 PEDGE=0:高电平计时;1:低电平计时 PAOVI溢出中断允许位 PAI边沿中断允许位中断标志寄存器,中断号中断标志寄存器,中

15、断号17,18ZZTI郑郑州州5616位脉冲累加器的时钟 时钟设置PCLK:预分频因子定义的:预分频因子定义的TIM时钟。时钟。PACLK:总线时钟:总线时钟64分频分频PCLKZZTI郑郑州州57TIM寄存器ZZTI郑郑州州58TIM寄存器ZZTI郑郑州州59PIT模块 4个24位定时器(递减计数递减计数)8位时基+16位定时器构成参考:参考:http:/ PITCFLMT PITCFLMT_PITE=1;PIT模块使能 PITCE PITCE_PCEx=1;选择通道使能,x=0,1,2,3 PITMUX PITMUX_PMUXx=0;通道x选择时基0,1-时基1ZZTI郑郑州州61PIT寄

16、存器 PITMTLD0,PITMTLD1 8位定时器初值 PITLD0,PITLD1,PITLD2,PITLD3 16位定时器初值ZZTI郑郑州州62PIT定时器初值装载 正常,当计数器下溢后,装载新的计数器值。PFLMTx=1,立即装载8位计数器值。当PFLTx=1,立即装载16位计数器值。ZZTI郑郑州州63PIT中断 PITINTE PITINTE _PINTEx=1;使能下溢中断 PITTF PITTF_PTFx=1;清除对应通道中断标志(写1)保险使用方法,开通多路PIT中断时 PITTF=0 x01;PITTF=0 x02;PITTF=0 x04;PITTF=0 x08;ZZTI郑

17、郑州州64PIT设置及中断使用步骤 先关闭PIT 设置PIT寄存器 使能PIT模块 如果某路PIT使能了中断,必须有中断函数 PIT对应中断号 PIT0-66,PIT1-67,PIT2-68,PIT3-69ZZTI郑郑州州65PIT寄存器ZZTI郑郑州州66练习 使用IC捕获PWM边沿,计算PWM周期。使用IC捕获PWM边沿,在中断中控制B口电平,使灯1秒闪烁。使用PIT编写PWM输出100Hz方波 使用PIT模块计时24000000/100=240000=0 x03a980 使用PB口输出ZZTI郑郑州州67ATD参考:http:/ 外部信号外部信号启动启动ADZZTI郑郑州州70ATD时钟

18、及采样 ATD0CTL4 ATD时钟:ATD采样时间 ATD0CTL11:采样前放电0:不放电SMP7-5PRS 4-0 SMP_DIS4ZZTI郑郑州州71ATD采样精度、结果保存格式 ATD0CTL1 ATD0CTL30左对齐1右对齐SRES6-5DJM7ZZTI郑郑州州72ATD转换通道选择 通道模式ATD0CTL50单通道,1多通道 开始通道ATD0CTL5 转换序列长度 ATD0CTL3MULT4CDCCCBCAS8C S4C S2C S1CZZTI郑郑州州73转换序列折返 多通道采样时,一个序列中多次采样某通道。WRAP位决定在转换完某通道后折回到AN0通道。ZZTI郑郑州州74转

19、换模式与转换启动 ATD0CTL5 0单次转换 1连续转换 对对ATD0CTL5写会启动一个转换队列写会启动一个转换队列 也可通过外部信号启动也可通过外部信号启动 对ATD寄存器写一般会终止当前转换队列SCAN5ZZTI郑郑州州75ATD转换完成与中断 转换完成标记ATD0STAT0 1队列转换完成 该标记可查询 AD完成中断允许ATD0CTL2 0禁止中断 1允许中断,开中断必须有中断程序 AD中断号22SCF7ASCIE1ZZTI郑郑州州76ATD结果保存 结果寄存器ATD0DRx ATD0CTL3 1循环保存 0固定保存 第一个结果保存在ATD0DR0 后面结果顺序存放FIFO2ZZTI

20、郑郑州州77外部触发ATD 可固定采样时间,便于PID调节 ATD0CTL2 外部触发使能ETGIGE 0禁止外部触发 1允许外部触发 外部触发配置ETRIGLE4ETRIGP3ETRIGE2ZZTI郑郑州州78外部触发ATD信号通道 ATD0CTL1ETRIGSEL7ETRIGCH3-0ZZTI郑郑州州79ATD其它问题 特殊通道 VRH,VRL,(VRH+VRL)/2 ATD的比较功能 当AD值大于等于或小于等于某预定值时,产生一个中断。建议使用硬件比较器替代,如电池电压检测。ZZTI郑郑州州80ATD寄存器ZZTI郑郑州州81练习 对一个电压值进行采样 使用软件启动 使用外部信号启动 外

21、部信号可使用PWM产生 在中断程序中读取结果ZZTI郑郑州州82程序技巧 程序构成 主模块 子模块1 相似程序放在一个子模块上 子模块2 不常修改的程序放在子模块上 代码错行编写 for,if,switch等语句 即的下一行代码向后错一个TAB,向前提一个TAB 代码注释 变量起名把子模块添加进工程在主程序中声明子模块中的程序在主程序中条用子程序ZZTI郑郑州州83变量值查看简单技巧在窗口内双击模块变量,可显示其值单击Data1或Data2显示区,在对话框中键入模块变量名,即可查看其值。ZZTI郑郑州州84程序断点设置 在调试窗口,选中代码行,右击后添加断点,也可删除断点。程序运行至断点处停止

22、,把鼠标悬停在某变量上,即可查看其值。F10单步运行ZZTI郑郑州州85SCI硬件连接 单片机-单片机 单片机-PC机单片机单片机PC232电平转换USB接口转换单片机电平转换ZZTI郑郑州州86SCI模块ZZTI郑郑州州87SCI基本使用 初始化:数据格式:8位,无校验 发送 接收波特率设置,SCI寄存器设置发送空闲时写数据到数据寄存器接收完成后从数据寄存器读数据一般使用查询发送:查询空闲时写数据发送中断接收:接收中断时读取数据ZZTI郑郑州州88波特率设置 SCI0BDH-L:13bitSBR常用波特率9600ZZTI郑郑州州89控制寄存器SCI0CR1 LOOPS RSRC SCIWAI

23、 等待模式下0使能SCI,1禁止SCI M数据位 0:8位数据;1:9位数据 WAKE 唤醒方式:0空闲线唤醒,1地址屏蔽唤醒 ILT PE校验 0无校验,1校验位 PT奇偶 0偶校验,1奇校验 PE=1时用都按0默认设置即可ZZTI郑郑州州90控制寄存器SCI0CR2 TIE发送中断使能:1TDRE使能,0TDRE禁止 TCIE:发送完成中断使能:1使能,0禁止 RIE接收中断使能:1RDRF或OR使能,0禁止 ILIE:空闲线中断使能 TE发送器使能:1使能,0禁止 RE接收器使能:1使能,0禁止 RWU:接收器唤醒 SBK:传输中止设置0 x2c即可ZZTI郑郑州州91状态寄存器 TDR

24、E:发送寄存器空标志 TC:发送完成标志 RDRF:接收寄存器满标志 IDLE:线路空闲标志 OR:溢出标志 NF:噪声标志 FE:接收器帧错误标志 PF:奇偶标志错误 AMAP TXPOL RXPOL BRK13:中止符长度 TXDIR:RAF:接收器有效标志ZZTI郑郑州州92数据寄存器 SCI0DRH-L 9bit R8:接收位8 T8:发送位8ZZTI郑郑州州93Alternative替代寄存器ZZTI郑郑州州94SCI使用举例:对话式 发送 if(fasongover=0)while(!SCI0SR1_TC);/检查上次发送是否完成 SCI0DRL=ch;fasongover=1;接收 void interrupt 20 jieshou(void)jieshouover=SCI0SR1_RDRF;Fasongover=0;shuju=SCI0DRL;/读取数据 ZZTI郑郑州州95SCI寄存器

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(某培训资料课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|