资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,Click to edit Master title style,什么是单片机,什么是单片机?,单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器,CPU,、随机存储器,RAM,、只读存储器,ROM,、多种,I/O,口和中断系统、定时器,/,计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、,A/D,转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统(来源:百度百科),什么是单片机什么是单片机?,单片机控制系统中的两个通路,能量通路,即能量的变换与传输通路。包括系统电源,摄像头,/,光电管驱动电路,电机,H,桥驱动电路,舵机驱动电路等等。,信号通路,即信号的变换与传输通路。包括道路信号采集以及,A/D,变换,信号处理分析、电机控制,PWM,输出、舵机控制,PWM,输出等等。,单片机控制系统中的两个通路,单片机在智能车中的应用,如何构建一个智能车的单片机控制系统?,道路识别,速度检测,数据分析计算,电机驱动,舵机驱动,单片机在智能车中的应用如何构建一个智能车的单片机控制系统?,智能车单片机系统基本结构,道路信息输入,(光电,/,摄像头,/,电磁),MCU(MC9SXS128),速度信息输入,(速度编码器),直流电机,转向舵机,状态显示,智能车单片机系统基本结构道路信息输入速度信息输入直流电机 转,设计中使用到的单片机模块,通用输入输出模块,中断系统,定时器,输入捕捉模块,A/D转换模块,PWM发生模块,SCI/SPI串行总线,设计中使用到的单片机模块通用输入输出模块,MC9S12XS128,Flash,容量:,128KB,RAM,容量:,12KB,CAN,总线:,1,个,SCI,总线:,2,个,SPI,总线:,1,个,A/D,转换:,8,通道,,8/10,位,定时器:,8,通道,,16,位,I/O,数量:,91/59/44,个(,112/80/64,引脚),MC9S12XS128Flash容量:128KB,通用输入输出模块,MC9S12XS128,(,80QFP,封装)有通用,I/O,口,59,个,采用与功能模块的引脚复用模式,并通过寄存器来选择。,I/O,口分为:,Port A,B,和,K,为通用,I/O,Port E,与,IRQ,XIRQ,中断复用,Port T,与,1,个定时器模块复用,Port S,与,2,个,SCI,模块和,1,个,SPI,模块复用,Port M,与,1,个,MSCAN,模块复用,Port P,连接至,PWM,模块另外可以作为外部中断源,Port H,和,J,是通用,I/O,也可以作为外部中断源,Port AD,与,AD,转换模块复用,通用输入输出模块MC9S12XS128(80QFP封装)有通,通用,I/O,口的应用,D,G,Q,D,G,Q,数据总线,D0,WR_PORT,RD_DDR,WR_DDR,RD_PORT,PORT,引脚,数据寄存器,PORT,方向寄存器,DDR,通用I/O 口的应用DGQDGQ数据总线D0WR_PORTR,通用,I/O,寄存器,通用I/O寄存器,按键实例,VCC,PORTA0,S0,R1,Void Main(),int iKey=0;,iKey=PORTA;,按键实例VCCPORTA0S0R1Void Main(),外部中断控制寄存器,IRQE,:,IRQ,边沿触发使能位,0,:低电平触发,1,:高电平触发,IRQEN,:,IRQ,中断使能位,0,:禁止,1,:允许,外部中断控制寄存器IRQE:IRQ边沿触发使能位,中断程序示例,Void main(),IRQCR=0XC0;/,设置为允许下降沿中断,EnableInterrupts;,#pragma CODE_SEG NON_BANKED,void interrupt 6 ISR(void),ISR6Function();,#pragma CODE_SEG DEFAULT,void ISR6Function(),中断程序示例Void main(),中断系统在智能车系统中的应用,定时中断,用来控制系统计时,速度检测,算法控制等,外部中断,用于处理无线控制信号等,输入捕捉中断,用于摄像头行场同步信号采集等,A/D,转换终止中断,用于检测,AD,转换结束,中断系统在智能车系统中的应用定时中断,定时器,MC9S12XS128中有增强型定时器模块(Enhanced Capture Timer Module),1个16位自由运行计数器,8个16位输入捕捉/输出比较通道,1个16位脉冲累加器,定时器,定时器,定时器,定时器在智能车系统中的应用,速度检测,道路信息定时采样,系统输出定时控制,定时器在智能车系统中的应用,定时器例子,void interrupt 15 C4I_ISR(void)/,定时中断控制程序,unsigned int i;,long int Avg_Dir=0;,DisableInterrupts;,TFLG1=0X80;/,清中断标志,for(i=0;i100;i+),Avg_Dir+=diri;,Avg_Dir/=100;,Last_A_Dir=A_Dir;/,上次采样平均值,A_Dir=Avg_Dir;,TC7=2000;,EnableInterrupts;,定时器例子void interrupt 15 C4I_ISR,A/D,转换模块,MC9S12XS128内置1个16通道12位的逐次逼近模数转换器,可选8/10/12位转换精度,转换时间短,可由外部触发控制,可选择单次或连续转换,A/D转换模块MC9S12XS128内置1个16通道12位的,A/D,转换实例,#include /*common defines and macros*/,#include /*derivative information*/,void ADCInit(),ATD0CTL2=0 xC0;/AD,模块上电,快速清零,无等待模式,禁止外部触发,中断禁止,ATD0CTL3=0 x20;/,每个序列,4,次转换,No FIFO,Freeze,模式下继续转换,ATD0CTL4=0 x83;/8,位精度,2,个时钟,ATDClock=BusClock*0.5/PRS+1 ;PRS=3,divider=8,ATD0CTL5=0 xA0;/,右对齐无符号,单通道采样,通道,0,ATD0DIEN=0 x00;/,禁止数字输入,A/D转换实例#include,A/D,转换实例,void main(void),ADCInit();/AD,初始化,DDRB=0 xFF;,PORTB =0 x00;,EnableInterrupts;,for(;),while(!ATD0STAT1_CCF0);/,等待转换结束,PORTB=(byte)ATD0DR0;/,在,B,口显示转换值,/*wait forever*/,A/D转换实例,PWM,波形,PWM波形,PWM,模块结构和原理,PWM模块结构和原理,PWM,实例,void pwminitial(),PWMPOL=0X01;/,通道,0,输出波形开始极性为,1 output waveform which high first then low when the duty counter is reached,PWMCAE=0 x00;/,左对齐输出模式,output left align waveform,PWMCLK=0X01;/PWM,时钟源为,SAClock SA is the clock source for PWM channel 0,PWMPRCLK=0X03;/,时钟,A8,分频,Clock A is 8MHz/8=1MHz,PWMSCLA=0X80;/,时钟,SA,为,1MHz/128/2 Clock SA is 1MHz/128/2=4KHz,PWMPER0=255;/,设定输出周期,=,通道时钟周期*,256,PWMDTY0=0;/,占空比初始为,0 Duty is 50%,and PWM waveforms frequent is 16,PWME=0X01;/,通道,0,使能,enable pwm channel 0,PWM实例void pwminitial(),SCI/SPI,串行通信模块,SPI(Serial Peripheral interface,),串行外围设备接口是一个同步串行通信系统,即发送、接收双方共享一个时钟信号,以确保数据传输是同步的。,SPI,具有,1,个时钟信号、,2,个数据信号和,1,个主从选择信号。,SPI,能用于两个器件之间的点对点通信或通过,SPI,总线的多点通信。,SCI/SPI串行通信模块,SPI,通信原理,SPI,的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少,4,根线,事实上,3,根也可以(用于单向传输时,也就是半双工方式)。也是所有基于,SPI,的设备共有的,它们是,MISO,(数据输入),,MOSI,(数据输出),,SCK,(时钟),,SS,(片选)。,(,1,),MOSI,主设备数据输出,从设备数据输入,(,2,),MISO,主设备数据输入,从设备数据输出,(,3,),SCK,时钟信号,由主设备产生,(,4,),SS,从设备使能信号,由主设备控制,SPI通信原理SPI的通信原理很简单,它以主从方式工作,这种,
展开阅读全文