搜档网
当前位置:搜档网 › 飞思卡尔16位单片机寄存器分析总结

飞思卡尔16位单片机寄存器分析总结

飞思卡尔16位单片机寄存器分析总结
飞思卡尔16位单片机寄存器分析总结

一、输入输出端口寄存器

I/O接口包括PORTA、B、E、K、T、S、M、P、H、J、AD。其中PORTA、B、E、K属于复用扩展总线接口,单片机在扩展方式下工作时,作为总线信号。

1、PORTT、S、M、P、H、J

I/O寄存器PTx

如果对应位数据方向寄存器DDRx为“0”,输入,读取该寄存器返回引脚值;“1”,输出,读取该寄存器返回I/O寄存器的内容。

数据方向寄存器DDRx

决定对应引脚为输出还是输入,“0”为输入,“1”为输出,复位后,默认为输入。

上拉/下拉使能寄存器PERx

选择使用内置上拉/下拉器件,“1”允许,“0”禁用。

中断使能寄存器PIEx

PORTP、H、J三个端口具有中断功能。“1”对应引脚允许中断,“0”禁止,复位后,所有端口中断关闭。

中断标志寄存器PIFx

PORTP、H、J三个端口具有中断功能。“1”对应引脚允许中断,“0”禁止,复位后,所有端口中断关闭。

2、PORTA、B、E、K

I/O寄存器Px

若某端口的引脚被定义为输出,写入I/O寄存器中的数值会从对应引脚输出;输入,通过I/O 寄存器读取对应引脚电平。

数据方向寄存器DDRx

决定对应引脚为输出还是输入,“0”为输入,“1”为输出,复位后,默认为输入。PORTE最低两位只能为输入。

上拉电阻控制寄存器PERx

第7、4、1、0位分别控制K、E、B、A端口,“1”允许使用对应端口的上拉电阻,“0”禁止,复位后,PK、PE端口使能,PB、PA禁止。

二、中断系统

中断控制寄存器INTCR

第7位IRQE,中断电平/边沿有效选择,0为低电平有效,1为下降沿有效;

第6位IRQEN,外部中断IRQ中断请求使能,0关闭,1允许。

三、PWM模块

PWM允许寄存器PWME

对应每一位PWMEx,1启动输出,0停止输出,读写任意时刻。

PWM预分频时钟选择寄存器PWMPRCLK

为Clock A和B选择独立的预分频因子,读写任意时刻。

Clock B对应6、5、4三位,Clock A对应2、1、0三位,分别可以实现2、4、8、16、32、64、128分频。

PWM比例因子寄存器A、B,PWMSCLA、PWMSCLB

Clock SA=Clock A/(2*PWMSCLA)

=$00时,默认值为256

PWM时钟选择寄存器PWMCLK

对应每一位是PCLKx,7、6、3、2通道:1选择Clock SB,0选择Clock B,5、4、1、0通道:1选择Clock SA,0选择Clock A。读写任意时刻。

PWM通道周期寄存器PWMPERx

寄存器中的数值改变后,并不立即生效,直到:

当前有效周期结束;

写计数寄存器(计数器复位到$00);

通道被禁止。

左对齐方式输出:PWMx周期=通道时钟周期*PWMPERx

居中对齐方式输出:PWMx周期=通道时钟周期*PWMERx*2

PWM通道占空比寄存器PWMDTYx

寄存器中的数值改变后,并不立即生效,直到:

当前有效周期结束;

写计数寄存器(计数器复位到$00);

通道被禁止。

极性为0时,占空比=(PWMPERx—PWMDTYx)/PWMPERx*100%

极性为1时,占空比=PWMDTYx/PWMPERx*100%

PWM极性寄存器PWMPOL

对应每一位是PPOLx,“1”,周期开始输出高电平,“0”,周期开始输出低电平,读写任意时刻。

PWM居中对齐允许寄存器PWMCAE

对应每一位CAEx,,1中心对齐,0左对齐。

仅当相应的通道被禁止输出时,才可以设置该寄存器。

PWM控制寄存器PWMCTL,bit7~bit2

读写任意时刻

CON67,“1”通道6、7联,通道6为高8位,通道7输出引脚作为16位P WM的输出,通道6的相应寄存器控制位无效;

CON45,“1”通道4、5联,通道4为高8位,通道5输出引脚作为16位P WM的输出,通道4的相应寄存器控制位无效;

CON23,“1”通道2、3联,通道2为高8位,通道3输出引脚作为16位P WM的输出,通道2的相应寄存器控制位无效;

CON01,“1”通道0、1联,通道0为高8位,通道1输出引脚作为16位P WM的输出,通道0的相应寄存器控制位无效;

PWM通道计数寄存器PWMCNTx

读写任意时刻

四、A/D转换模块(标明ATD0还是ATD1)

ATD控制寄存器2,ATDCTL2

中止当前A/D转换序列,但不会启动新的A/D转换序列。

从高位到低位:

ADPU:控制ATD电源开关,1打开,0关闭;

AFFC:ATD模块标志快速清除位,1表示对结果寄存器的访问将自动清除相应CCF标志位,0表示在访问结果寄存器之前读取状态寄存器1(ATDSTAT1),可以正常清除相应CCF标志位;AWAI:等待模式下ATD电源开关控制位,1表示单片机处于等待模式,A/D转换停止并关闭ATD电源,0表示单片机处于等待模式,A/D转换继续进行;

ETRIGLE:外部触发电平/边沿控制位,和ETRIGP配合使用;

ETRIGP:外部触发极性控制位,00下降沿,01上升沿,10低电平,11高电平;ETRIGE:外部触发模式使能位,1表示允许ATD通道7引脚的外部触发,允许在外部触发信

号到来同时进行采样和转换,0禁止外部触发;

ASCIE:ATD转换序列完成中断标志使能位,1表示当标志位ASCIF=1时,允许ATD序列转换完成后引发中断,0表示禁止中断;

ASCIF:ATD转换序列完成中断标志,ASCIE=1,ASCIF标志等同于SCF标志,写入无效,1表示转换序列完成中断挂起,0表示没有ATD中断发生。

ATD控制寄存器3,ATDCTL3

中止当前A/D转换序列,但不会启动新的A/D转换序列。

从高位到低位:

Bit7=0;

S8C、S4C、S2C、S1C:A/D转换序列长度定义位,0000~1111对应8、1~7;

FIFO:结果寄存器先进先出模式选择位,1表示先进先出,0表示非先进先出;

FRZ1、FRE0:冻结模式的背景调试使能控制位,00继续转换,01未定义,10完成当前转换然后暂停,11立即暂停;

ATD控制寄存器4,ATDCTL4

中止当前A/D转换序列,但不会启动新的A/D转换序列。

从高位到低位:

SRES8:A/D转换精度选择位,1表示8位精度,0表示10位精度;

SMP1、SMP0:采样时间选择位,A/D采样时间包括两个阶段:第一阶段是2个A/D转换时钟周期,采样后通过放大器存储到存储节点,第二阶段为了直接把外部模拟信号连接到存储节点上,实现最终高精度的转换,这两位用来选择第二阶段的采样时间,00~11对应2、4、8、16个A/D转换时钟周期;

PRS4、PRS3、PRS2、PRS1、PRS0:ATD时钟预分频因子选择位,ATDclock=BusClock/(PRS+1)*0.5,最大ATD转换时钟频率为总线周期的1/2,复位后值为5。

ATD控制寄存器5,ATDCTL5

中止当前A/D转换序列,并启动新的A/D转换序列。

从高位到低位:

DJM:结果寄存器数据对齐方式选择位,1表示右对齐,0表示左对齐;

DSGN:结果寄存器数据有无符号选择位,1表示有符号数,只能左对齐,0表示无符号数;SCAN:连续转换序列模式选择位,1表示连续转换序列模式(扫描模式),0表示单词转换序列模式;

MULT:多通道采样模式选择位,0表示单通道采样,通道选择代码:ATDCTL5中的CC、CB、CA,1表示多通道采样,通道数目:ATDCTL3中的S8C、S4C、S2C、S1C;

Bit3=0;

CC、CB、CA:模拟量输入通道选择代码位。

ATD状态寄存器0,ATDSTAT0

SCF:转换序列完成标志位,一次转换序列完成,置位,清零的情况:手动置1,写ATDCTL5,AFFC=1;

Bit6=0;

ETORF:外部触发溢出标志位,1表示发生外部触发溢出错误,0表示未发生,清零的情况:手动置1,写ATDCTL2、ATDCTL3、ATDCTL4,写ATDCTL5;

FIFOR:先入先出溢出标志位,置位,清零的情况:手动置1,启动一个新的转换序列(写ATDCTL5或者外部触发);

Bit3=0;

CC2、CC1、CC0:转换计数器,只读。

ATD测试寄存器1,ATDTEST1

Bit0 SC:特殊通道转换位,1表示允许,0表示禁止

ATD状态寄存器1,ATDSTAT1,只读

CCFx:转换完成标志位,完成转换序列中的某个A/D转换时,置位,转换序列中第1个对应CCF0,转换结果存放在ATDDR0中;

AFFC=0时,读取ATDSTAT1寄存器,然后读取结果寄存器ATDDRx;AFFC=1时,读取结果寄存器ATDDRx。

ATD输入使能寄存器ATDDIEN

IENx:控制从模拟输入引脚(ANx)到PTADx数字寄存器的数字输入缓冲,1表示允许,0表示禁止,为1时,ANx引脚可以也只可作为普通输入口使用。

端口数据寄存器PORTAD

PTADx:A/D转换通道x的数字输入,IENx=1,读取该位返回ANx引脚的逻辑电平值;IENx=0,读取该位返回1,复位时都为1。.

ATD转换结果寄存器ATDDRxH/ATDDRxL

存放方式:左对齐和右对齐(DJM),有无符号数(DSGN)

10位精度,左对齐方式下,转换结果10位数据使用高字节的8位和低字节的高2位存放,结果数据最高位存放在高字节的bit7(bit9 MSB),最低为存放在低字节的bit6,读取是可使用双字节访问方式;

8位精度,左对齐方式下,转换结果8位数据使用高字节的8位存放,结果数据最高位存放在高字节的bit7(bit7 MSB),读取时刻只访问高字节;

10位精度,右对齐方式下,转换结果10位数据使用高字节的低2位和低字节的8位存放,结果数据最高位存放在高字节的bit1(bit9 MSB),最低为存放在低字节的bit0,读取是可使用双字节访问方式;

8位精度,右对齐方式下,转换结果8位数据使用低字节的8位存放,结果数据最高位存放在高字节的bit7(bit7 MSB),读取时刻只访问低字节。

五、ECT模块

16位自由运行计数器时钟源TIMCLK:PCLK,PACLK,PACLK/256,PACLK/65536,PCLK由总线时钟经过一个7位的预分频器得到,分频系数由TSCR2的PR2~PR0决定;

脉冲累加器时钟信号:内部时钟PACLK=ECLK/64;

模数递减计数器MDC时钟源:总线时钟经过4位预分频器提供。

1、自由运行计数器及定时器基本寄存器

定时器系统控制寄存器1,TSCR1

TEN:定时器允许位,1允许,0禁止主定时器;

TSWAI:等待模式下定时器模块停止位,1禁止,0允许;

TSFRZ:冻结模式下定时器和模数计数器停止位,1禁止,0允许;

TFFCA:快速清除定时器所有标志位,1=TFLG1清除CnF,TFLG2清除TOF,PACN3和PACN2清除PAFLG的PAOVF和PAIF,PACN1和PACN0清除PBFLG的PBOVF;0=定时器普通清除方式;

Bit3~bit0=0。

定时器系统控制寄存器2,TSCR2

TOI:定时器溢出中断允许位,1允许,0禁止;

Bit6~bit4=0;

TCRE:定时器计数器复位允许,1允许(若通道7输出比较成功,TCNT自动复位到$0000),0禁止;

PR2、PR1、PR0:定时器预分频器选择位,000~111分别对应1、2、4、8、16、32、64、128。定时器计数寄存器TCNT

16位主定时器是一个递增计数器,不停地对时钟信号TIMCLK进行计数,寄存器TCNT的内容即为计数结果。

主定时器中断标志寄存器2,TFLG2

TOF:主定时器溢出标志,溢出时1,允许中断(TOI=1),则引发溢出中断。

Bit6~bit0=0。

2、ECT模块的输入捕捉功能及寄存器设置

定时器输入捕捉/输出比较选择寄存器TIOS

IOSx:输入捕捉或输出比较通道配置位,1用作输出比较,0用作输入捕捉。

定时器IC/OC寄存器0~7,TC0~TC7

每个IC/OC通道都有一个16位的寄存器。对于IC通道,TCn用于锁存自由运行定时器/计数器的计数值,对于OC通道,TCn用于存放比较值。

定时器输入捕捉保持寄存器0~3,TC0H~TC3H(16位)

TCnH寄存器被用来锁存带缓冲的IC通道的输入捕捉寄存器TC0~TC3的值。

定时器控制寄存器3和4,TCTL3、TCTL4

设置对应通道的输入捕捉极性,EDGnB、EDGnA这8对控制位:输入捕捉边沿控制位:00,捕捉禁止,第n通道的IC功能与输入引脚断开,01上升沿捕捉,10下降沿捕捉,11在任何边沿捕捉;

TCTL4的4对控制位还用来设置8位脉冲累加器PAC0~PAC3;

对于16位脉冲累加器PACB,TCTL4的控制位EDG0B和EDG0A将决定触发的边沿。

延迟计数器控制寄存器DLYCT

Bit7~bit2=0;

DLY1、DLY0:延迟计数器选择位,00禁止延迟(被旁通);01,256个M时钟周期;10,512个M时钟周期;11,1024个M时钟周期。

输入控制覆盖寄存器ICOVW

NOVWx:输入捕捉覆盖允许位,1=不允许,0=当发生新的输入捕捉或锁存动作时,相应的捕捉寄存器或保持寄存器中的内容可以被覆盖。

输入控制系统控制寄存器ICSYS

SHxy(SH37、SH26、SH15、SH04):输入捕捉通道共享动作控制位,1=输入通道x的动作在通道y上产生同样的效果,通道x的边沿检测器和延迟电路同时作用于x、y通道;0=正常操作;

TFMOD:定时器标志置位模式位,1=队列模式下(BUFEN=1&LATQ=0),仅当相应的保持寄存器出现锁存时,TFLG1的C3F~C0F置位,0=端口引脚PTn出现有效输入捕捉跳变时,TFLG1置位。

PACMX:8位脉冲累加计数器最大计数值控制位,1=等于$FF时,饱和,0=正常计数。BUFEN:IC缓冲器允许位,1=输入捕捉保持寄存器和脉冲累加器保持寄存器允许,0=禁止。LATQ:输入控制锁存或队列模式允许位,1=锁存模式,0=队列模式。

定时器中断允许寄存器TIE

C7I~C0I:输入捕捉/输出比较“x”中断允许位,1允许,0禁止

主定时器中断标志寄存器TFLG1

C7F~C0F:输入捕捉/输出比较通道“n”标志位,1=出现有效动作,0=未出现有效动作。3、ECT模块的输出比较功能及寄存器设置

定时器控制寄存器1和2,TCTL1和TCTL2

OMn:输出模式,OLn:输出电平,8对控制位,00=定时器与输出引脚逻辑断开,01=翻转OCn引脚输出电平,10=OCn引脚输出为低电平,11= OCn引脚输出为高电平。

定时器强制输出比较寄存器CFORC

FOC7~FOC0:1=强制输出比较,且立即在引脚PTn上产生预订的输出比较动作,0=禁止。输出比较7屏蔽寄存器OC7M

OC7Mn:1=通道n端口引脚输出受TC7输出比较事件控制,0=不受控制。

输出比较7数据寄存器OC7D

OC7Mn=1,OC7D中的对应位将被传送到定时器端口数据寄存器PORTT中。

定时器溢出触发寄存器1,TTOV

TOVx:1=允许,0=禁止,TOVx=1时,触发出书优先于强制输出,但对通道7无效。

4、ECT模块的脉冲累加器功能及寄存器设置

16位脉冲累加器A控制寄存器PACTL

Bit7=0;

PAEN:脉冲累加器A系统允许位,1允许,0禁止;PEAN与TEN无关;

PAMOD:脉冲累加器模式位,只有PEAN=1时才起作用,1=门控时间累加模式(仅限于16位脉冲累加器A),0=事件计数模式;

PEDGE:脉冲累加器边沿控制位,只有PEAN=1时才起作用;

PAMOD=0,1=对PT7引脚输入信号的上升沿计数,0=下降沿;

PAMOD=1,1=PT7引脚输入的低电平时时钟ECLK/64送到脉冲累加器,在随后的上升沿,置位PAIF标志,0= PT7引脚输入的高电平时时钟ECLK/64送到脉冲累加器,在随后的下降沿,置位PAIF标志。

CLK1、CLK0:时钟选择位,用来选择TIMCLK,00=PCLK,01=PACLK,10=PACLK/256,11=PACLK/65536。

PAVOI:脉冲累加器A溢出中断允许位,1=允许,0=禁止。

PAI:脉冲累加器输入中断允许位,1=允许,0=禁止。

16位脉冲累加器B控制寄存器PBCTL

Bit7=0;

PBEN:脉冲累加器B系统允许位,1允许,0禁止;

Bit5~bit2=0;

PBOVI:脉冲累加器B溢出中断允许位,1允许,0禁止;

Bit0=0。

输入控制脉冲累加器寄存器ICPAR

确定是否允许8位脉冲累加器PAC3~PAC0工作,只有PAEN=0时,才允许8位脉冲累加器PAC3和PAC2单独使用,只有PBEN=0时,才允许PAC1和PAC0单独使用。

Bit7~bit4=0;

PAxEN:8位脉冲累加器x允许位,1允许,0禁止。

脉冲累加器计数寄存器3和2,PACN3/PACN2

反映8位脉冲累加器PAC3、PAC2或16位脉冲累加器A的计数结果,PACN3从FF到00溢出时,PAFLG中的中断标志PAOVF置位。

脉冲累加器计数寄存器1和0,PACN1/PACN0

反映8位脉冲累加器PAC1、PAC0或16位脉冲累加器B的计数结果,PACN1从FF到00溢出时,PBFLG中的中断标志PBOVF置位。

脉冲累加器A标志寄存器PAFLG

Bit7~bit2=0;

PAOVF:脉冲累加器A溢出标志位;

PAIF:脉冲累加器输入边沿标志位,挡在PT7引脚检测到选择的边沿时,置位。

脉冲累加器B标志寄存器PBFLG

Bit7~bit2,bit0=0;

PBVOF:脉冲累加器B溢出标志位。

8位脉冲累加器保持寄存器PA3H~PA0H

PAxEN=1时,用来锁存相应脉冲累加器中的值。

5、ECT模块的模数递减计数器功能及寄存器设置

16位模数递减计数器控制寄存器MCCTL

MCZI:模数计数器下溢中断允许位,1允许,0禁止;

MODMC:模数模式允许位,1循环计数方式,0单次计数方式;在修改MODMC之前,应该清除MCEN位使模数计数器复位到$FFFF;

RDMCL:读模数递减计数器装载值控制位,1=读模数计数寄存器将返回加载寄存器的内容,0=返回计数寄存器当前的值;

ICLAT:输入捕捉强制锁存动作控制位,向该位写0无效,读该位总是返回0;

FLMC:将加载寄存器内容强制加载到模数计数器计数寄存器控制位,只有MCEN=1时才有效,向该位写0无效,读该位总是返回0;

MCEN:模数递减计数器允许位,1允许,0禁止;

MCPR1、MCPR0:模数计数器预分频选择位,只有当加载寄存器的内容装填到模数计数器计数寄存器时,新选择的预分频因子才有效,00=1,01=4,10=8,11=16;

模数递减计数器计数寄存器MCCNT16位

RDMCL=0,返回计数寄存器的当前值,RDMCL=1,返回加载寄存器中的内容;

对MCCNT的写操作要求在MODMC=1时进行,

16位模数递减计数器标志寄存器MCFLG

MCZF:模数计数器向下溢出标志位;

Bit6~bit4=0;

POLF3~POLF0:第一次输入捕捉极性状态位,1=上升沿引发,0=下降沿引发。

六、SCI串口

SCIBDH:

SCIBDL:

SBR12-0:波特率设置位,代表BR 的值,波特率的计算公式为:

当BR 被设置为0 时,波特率发生器被禁止。

SCICR1:

LOOPS:循环选择位,设置为1 表示允许循环操作,设置为0 表示普通状态。SCISWAI:等待模式下SCI 停止位,设置为1 表示等待模式下SCI 被禁止,设置为0表示仍被允许。

RSRC:接收源选择位,当LOOPS 被设置为1 时,RSRC 设置为1 表示接收输入端与发送端外部连接,设置为0 表示接收输入端与发送端内部连接。

下表是LOOPS 与RSRC 两位的状态表:

M:数据格式模式位,设置为1 表示有1 位起始位,9 位数据位,1 位停止位,设置为0 表示有1 位起始位,8 位数据位,1 位停止位。

WAKE:唤醒条件位,设置为1 表示由Address mark 唤醒,设置为0 表示由Idle line 唤醒。ILT:空闲线模式位,置1 表示空闲计数从停止位开始,置0 表示空闲计数从起始位开始。PE:奇偶校验选择位,置1 表示允许插入奇偶校验位,置0 禁止。

PT:奇偶校验形式位,置1 表示为奇校验,置0 表示为偶校验。

SCICR2:

TIE:传输中断选择位,置1 表示允许中断,置0 表示禁止中断。

TCIE:传输完成中断选择位,置1 表示允许中断,置0 表示禁止中断。

RIE:接收寄存器满中断选择位,置1 表示允许中断,置0 表示禁止中断。

ILIE:空闲线中断选择位,置1 表示允许中断,置0 表示禁止中断。

TE:传输发送允许位,置1 表示允许传输发送,置0 表示禁止。

RE:接收允许位,置1 表示允许接收,置0 表示禁止。

RWU:接收唤醒位,设置为1 表示普通操作,设置为0 表示允许唤醒操作且在此期间禁止接收中断请求,实验时设置为1 即可。

SBK:发送断点位,置1 表示发送断点特征,置0 表示不发送。

SCISR1:

TDRE:发送数据寄存器空标志位,状态为1 表示数据已送到发送寄存器中,状态为0表示发送寄存器为空.

TC:发送完成位,状态为1 表示没有发送进程,状态为0 表示正在发送。

RDRF:接收数据寄存器满标志位,状态为1 表示接收寄存器中数据可用,状态为0 表示数

据寄存器中没有数据。

IDLE:空闲线标志位,状态为1 表示接收端空闲,状态为0 表示接收端正在活动。

OR:Overrun 位,状态为1 表示有过运行情况发生,状态为0 表示没有。实验中用不到。NF:噪声标志位,状态为1 表示数据中有噪声,状态为0 表示没有。

FE:,帧错误标志位,状态为1 表示有帧错误发生,状态为0 表示没有。

PF:奇偶错误标志位,状态为1 表示有错误发生,状态为0 表示没有。

SCISR2:

BRK13:中断传输特征长度位,置1 表示13 或14 位的长度,置0 表示10 或11 位的长度。TXDIR:单方向状态下TxD 引脚方向位,置1 表示TxD 作为输出端,置0 表示作为输入端。RAF:接收器活动标志位,状态为1 表示有接收进程,状态为0 表示没有接收进程。SCIDRH:

SCIDRL:

这两个寄存器是数据寄存器,R 表示接收,T 表示发送,T8,R8 的有效与否与SCICR1里的M 有关,当M 置1 时有效,M 置0 则无效。

注意:(其他特殊情况除外)

1、尺寸和公差按照ASME Y14.5M(1994)标准阐述。希望供应商理解并遵从标准中所描述的公差,并应用到此次绘图中。

2、材料:CRS C1008 1/8H

光亮镀锡,最小厚度2.5um,可接受的预镀层材料厚度:0.300mm

3、最大允许毛刺:0.05mm

4、整个表面平坦度不超过0.20

5、部分无需制造润滑

飞思卡尔单片机LED控制例程详解

我的第一个LED程序 准备工作: 硬件:Freescale MC9S08JM60型单片机一块; 软件:集成开发环境codewarrior IDE; 开发板上有两个LED灯,如下图所示: 实验步骤: 1.首先,确保单片机集成开发环境及USBDM驱动正确安装。其中USBDM的安装步骤如下:?假设之前安装过单片机的集成开发环境6.3版本:CW_MCU_V6_3_SE; ?运行USBDM_4_7_0i_Win,这个程序会在c盘的程序文件夹下增加一个目录C:\Program Files\pgo\USBDM 4.7.0,在这个目录下: 1〉C:\ProgramFiles\pgo\USBDM 4.7.0\FlashImages\JMxx下的文件 USBDM_JMxxCLD_V4.sx是下载器的固件文件; 2〉C:\Program Files\pgo\USBDM 4.7.0\USBDM_Drivers\Drivers下有下载器的usb 驱动 所以在插入usb下载器,电脑提示发现新的usb硬件的时候,选择手动指定驱动 安装位置到以上目录即可。 ?运行USBDM_4_7_0i_Win之后,还会在目录: C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.3\prog\gdi 下增加一些文件,从修改时间上来看,增加了6个文件,这些文件是为了在codewarrior 集成开发环境下对usb下载器的调试、下载的支持。

2.新建一个工程,工程建立过程如下: ?运行单片机集成开发环境codewarrior IDE ?出现如下界面 ●Create New Project :创建一个新项目工程 ●Load Example Project :加载一个示例工程 ●Load Previous Project :加载以前创建过的工程 ●Run Getting started Tutorial:运行CodeWarrior软件帮助文档 ●Start Using CodeWarrior:立刻使用CodeWarrior ?点击Create New project按钮,以创建一个新的工程,出现选择CPU的界面 如下,请选择HCS08/HCS08JM Family/MC9S08JM60,在右边的Connection窗口

飞思卡尔单片机问题总结

飞思卡尔单片机问题总结 常见问题回答精华列表 为了方便网友查询相关问题,特将常见问题精华帖整理归类 本帖不断更新,欢迎网友们给出建议 另外,在提问时,请在标题中选用具体问题的字眼避免使用请问某某、请教、紧急求助等作为标题。对于具体器件,可以直接把器件类型写上,比如HC08QY4等;对于具体技术,比如CAN/LIN/ZigBee等也直接写明,便于版主分类回答,也便于其他网友查询。 一、flash/EEPROM的操作 Tips: a、HC08系列MCU中,很多Monitor ROM中固化了对flash操作的函数,用户只需调用即可,参考AN2874等应用笔记 b、HCS08系列和HCS12系列MCU对flash的操作十分类似,可以参考 AN2140 1、FLASH操作函数 (HCS08系列)

https://www.sodocs.net/doc/c25610836.html,/dispbbs.asp?boardID=3&RootID=111907&ID= 111907 2、如何将flash中的程序copy至ram中 https://www.sodocs.net/doc/c25610836.html,/dispbbs.asp?boardID=3&RootID=104074&ID= 104074 3、S12内部寄存器的映射 https://www.sodocs.net/doc/c25610836.html,/dispbbs.asp?boardID=3&RootID=103261&ID= 103261 4、S12EEPROM的使用、 INITRG,INITRM,INITEE寄存器的说明https://www.sodocs.net/doc/c25610836.html,/dispbbs.asp?boardID=3&RootID=102260&ID= 102260 5.INITRM寄存器的使用 https://www.sodocs.net/doc/c25610836.html,/dispbbs.asp?boardID=3&RootID=103214&ID= 103214 二、编程技巧

飞思卡尔锁相环

备战飞思卡尔智能车大赛.开始模块总结. 锁相环设置. 公式: PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1), fbus=PLLCLK/2 void INIT_PLL(void) { CLKSEL &= 0x7f; //选用外部时钟.准备设置锁相环 PLLCTL &= 0x8F; //禁止锁相环 SYNR = 0xc9; //设置SYNR REFDV = 0x81; //设置REFDV PLLCTL |=0x70; //锁相环使能 asm NOP; asm NOP; //两个机器周期缓冲时间 while(!(CRGFLG&0x08)); //等待锁相环锁定 CLKSEL |= 0x80; //设置锁相环为时钟源 } 飞思卡尔XS128的PLL锁相环详细设置说明——关于如何提高总线工作频率PLL锁相环就相当于超频 单片机超频的原因和PC机是个一道理。分频的主要原因是外设需要的工作频率往往远低于CPU/MEMORY 这也和PC机南北桥的原理类似。总线频率设置过程 1、禁止总中断 2、寄存器CLKSEL(时钟选择寄存器)的第七位置0 即CLKSEL_PLLSEL=0。选择时钟源为外部晶振OSCCLK(外接晶振频率) 在PLL(锁相环)程序执行前 内部总线频率为OSCCLK/2 3. PLLCTL_PLLON=1 打开PLL 4.设置SYNR 时钟合成寄存器 、REFDV 时钟分频寄存器 、POSTDIV三个寄存器的参数 5、_asm(nop) _asm(nop);加入两条空指令 使锁相环稳定 6、while(!(CRGFLG_LOCK==1));//时钟校正同步 7、CLKSEL_PLLSEL=1; 下面详细说一下频率的计算一、时钟合成寄存器SYNR寄存器结构 VCOFRQ[1:0]控制压控振动器VCO的增益 默认值为00 VCO的频率与VCOFRQ[1:0]对应表

飞思卡尔单片机寄存器及汇编指令详解

附录I:寄存器地址列表 直接页面寄存器总结

高页面寄存器总结

非易失寄存器总结 注:直接页面寄存器表地址的低字节用粗体显示,直接寻址对其访问时,仅写地址低字节即可。第2列中寄存器名用粗体显示以区别右边的位名。有0的单元格表示未用到的位总是读为0,有破折号的单元格表示未用或者保留,对其读不定。

附录II 指令接与寻址方式 HCS08指令集概括 运算符 () = 括号种表示寄存器或存储器位置的内容 ← = 用……加载(读: “得到”) & = 布尔与 | = 布尔或 ⊕= 布尔异或 ×= 乘 ÷ = 除 : = 串联 + = 加 - = 求反(二进制补码) CPU registers A =>累加器 CCR =>条件代码寄存器 H =>索引寄存器,高8位 X => 索引寄存器,低8位 PC =>程序计数器 PCH =>程序计数器,高8位 PCL =>程序计数器,低8位 SP =>堆栈指针 存储器和寻址 M =>一个存储区位置或者绝对值数据,视寻址模式而定 M:M + 0x0001 => 两个连续存储位置的16位值.高8位位于M的地址,低8位位于更高的连续地址. 条件代码寄存器(CCR)位 V => 二进制补码溢出指示,第7位 H => 半进位,第4位 I => 中断屏蔽,第 3位 N => 求反指示器, 第2位 Z => 置零指示器, 第1位 C => 进/借, 第0位 (进位第 7位 ) CCR工作性符号 – => 位不受影响 0 = > 位强制为0 1 = > 位强制为1

= >根据运算结果设置或清除位 U = > 运算后没有定义 机器编码符号 dd =>一个直接寻址0x0000–0x00FF的低8位(高字节假设为0x00) ee => 16位偏移量的高8位 ff => 16位偏移量的低8位 ii => 立即数的一个字节 jj => 16位立即数值的高位字节 kk => 16位立即数值的低位字节 hh => 16位扩展寻址的高位字节 ll => 16位扩展寻址的低位字节 rr => 相对偏移量 n —任何表达范围在0–7之间的一个有符号数的标号或表达式 opr8i —任何一个表达8位立即值的标号或表达式 opr16 —任何一个表达16位立即值的标号或表达式 opr8a —任何一个表达一个8位值的标号或表达式.指令对待这个8位值为直接页面64K 字节地址空间(0x00xx)中地址的低8位. opr16a —任何一个表达16位值的标号或表达式.指令对待这个值为直接页面64K字节地址空间. oprx8 —任何一个表达8位无符号值的标号或表达式,用于索引寻址. oprx16 —任何一个16位值的标号或表达式.因为HCS08有一个16位地址总线,这可以为一个有符号或者无符号值. rel —任何指引在当前指令目标代码最后一个字节之后–128 to +127个字节之内的标号或表达式.汇编器会计算包括当前指令目标代码在内的8位有符号偏移量. 寻址方式 隐含寻址(Inherent)如CLRA,只有操作码,无操作数,需要操作的数据一般为CPU寄存器,因此不需要再去找操作数了。(INH) 立即寻址 (Immediate)如LDA #$0A,“$”表示16进制,此时操作数位于FLASH空间,与程序一起存放。(IMM) 直接寻址 (Direct)如 LDA $88,只能访问$0000-$00FF的存储器空间,指令短速度快; (DIR) 扩展寻址 (Extended)如果操作数地址超出了$00FF,自动为扩展寻址;(EXT) 相对寻址(Relative)如BRA LOOP,指令中一般给出8位有符号数表示的偏移量。(REL) 变址寻址 (Indexed) 采用[H:X]或SP作为指针的间接寻址方式。( IX )( IX1 )( IX2 ) 变址寻址 (Indexed) 1〉无偏移量:CLR ,X 简写(IX) 2〉无偏移量,指令完成后指针加1(H:X = H:X + 0x0001) ,简写(IX+)只用于指令MOV和CBEQ指令中;

飞思卡尔单片机编程

关于Codewarrior 中的 .prm 文件 网上广泛流传的一篇文章讲述的是8位飞思卡尔单片机的内存映射,这几天,研究了一下Codewarrior 5.0 prm文件,基于16位单片机MC9S12XS128,一点心得,和大家分享。有什么错误请指正。 正文: 关于Codewarrior 中的.prm 文件 要讨论单片机的地址映射,就必须要接触.prm文件,本篇的讨论基于Codewarrior 5.0 编译器,单片机采用MC9S12XS128。 通过项目模板建立的新项目中都有一个名字为“project.prm”的文件,位于Project Settings->Linker Files文件夹下。一个标准的基于XS128的.prm文件起始内容如下: .prm文件范例: NAMES END SEGMENTS RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF;

READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; EEPROM_04 = READ_ONLY DATA_FAR IBCC_FAR 0x040800 TO 0x040BFF; EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF;

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤w

飞思卡尔16位单片机MC9S12XS128加密(程序下载不进去,正负极未短路,通电芯片不发烫)后解锁的方法及步骤 /*****************************************************************************/ *本人用此法成功解救了4块板子【窃喜!】,此说明是本人边操作边截图拼成的,有些是在别的说明上直接截图【有些图本人不会截取,就利用现成的了,不过那也是本人用豆和财富值换来的】,表达不清之处还望见谅,大家将就着看吧!如能有些许帮助,我心甚慰!!! ————武狂狼2014.4.23 /*****************************************************************************/ 编译软件:CW5.1版本,下载器:飞翔BDMV4.6 【1】,连接好单片机,准备下载程序,单击下载按钮出现以下界面 或 (图1.1) 图 1.1——4中所有弹出窗口均单击“取消”或红色“关闭”按钮依次进入下一界面

(图1.2) (图1.3)

(图1.4) ******************************************************************************* ******************************************************************************* 【2】单击出现如下图所示下拉列表,然后单击 (图2.1) 出现下图(图2.2)对话框,按下面说明操作 (图2.2)

飞思卡尔单片机知识点

1、单片机组成:1> CPU 2> 存储器3>I/O ; 2、存储器包括2大类:ROM , RAM 3、标准ASCII码使用(1)个字节表示字符; 4、BCD码是用()进制表示的()的数据; 5、HCS08QG8的最小系统包括(电源电路,复位电路,下载口,(内部时钟)); 6、QG8管脚数量(16)、只能输入的是(PTA5)、只能输出的是(PTA4)、程序下载的是、接外部时钟的是; 7、QG8的管脚可以作为数字输入输出、也可以作为模拟输入,可以作为模拟输入的有(); 8、QG8管脚复用优先级最低的功能是(I/O); 9、QG8存储器配置中,不同资源的分界线……; 10、CPU寄存器有(A, HX, PC, CCR, SP); 11、可以执行位操作的地址范围(0X0000~0X005F); 12、有地址的寄存器分成了(3)块(0页,高页,非易失); 13、如何在C语言中定义常数(数据类型变量名;),如何指定变量的地址(数据类型变量名@ 地址;); 14、堆栈的管理者是寄存器(SP); 15、SP的复位缺省值是(0X00FF); 16、堆栈对数据的操作特点是(向上生长型:先压后涨、先减后弹); 17、堆栈一般在RAM的高地址区域还是低地址区域?高地址区 18、内部时钟源包括哪4大部分? 19、外部时钟分哪2大类;振荡器,整形外部时钟 20、内部时钟中FLL固定倍频(512倍频); 21、ICS的7种工作模式(FEI, FEE, FBI, FBILP, FBE, FBELP, stop); 22、ICS的内部参考时钟是可以校准、微调的,调整的寄存器名(ICSTRM);该寄存器的数值越大,输出时钟频率越(低); 23、FLASH是按页管理的,页大小(512)字节,每页分(8)行; 24、高页寄存器位于FLASH的最后一页的(第六行/0xFFB0~0xFFBF)位置; 25、FLASH的最后一页最后一行是(中断向量); 26、FLASH块保护寄存器(FPROT);块加密寄存器(FOPT);对应的非易失寄存器分别是(NVOPT, NVPROT); 27、FLASH操作的一般过程是(); 28、FLASH操作的有效命令有(空检查,字节编程,突发模式编程,页擦除,全部ROM 擦除); 29、记录程序运行状态的CPU寄存器是(CCR); 30、指令系统包括6大类指令,分别是(算术运算指令、数据传送指令、数据和位操作、逻辑运算、程序控制、堆栈处理); 31、寻址方式是指(CPU访问操作数和数据的方法); 32、寻址方式包括7大类16种,分别是: INH IMM DTR EXT IX,IX1,IX2,SP1,SP2,IX+,IX1+ REL IMD, DD,IX+D,DIX+ 33、8指令模板和6指令模板分别是(); 34、QG8是高电平复位还是低电平复位?低电平 35、QG8数据存储器RAM的大小为(512)字节; 36、上电复位期间将管脚(A4)设置为(低)电平可以进入调试模式 37、QG8的存储器结构为冯·诺伊曼还是哈佛结构?冯诺依曼

基于飞思卡尔单片机的智能汽车设计毕业设计(论文)

基于飞思卡尔单片机的智能汽车设计 摘要 本智能车系统设计以 MC9S12DG128B 微控制器为核心,通过一个CMOS 摄像头检测模型车的运动位置和运动方向,使用LM1881视频分离芯片对图像进行处理,用光电传感器检测模型车的速度并使用PID 控制算法调节驱动电机的转速和舵机的方向,完成对模型车运动速度和运动方向的闭环控制。为了提高智能车的行驶速度和可靠性,采用了自制的电路板,在性能和重量上有了更大的优势,对比了各种方案的优缺点。实验结果表明,系统设计方案可行 关键词:MC9S12DG128,CMOS 摄像头,PID

The Research of Small and Medium-sized Electric Machines in Fuan City Author:Yao fang Tutor:Ma shuhua Abstract Fujian Fuan City industry of electric motor and electrical equipment is the one of the most representative phenomenon of industry cluster in Fujian Province mechanical industry. Its output value of small and medium-sized electric machines accounts for 20% of the whole province’s electrical equipment indu stry. The output amount of small and medium-sized electric machines from this region takes up 1/3 of that of the whole nation. Fuan electric motor and electrical equipment industry plays a significant role in the development of local national economy, being considered to be the main growth point of local economy and called "the Chinese electric motor and electrical equipment city ". This paper launched a research on small and medium- sized electric machines in Fuan city from two angles. The first one inferred the situation of Fuan electric machine industrial cluster as well as the analysis of the temporary existed problems, and then propose a few of suggestions on the part of local government. The second part focus on the improvement of the competitiveness of Fuan electric machine enterprises, through the application of Michael Porter's Five Forces Model into the local industry of electric machine, consequently carried out some strategies local enterprises should take. Key Words: small and medium-sized electric machines, Five Forces Model, industrial cluster

飞思卡尔MC9S12XS128单片机中断优先级设置简易教程

本教程试图用最少的时间教你飞思卡尔XS128单片机的中断优先级设置方法和中断嵌套的使用,如果是新手请先学习中断的基本使用方法。 先来看看XS128 DataSheet 中介绍的相关知识,只翻译有用的: 七个中断优先级 每一个中断源都有一个可以设置的级别 高优先级中断的可以嵌套低优先级中断 复位后可屏蔽中断默认优先级为1 同一优先级的中断同时触发时,高地址(中断号较小)的中断先响应 注意:高地址中断只能优先响应,但不能嵌套同一优先级低地址的中断 下面直接进入正题,看看怎么设置中断优先级: XS128中包括预留的中断一共有128个中断位,如果为每个中断都分配一个优先级寄存器的话会非常浪费资源,因此飞思卡尔公司想出了这样一种办法:把128个中断分为16个组,每组8个中断。每次设置中断时,先把需要的组别告诉某个寄存器,再设置8个中断优先寄存器的某一个,这样只需9个寄存器即可完成中断的设置。 分组的规则是这样的:中断地址位7到位4相同的中断为一组,比如MC9SX128.h中 这些中断的位7到位3都为D,他们就被分成了一组。0~F正好16个组。

INT_CFADDR就是上面说到的用来设置组别的寄存器: 我们需要设置某个组别的中断时,只要写入最后8位地址就行了,比如设置SCI0的中断优先级,就写入0xD0。 设置好组别之后,我们就要该组中相应的中断进行设置,设置中断的寄存器为 这其实是一组寄存器,一共有8个,每个都代表中断组中的一个中断。对应规则是这样的:中断地址的低四位除以2 比如还是SCI0,低四位是6,除以二就是3,那么我们就需要设置INT_CFDATA3 往INT_CFDATAx中写入0~7就能设置相应的中断优先级了 拿我本次比赛的程序来举个例子:我们的程序中需要3个中断:PIT0,PORTH,SCI0。PIT0定时检测传感器数值,PORTH连接干簧管进行起跑线检测,SCI0接收上位机指令实现急停等功能。因此中断优先级要SCI0>PORTH>PIT0。 我们先要从头文件中找出相应中断的地址: PIT0【7:4】位为7,选择中断组: INT_CFADDR=0x70;

飞思卡尔16位单片机的资源配置

以MC9S12XS128MAL为例,其实DG128之类的类似。如图一,128代表的是单片机中的FLASH大小为128K Byte,同理64代表的是单片机中的FLASH大小为64 K Byte,256代表的是单片机中的FLASH大小为256 K Byte。但是S12(X)所使用的内核CPU12(X)的地址总线为16位,寻址范围最大为2^16 =64K Byte,而这64K Byte的寻址空间还包括寄存器、EEPROM (利用Data Flash模拟)、RAM等,因此不是所有的64K Byte都是用来寻址FLASH。所以在S12(X)系列单片机中,很多资源是以分页的形式出现的,其中包括EEPROM、RAM、FLASH。EEPROM的每页大小为1K Byte,RAM的每页大小为4K Byte,FLASH的每页大小为16K Byte。因此XS128中EEPROM的页数为8K/1K = 8页,RAM的页数为8K/4K = 2页,Flash的页数为128K/16K = 8页。 图一

图二

在单片普通模式中,复位后,所有内存资源的映射如图二所示,其中从0x0000-0x07FF 的2K范围内映射为寄存器区,如I/O端口寄存器等,当然寄存器没有那么多,后面的一部分其实没有使用; 从0x0800-0x0BFF,共1K的空间,映射为EEPROM区,由上面的分析,XS128中共有8页的共8K的EEPROM,所以这8页的EEPROM都是以分页的形式出现的,可以通过设置寄存器EPAGE选择不同的页并进行访问; 从0x0C00到0x0FFF的1K空间为保留区(其实这里面也有学问,以后探讨); 从0x1000到0x3FFF的12K空间为RAM区,分为三页,但是和前面所说的EEPROM不同,这三页中有2页(对于XS128和XS256)或一页(对于XS64)为固定页,位于12K空间的后一部分,以XS128为例,其内部的RAM资源为8K,所以其三页中的最后两页(0x2000-0x3FFF)为固定页,第一页(0x1000-0x1FFF)为窗口区,通过设置寄存器RPAGE来映射其他分页的RAM,当然在单片普通模式下,XS128内部已经没有其他的RAM了,所以这一页其实也没有用。但是对于XS256,这一页是有用的,因为它总共有12K的RAM。但是,在单片普通模式下,即没有外扩RAM的情况下,用户是不用刻意的去配置RPAGE的,因为复位的时候,已经默认指向那一页的RAM。 从0x4000-0xFFFF的总共48K的空间为Flash区,分为三页。其中第一页和第三页为固定的Flash页,中间的一页(0x8000-0xBFFF)为窗口区,通过设置PPAGE寄存器,可以映射到其他的分页Flash。 在最后的一页固定的Flash区域中的最后256字节中,保存的是中断向量。 对于RAM和Flash来说,其实固定页和其他的分页资源是统一编址的,不同的是固定

飞思卡尔寄存器整理

S12的输入/输入端口(I/O口) I/O端口功能 可设置为通用I/O口、驱动、内部上拉/下拉、中断输入等功能。 设置I/O口工作方式的寄存器有: DDR、IO、RDR、PE、IE和PS。 DDR:设定I/O口的数据方向。 IO :设定输出电平的高低。 RDR:选择I/O口的驱动能力。 PE:选择上拉/下拉。 IE:允许或禁止端口中断。 PS:1、中断允许位置位时,选择上升沿/下降沿触发中断;2、中断禁止时且PE有效时,用于选择上拉还是下拉。 I/O端口设置 1、A口、B口、E口寄存器 (1)数据方向寄存器DDRA、DDRB、DDRE DDRA、DDRB、DDRE均为8位寄存器,复位后其值均为0。 当DDRA=0、 DDRB=0、 DDRE=0 时A口、B口和E口均为输入口。 否则,A口、B口、E口为输出口。当DDRA、DDRB、DDRE的任何一位置1时,则该位对应的引脚被设置为输出。 例如,将A口设置为输出口,则其C语言程序的语句为:DDRA=0xff; (2)A口、B口、E口上拉控制寄存器PUCR PUCR为8位寄存器,复位后的值为0。当PUPAE、PUPBE、PUPEE被设置为1时,A口、B口、E口具有内部上拉功能;为0时,上拉无效。当A口、B 口、E口为地址/数据总线时,PUPAE和PUPBE无效。 (3)A口、B口、E口降功率驱动控制寄存器RDRIV RDRIV为8位寄存器,复位后的值为0,此时,A口、B口、E口驱动保持全功率;当RDPA、RDPB、RDPE为1时, A口、B口、E口输出引脚的驱动功率下降 (4)数据寄存器PORTA、PORTB、PORTE PORTA、PORTB、PORTE均为8位寄存器,复位后的值为0,端口引脚输出低电平;要使引脚输出高电平,相应端口对应位应该置1。 由于PE0是/XIRQ、PE1是IRQ,因此,PE0和PE1只能设置为输入。

飞思卡尔单片机优点

常有人问freescale的单片机有什么优点,今天转篇别人写的文章来,可以部分回答这些朋友的问题,但需要说明的是下面这篇文章主要是针对S08,S12这类单片机说的,飞思卡尔处理器远非只是单片机。飞思卡尔(freescale)半导体公司,就是原来的Motorola公司半导体产品部。于2004年从Motorola分离出来,更名为freescale!freescale系列单片机采用哈佛结构和流水线指令结构,在许多领域内都表现出低成本,高性能的的特点,它的体系结构为产品的开发节省了大量时间。此外freescale提供了多种集成模块和总线接口,可以在不同的系统中更灵活的发挥作用!所有单片机都具有的功能我就不多说了,freescale单片机的特有的特点如下: (1)全系列: 从低端到高端,从8位到32位全系列应有尽有,最近还新推出8位/32位管脚兼容的QE128,可以从8位直接移植到32位,弥补单片机业界8/32 位兼容架构中缺失的一环! (2)多种系统时钟模块:三种模块,七种工作模式 多种时钟源输入选项,不同的mcu具有不同的时钟产生机制,可以是RC振荡器,外部时钟或晶振,也可以是内部时钟,多数CPU同时具有上述三种模块!可以运行在FEI,FEE,FBI,FBILP,FBE,FBELP,STOP这七种工作模式! (3)多种通讯模块接口: 与其它系列的单片机不同,freescale单片机几乎在内部集成各种通信接口模块:包括串行通信接口模块SCI,多主I2C总线模块,串行外围接口模块SPI,MSCAN08控制器模块,通用串行总线模块(USB/PS2)! (4)具有更多的可选模块:某些MCU具有LCD驱动模块,某些MCU带有温度传感器,某些MCU具有超高频发送模块,部分MCu含有同步处理器模块,某写含有同步处理器的MCU 还具有屏幕显示模块OSD,还有少数的MCU具有响铃检测模块RING和双音多频/音调发生器DMG模块! (5)可靠性高,抗干扰性强 (6)低功耗 也许freescale系列的单片机的功耗没有msp430的低,但是他具有全静态的“等待”和“停止”两种模式,从总体上降低您的功耗!新近推出的几款超低功耗已经与msp430的不相上下! (7)多种引脚数和封装选择 可以说freescale系列单片机具有的MCU种类是最多的了,有些MCU本身就有几种不同的引脚数和封装形式,这样用户各异根据需要来选择,总有一款适合你的开发的单片机! 有关于部分人的freescale单片机模块寄存器多,配置困难不容易上手,可以说freescale单片机模块寄存器的确相对多,就拿GPIO来说就有端口数据寄存器、端口数据方向寄存器、端口内部上拉使能寄存器、端口转换率使能寄存器和端口驱动强度选择寄存器5个寄存器,它的寄存器多是为了解决客户对IO端口的高要求和高可靠性要求,如果不考虑这些,您就只需要配置端口数据寄存器、端口数据方向寄存器这两个寄存器,这就和其他的单片机如430和pic 的难易度一样了! 独有的BDM仿真开发方式和单一引脚用于模态选择和背景通信,HCS08 的开发支持系统包括了背景调试控制器(BDC)和片内调试模块(DBG),BDC提供了一个至目标MCU 的单线调试接口,也就是提供了一个便于在片内FLASH 或其它固定存储器编程的接口.

飞思卡尔单片机外设模块寄存器翻译

PIT 模块译: 翻译来自MC9S12X128英文原文PDF.P347-P357 PIT 块结构图: PIT0中断向量66, 1->67, 2->68, 3->69 PIT 相关寄存器详解: 1、 PITCFLMT :寄存器基本控制和基本时钟加载控制寄存器(8位) 1:PIT 使能 PITSWAI: 0:等待模式下仍然工作 1:等待模式下不工作 PITFRZ: 0:冻结模式下仍然工作 1:冻结模式下不工作 PFLMT1: 写1强制加载基本定时计数器1,写0无效,读也总为0 PFLMT0: 同PFLMT1 2、 PITFLT :PIT 计数器强制加载定时器寄存器(8位)

PFLT[3:0]写1相对应的16位计数寄存器会立即载入相对应的16位计数加载寄存器(PITLDn)中的值。 3、PITCE:PIT通道使能存器(8位) PCE[3:0]:如果PITE已经使能,对寄存器PCEn写1后,每输入一个时钟相对应的计数寄存器 开始递减,写0无效。 4、PITMUX:PIT基本时钟通道选择寄存器(8位) PMUX[3:0]:对PMUXn写1,则对应定时器通道选择基本时钟1作为输入,写0则选择基本时 钟0为输入。 5、PITINTE:PIT定时中断使能寄存器(8位) PINTE[3:0]:对PINTEn写1,当相对应的计数寄存器和基本计数寄存器归0时,产生中断请求,否则无效。 6、PITTF:PIT时钟输出标志寄存器(8位)

7、PITMTLD0-1:PIT基本时钟计数器预加载寄存器(8位) 会被加载到基本定时器n,无论什么时刻PFLMTn置“1”会立即更新基本定时器寄存器的值. 8、PITLD0–3:PIT0-3计数器预加载寄存器(16位) PITLD0-3的值用来加载到相对应计数器0-3的寄存器中。当相应通道计数器归零时,或PITFLT寄存器中相应的强制加载位置“1”时,PITLDn中的值将会被立即加载到PITCNTn。 9、PITCNT0–3:PIT0-3计数寄存器(16位) 变计数周期。

飞思卡尔单片机 DG128 Timer寄存器说明

Timer寄存器说明 1、定时器/计数器系统控制寄存器1(TSCR1) TSCR1 寄存器是定时器模块的总开关,它决定模块是否启动以及在中断等待、BDM 方式下的行为,还包括标志的管理方式。其各位的意义如下: TEN:定时器使能位,此外它还控制定时器的时钟信号源。要使用定时器模块的IC/OC 功能,必须将TEN 置位。如果因为某种原因定时器没有使能,脉冲累加器也将得不到ECLK/64 时钟,因为ECLK/64 是由定时器的分频器产生的,这种情况下,脉冲累加器将不能进行引脚电平持续时间的累加。 0:定时器/计数器被禁止,有利于降低功耗。 1:定时器/计数器使能,正常工作。 TSWAI:等待模式下计时器关闭控制位。 【注意】定时器中断不能用于使MCU 退出等待模式。 0:在中断等待模式下允许MCU 继续运行。 1:当MCU 进入中断等待模式时,禁止计时器。 TSFRZ:在冻结模式下计时器和计数器停止位。 0:在冻结模式下允许计时器和计数器继续运行。 1:在冻结模式下禁止计时器和计数器,用于仿真调试。 【注意】TSFRZ 不能停止脉冲累加。 TFFCA:定时器标志快速清除选择位。 0:定时器标志普通清除方式。 1:对于TFLGl($0E)中的各位,读输入捕捉寄存器或者写输出比较寄存器会自动清除相应的标志位CnF。对于TFLG2($0F)中的各位,任何对TCNT 寄存器($04、$05)的访问均会清除TOF 标志;任何对PACN3 和PACN2 寄存器($22,$23)的访问都会清除PAFLG 寄存器($21)中的PAOVF 和PAIF 位。任何对PACN1 和PACN0 寄存器($24,$25)的访问都会清除PBFLG 寄存器($21)中的PBOVF 位。 【说明】这种方式的好处是削减了另外清除标志位的软件开销。此外,必须特别注意避免对标志位的意外清除。 2、计时器系统控制寄存器2(TSCR2) 寄存器偏移量:$000D

基于飞思卡尔单片机自动循迹小车控制的设计

摘要 随着我国的电子科技的不断发展,我们生活中的自动化设备越来越多,也为嵌入式在智能化上的研究提供了一个广阔的平台。 本系统以MK60DN512VMD100微控制器为核心控制单元,选用OV7620 CMOS 模拟摄像头检测赛道信息,高速AD转换芯片选用TCL5510,将提取后的灰度图像进行软件二值化,进而提取赛道信息;用光电编码器实时检测小车的实时速度,采用PID控制算法调节电机的速度以及舵机转向,从而实现速度和方向的闭环控制。 关键字:MK60DN512VMD100,OV7620 CMOS,软件二值化,PID

Abstract With the continuous development of electronic technology, more and more automation equipment into the production life of the people, the rapid development of embedded intelligent study provides a broader platform. In this paper, the design of intelligent vehicle system MK60DN512VMD100 microcontroller as the core control unit, the selection of OV7620 CMOSanalog cameras to detect the track information, to using TCL5510 high-speed AD converter chip, software binarization image, extract the white guide line for identification of the track information; optical encoder to detect the real-time speed of the model car, using the PID control algorithm to adjust the speed of the drive motor and steering the angle of the steering gear, in order to achieve closed-loop control of velocity and direction of the model car. Keywords: MK60DN512VMD100,OV7620 CMOS,software binarization, PID

飞思卡尔MC9S12XET256 SCI串口寄存器说明

串口寄存器说明 该模块指南提供了串行通信接口(SCI)模块概述。 SCI的允许与外围设备和其他CPU异步串行通信。 1.1 SCI包括这些特征: ?全双工或单线运行 ?标准标记/空间不归零(NRZ)格式 ?可选的IrDA1.4返回到零倒置(RZI)与可编程脉冲宽度格式 ?13位的波特率选择 ?可编程8位或9位数据格式 ?分别使能发射机和接收机 ?可编程极性对发射机和接收机 ?可编程发送器输出校验 ?两个接收器唤醒的方法: -唤醒空闲线 - 地址标志唤醒 ?中断驱动的操作有八个标志: -发送器空 - 传输完成 - 接收器满 - 空闲接收器输入 - 接收器溢出 -噪声误差 -帧错误 - 奇偶错误 - 接收有效边缘唤醒 - 发送冲突检测支持LIN -间隔检测支持LIN ?接收帧错误检测 ?硬件奇偶校验 ?1 / 16位时间噪声检测 1.2 操作模式 SCI的功能相同在正常、特殊和仿真模式。它有两种低功耗模式,等待和停止模式。 ?运行模式 ?等待模式 ?停止模式 1.3 寄存器说明 1、波特率控制寄存器(SCIBDH、SCIBDL) SCIBDH和SCIBDL一起构成了一个16位的波特率控制寄存器。SBR12~~SBR0为波特率常数。

IREN:红外调制模式使能位 1 使能 0 禁止 TNP[0..1]:窄脉冲发射位,这些位使能SCI是否能发送一个1 / 16,3 /16,1/ 32或1 / 4的窄脉冲。见表20-3。 SBR[0..12]:波特率设置位 When IREN = 0 then, SCI baud rate = SCI bus clock / (16 x SBR[12:0]) When IREN = 1 then, SCI baud rate = SCI bus clock / (32 x SBR[12:1]) 【说明】波特率发生器在复位后是禁止的,在设置TE、RE(在SCICR2寄存器中)后才会工作。当(SBR[12:0] = 0 and IREN = 0) 或者(SBR[12:1] = 0 andIREN = 1),波特率发生器不工作。 【注意】在未写入SCIBDL,写SCIBDH没有反应。一般地,设置IREN=0,SR=52(总线频率8MHz),波特率为9600。 2、控制寄存器(SCICR1) 一般此寄存器可默认设置。

飞思卡尔单片机各种功能程序

流水灯四种效果: #include /* common defines and macros */ #include #include /* derivative information */ #pragma LINK_INFO DERIV ATIVE "mc9s12xdp512" #include "main_asm.h" /* interface to the assembly module */ unsigned char temp; //unsigned char pa @0x200; //unsigned char pb @0x202; unsigned char key; static void delay(void) { volatile unsigned long i; for(i=0;i<100000;i++); } static unsigned char random; static void Random(void) { random = (unsigned char)rand(); } void effect1() { unsigned char c; for(c=0;c<=6;c++) { delay(); PORTB = ~(1<=1;c--) { delay(); PORTB = ~(1<=1;c--) {

相关主题