⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freescale.txt

📁 用飞思卡尔写的胎压测试相关程序用8位芯片写的
💻 TXT
📖 第 1 页 / 共 2 页
字号:


#pragma CODE_SEG DEFAULT
static void PORTPInit(void) {
DDRP = 0X7F; //PORTP7输入
PERP = 0X80; //允许上拉或者下拉
PPSP = 0X7F; //下降沿触发中断
PIEP = 0X80; //中断允许
}


void main(void) {

DDRB = 0xFF;
PORTB = 0x00;
PORTB = 0xFF;
PORTPInit();
EnableInterrupts;
while(1)
{
;
}

}

 

freescale mc9s12dg128/dp256 MDC程序

[ 2006-6-7 12:40:50 | By: 晒太阳的小猪 ]

freescale mc9s12dg128/dp256 MDC程序

/模数计数器做定时器

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明
#i nclude <hidef.h>
#i nclude <string.h>

static int waittime = 0;
static long i = 0;
static long absoluteTime = 0;

#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void MDC_ISR(void){
MCFLG = 0x80; 

waittime++;
if(waittime>=200) waittime=0;
PORTB = waittime;
}


#pragma CODE_SEG DEFAULT
static void MDCInit(void) 
{
MCCTL = MCCTL&0Xfb;
MCCTL = 0Xe3; MCCTL = MCCTL|0X04 
MCCNT = 0X3456; 

MCCTL = MCCTL|0X08 ;

i= MCCNT; }


void main(void) 
{

DDRB = 0xFF;
PORTB = 0x00;
PORTB = 0xFF;
MDCInit();
EnableInterrupts;
while(1)
{
; 
}

}

 

freescale mc9s12dg128/dp256 模拟串口程序

[ 2006-6-8 8:50:01 | By: 晒太阳的小猪 ]

freescale mc9s12dg128/dp256 模拟串口程序

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明

//模拟串口,8M/(64*13)=9615,接近9600
#i nclude <hidef.h>
#i nclude <string.h>

static long absoluteTime = 0;
static unsigned char F_TM = 0;
static unsigned char time_count = 0;


#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void ECT_ISR(void){
TFLG1 = 0x01;
F_TM=1;
time_count++;
}


#pragma CODE_SEG DEFAULT
static void ECTInit(void) {
TIOS = 0x81; //这句话必须写在前边,不然无法把数据写入TC0,TC7
TC0H = 0x00; // Store given value to the compare register
TC0L = 0x0D;
TC7H = 0x00; // Store given value to the modulo register 
TC7L = 0x0D;

TSCR2 = 0x0E; // 把TSCR2中TCRES置位,定时器计数达到TC7数值后,自动复位tore given value to the prescaler 
TFLG1 = 0x01; // Reset interrupt request flag
TIE = 0x01; // Enable interrupt 
TIOS = 0x01;
//TSCR1 = 0X80; // Enable Timertimer enable 
}

void PSendChar(uchar inch)
{ 

uchar ii; 
time_count=0;
//REN_485=1;
DDRS = 0XFF;
ii=0; 
F_TM=0;
PORTS=PORTS&0xFD; //start bit 
TIMER_ENABLE; //启动

while(!F_TM);

while(ii<8)
{
if(inch&1)
{
PORTS=PORTS|0x02;
}
else
{
PORTS=PORTS&0xFD;
}
F_TM=0;
while(!F_TM);
ii++;
inch>>=1;
}
PORTS=PORTS|0x02; 
F_TM=0;
while(!F_TM);
TIMER_DISABLE; //停止timer
}

//检查是不是有起始位
uchar StartBitOn(void)
{
return(!(PTIS&0x01));

}

//接收一个字符
uchar PGetChar()
{
uchar rch,ii;
TIMER_ENABLE; 
F_TM=0;
ii=0;
rch=0;
while(!F_TM); //等过起始位

while(ii<8)
{
rch>>=1;
if(PTIS&0x01)
{
rch|=0x80;
}
ii++;
F_TM=0;
while(!F_TM);
}
F_TM=0;
while(!F_TM)
{
if(PTIS&0x01)
{
break;
}
}
TIMER_DISABLE; //停止timer
return rch; 
}


void main(void) 
{
uchar gch; 
DDRB = 0xFF;
PORTB = 0x00;
PORTB = 0xFF;

ECTInit();

EnableInterrupts;
PSendChar(0x55);
PSendChar(0x99);
PSendChar(0xDA);

while(1)
{ 
DDRS = 0x00;
if(StartBitOn())
{
gch=PGetChar();
PSendChar(gch);
}
}

}

 

freescale mc9s12dg128/dp256 pwm脉宽调制程序

[ 2006-6-8 8:55:27 | By: 晒太阳的小猪 ]

freescale mc9s12dg128/dp256 pwm脉宽调制程序

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明

#i nclude <hidef.h>

void main()
{
PWMCNT0 = 0;
PWMDTY0 = 0x6b; // Store initial value to the duty-compare register
PWMPER0 = 0xFF; // and to the period register 
PWMPRCLK = 0x00; // Set prescaler register 
PWMSCLA = 0x4B; // Set scale register 
PWMCLK = 0x01; // Select clock source 
PWME = 0x01; // Run counter 
while(1){;}
}

 

freescale mc9s12dg128/dp256 sci串行通信程序

[ 2006-6-8 8:59:11 | By: 晒太阳的小猪 ]

freescale mc9s12dg128/dp256 sci串行通信程序

//作者:晒太阳的小猪
//个人blog:http://emcu.c51bbs.com
//转载使用请注明

#i nclude <hidef.h>
#i nclude <string.h>

static int waittime = 5;
static unsigned char redButtonDown = FALSE, blueButtonDown = FALSE;
static long absoluteTime = 0;


static void WriteToSCI0(const char *text){
while (*text != '\0'){
while (!(SCI0SR1 & 0x80)); /* wait for output buffer empty */
SCI0DRL = *text++;
}
}


#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void SCI0_ISR(void){

unsigned char rc;
rc = SCI0SR1; /* dummy read to clear flags */
rc = SCI0DRL; /* data read */
PORTB =rc;
SCI0DRL = rc;
}

static void SCI0Init(void) {
SCI0BDL = (unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/); 
SCI0CR2 = 0x2C;
}

void main(void) {
DDRB = 0xFF;
SCI0Init();

EnableInterrupts;
WriteToSCI0("\n\n*** Disco Demo ***\n");
WriteToSCI0("\nEnter number (1-9) to change speed or\n'stop' to halt simulation.\n");
while(1){;}
}

 

飞思卡尔8针脚的胎压监测传感器实现低成本与低功耗

[ 2006-6-8 16:02:54 | By: 晒太阳的小猪 ]

[转载]为了达到胎压监测系统的低功耗要求,飞思卡尔8针脚的胎压监视传感器MPXY8020A可与遥控车门开关(RKE)系统结合使用,提供一个高度集成的低成本系统。

飞思卡尔MPXY8020A是一款8针脚的胎压监测传感器。它由一个变容压力传感器元件、一个温度传感元件和一个界面电路(具有唤醒功能)组成,所有这三个元件都在单块芯片中。 

MPXY8020A封装在超级小尺寸封装(SSOP)中,SSOP带有介质保护过滤器。为了达到胎压监视系统的低功耗要求,MPXY8020A进行了专门设计,可与飞思卡尔的遥控车门开关(RKE)系统结合使用,提供一个高度集成的低成本系统。 

产品特性 

· 汽车级温度规范 (- 40℃至125℃) 

· 637.5 kPa 的压力范围 

· 温度和压力传感器的数字(8位)输出 

· 按电源比例的电压,从2.1V到3.6V 

· SSOP封装可提供强大的介质保护,体积小巧 

· 三秒唤醒功能,实现了模块级的能耗管理 

· 低功耗 

· 飞思卡尔为TPMS-RKE系统提供了一个完整的芯片组,无需其它特定的TPM接收器 

 

freescale mc9s12d系列控制器货源

[ 2006-6-12 22:07:32 | By: 晒太阳的小猪 ]

freescale mc9s12d系列控制器货源问题真不好解决。询问了无数家公司都是没有,要是订购的话,必须要批量,100片以上,晕了!
打电话到清华的motorola研究中心,他们说不出售芯片,只卖相应的开发板,再次晕倒!
freescale公司主页给出了国内销售商,打电话到北京销售商,说是只有9s12a系列的,还不全,让我们咨询一下深圳的。打电话到深圳,同样。晕倒!
中电网上边给出了零售商武汉力源,亿弘国际,都打电话问了,同样的结果。晕!
今天在中电网bbs看到一个帖子,说是想批量购进9s12系列的芯片,结果freescale销售商半年都没有给消息。狂晕!
freescale,你到底是怎么了?有你这么做市场的么?

 

自己做的mc9s12dg256的板子好用了

[ 2006-6-29 10:54:17 | By: 晒太阳的小猪 ]

这个板子,一个多月之前就做好了,一直苦于买不到相应的单片机。昨天下午,除了几个插座之外,一切都焊接完毕。晚上回来,胆战心惊的通电实验,发现没有任何元件有被烧坏的迹象,窃喜中。插上bdm仿真头,打开调试软件,没有任何反应,看到的寄存器内容都是0,无法下载程序。自己反复尝试调试的各种命令,无果。开始检查硬件,一直到将近十点,除了发现复位电路的一个电阻被错误的把100欧姆焊接成100k之外,其他都没有发现。换过电阻,仍然不好用,郁闷极了。测试了晶镇,没有起振,反复检查电路,没有问题啊。担心中。
今天早上,来检查,开始怀疑复位电路。测试了很久,果然发现reset脚没有焊接好。用电烙铁修正,好了。通电,再次试验。
终于有反映了,可以下载程序了。下载了小灯闪烁试验,一切ok,运行正常了!
又下载了定时器中断实验,很好,ok!
中午可以安心吃饭了阿!

 

MC9S12DG128/DP256/DG256等型号控制器最小系统原理图

[ 2006-6-29 18:29:31 | By: 晒太阳的小猪 ]

user1/11843/upload/20066291832.rar我做的一个项目的单片机部分电路
由于网络上几乎搜索不到此类型单片的电路图,这里把我做得给出,供大家参考
包含这个电路的项目,自己做了控制电路板,检验正确
适用于MC9S12DG128/DG256等

 

我做的mc9s12板子已经测试完毕

[ 2006-7-2 12:27:48 | By: 晒太阳的小猪 ]

我做的板子,周2还是周3焊接好的,记不清楚了。这几天做各个模块的测试。
这个板子主要的模块有:mc9s12dg256控制器最小系统,rs232输出,带光电隔离的rs485输出,20路电压信号输入,4路电流信号输入,一个tlc1543作为辅助的ad,一个tlc5617和2路带线性光藕隔离的0-10v电压输出,8路继电器输出,16路隔离信号量输入。刚刚做完所有功能模块的调试,一切都好,设计完全正确。
接下来要做的就是整体调试了,要设计好整体流程,作模拟调试了。
先放松一下,一会儿回去洗个澡,再接着努力。

 

mc9s12控制器通信调试中

[ 2006-7-3 20:57:44 | By: 晒太阳的小猪 ]

今天从早晨到现在一直在做mc9s12的458通信调试。今天的程序达到了如下要求:
1、接收一定字节数的数据,数据有起始字节,有累加和校验;
2、接收时间做通信定时处理,防止丢包现象导致的无限期等待数据;
3、根据接收到的指令数据,执行相应的功能;
4、如果接收到的数据有不可纠正的错误,发送数据错误指令;
等等。
明天看情况做调整,得编写整体程序了。

 

mc9s12控制器数据采集板已经调试完毕

[ 2006-7-6 16:43:57 | By: 晒太阳的小猪 ]

mc9s12控制器数据采集板所有程序都已经调试完毕。其他的问题需要配合主控制板在做调适。不过这个主控板还没有做呢!

 

又画了一块板子

[ 2006-7-29 14:17:30 | By: 晒太阳的小猪 ]

这一个星期以来,自己完善了mc9s12dg128密炼机控制器的主控板设计,并且绘制了这个板子的pcb,在这个板子上除了一些光电隔离的开关量输入,按键,显示电路之外,还有一个485接口,一个232接口,一个模拟485接口,一个模拟232接口等。并没有什么太难的地方,主要麻烦的是外部接口数量太多。开关量,按键,显示用数码管,led太多了,比较麻烦,呵呵。
等待那个fpga的板子回来。教研室的人大部分都回家了,有点冷清了。

 

密炼机油路监控系统的主控制板做好了

[ 2006-10-8 18:51:17 | By: 晒太阳的小猪 ]

主控制板终于做好了,元件都焊接完毕,自己通电调试了一下,各个功能模块都好用。接下来就是系统软件编程了,工作量不少,慢慢来。
感觉mc9s12dg256的调试工具cw不是很好使用。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -