/**************************************************************************************
龙丘MC9S12XS128 多功能开发板
Designed by Chiu Sir
E-mail:chiusir@163.com
软件版本:V1.1
最后更新:2009年2月28日
相关信息参考下列地址:
博客: http://longqiu.21ic.org
淘宝店:http://shop36265907.taobao.com
------------------------------------
Code Warrior 4.7
Target : MC9S12XS128
Crystal: 16.000Mhz
busclock:16.000MHz
pllclock:32.000MHz
演示程序使用说明: volatile dword u32_time_cnt=0; //====================中断函数================================== #pragma CODE_SEG __NEAR_SEG NON_BANKED void putstr(char ch[]) //====================main()==================================
1.实时时钟的演示:
2.毫秒级计时输出;
3.串口输出速率:9600bps.
4.中断的使用。
*****************************************************************************************/
#i nclude
#i nclude
#i nclude
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
void interrupt 7 RTI_ISR(void) { // 32.75ms timer overflow
++u32_time_cnt;
PORTB_PB2=~PORTB_PB2;
CRGFLG|=0X80;//Write 1 to clear RTIF bit
}
// 函 数 名: void DLY_ms(word x)
// 功能描述: 毫秒级延时
void DLY_ms(int ms) //x取值1~255;
{
int ii,jj;
if (ms<1) ms=1;
for(ii=0;ii
}
//-----------------------------------------------------
static void Port_Init(void)
{
DDRA = 0xff;
PORTA= 0x00;
DDRB = 0xff; //LED PTB0--7,
PORTB= 0xff; //LEDs off
}
//-----------------------------------------------------
static void SCI_Init(void)
{
SCI0CR2=0x2c; //enable Receive Full Interrupt,RX enable,Tx enable
SCI0BDH=0x00; //busclk 8MHz,19200bps,SCI0BDL=0x1a
SCI0BDL=0x68; //SCI0BDL=busclk/(16*SCI0BDL)
//busclk 16MHz, 9600bps,SCI0BDL=0x68
}
void uart_putchar(unsigned char ch)
{
if (ch == '/n')
{
while(!(SCI0SR1&0x80)) ;
SCI0DRL= 0x0d; //output'CR'
return;
}
while(!(SCI0SR1&0x80)) ; //keep waiting when not empty
SCI0DRL=ch;
}
{
unsigned char ptr=0;
while(ch[ptr]){
uart_putchar((unsigned char)ch[ptr++]);
}
}
// setup of the RTI interrupt frequency
static void RTI_Init(void)
{
RTICTL=0x77; //8x2^16 =>32,75ms,30.5175Hz
//CRGINT=0X80; //enable RTI Interrupt
CRGINT=0X80; //enable RTI Interrupt
}
// PLL初始化子程序 BUS Clock=16M
void setbusclock(void)
{
CLKSEL=0X00; // disengage PLL to system
PLLCTL_PLLON=1; // turn on PLL
SYNR=0x00 | 0x01; // VCOFRQ[7:6];SYNDIV[5:0]
// fVCO= 2*fOSC*(SYNDIV + 1)/(REFDIV + 1)
// fPLL= fVCO/(2 × POSTDIV)
// fBUS= fPLL/2
// VCOCLK Frequency Ranges VCOFRQ[7:6]
// 32MHz <= fVCO <= 48MHz 00
// 48MHz < fVCO <= 80MHz 01
// Reserved 10
// 80MHz < fVCO <= 120MHz 11
REFDV=0x80 | 0x01; // REFFRQ[7:6];REFDIV[5:0]
// fREF=fOSC/(REFDIV + 1)
// REFCLK Frequency Ranges REFFRQ[7:6]
// 1MHz <= fREF <= 2MHz 00
// 2MHz < fREF <= 6MHz 01
// 6MHz < fREF <= 12MHz 10
// fREF > 12MHz 11
// pllclock=2*osc*(1+SYNR)/(1+REFDV)=32MHz;
POSTDIV=0x00; // 4:0, fPLL= fVCO/(2xPOSTDIV)
// If POSTDIV = $00 then fPLL is identical to fVCO (divide by one).
_asm(nop); // BUS CLOCK=16M
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system; }
//-----------------------------------------------------
#pragma CODE_SEG DEFAULT
void Init_Dev(void)
{
setbusclock();
Port_Init();
SCI_Init();
RTI_Init();
}
#pragma CODE_SEG DEFAULT
void main(void)
{
char txtbuf[66]="";
byte u8_mintes=0;
word u16_sec=0,u16_ms=0;
Init_Dev();
PORTB=0x00;
putstr("/nLongQiu s.&t. Co. Ltd.");
putstr("/nhttp://shop36265907.taobao.com");
DLY_ms(1000);
PORTB=0xFF;
EnableInterrupts;
for(;;)
{
//----------时钟计时器---------------------------------
u16_sec=u32_time_cnt*131/4;//理论值为32.75ms,时间计算部分
u16_ms=u16_sec%1000;
u16_sec=u16_sec/1000;
sprintf(txtbuf,"/n%d:%02ds-%03dms ",u8_mintes,u16_sec,u16_ms);
putstr(txtbuf);
if(u16_sec>58)
{
u8_mintes++;
u32_time_cnt=0;
}
//--------------------------------------------------------
PORTB_PB0=~PORTB_PB0;
DLY_ms(50);
}//for(;;)
} //main
上一篇:mc9s12dg128使用定时器的输出比较产生定时中断代码亮1S灭1S
下一篇:freescale codewarrior编译器的使用
推荐阅读
史海拾趣
在技术创新的基础上,AZM公司开始积极拓展市场。公司制定了详细的市场拓展计划,通过参加国际电子展会、建立销售网络、开展合作伙伴关系等多种方式,逐步打开了国内外市场。同时,AZM公司注重品牌建设,通过提升产品质量、优化客户服务、加强品牌宣传等手段,逐渐树立了良好的品牌形象。
为了进一步提升公司的国际竞争力,AZM公司开始实施国际化战略。公司积极寻求与国际知名企业的合作机会,通过技术合作、市场合作等方式,共同开拓全球市场。同时,AZM公司还在海外设立了研发中心和生产基地,以便更好地了解当地市场需求和技术发展趋势,实现全球布局和资源整合。
请注意,这些故事是基于假设和推测构建的,并非AZM公司的真实发展历程。如果需要了解AZM公司的具体发展历程和故事,建议查阅该公司的官方网站、新闻报道或相关文献资料。
作为一家领先的电子公司,因美纳深知自己的社会责任。公司积极参与各种公益活动,推动基因测序技术在医疗、环保等领域的应用。同时,因美纳还注重可持续发展,通过采用环保材料、优化生产流程等方式降低对环境的影响。这种积极履行社会责任和推动可持续发展的做法赢得了社会各界的广泛赞誉。
随着技术的不断进步和市场的不断扩大,ASI开始积极拓展全球市场。通过设立分支机构和与全球各地的客户建立合作关系,ASI的产品和服务逐渐覆盖了几十个国家。同时,ASI始终坚持以客户为中心的理念,不断提升客户服务的水平和质量。无论是售前咨询、技术支持还是售后服务,ASI都致力于为客户提供最优质、最专业的服务。
随着CMOS MEMS谐振器技术的不断成熟,Discera公司开始注重专利的申请和保护。他们投入大量资源用于技术研发和专利申请,逐渐在MEMS谐振器技术领域积累了大量的专利。这些专利不仅保护了公司的核心技术,也为公司的持续发展提供了坚实的法律保障。
Discera公司的产品在性能和稳定性上表现出色,很快就引起了美国军方的关注。经过严格的测试和评估,Discera的CMOS MEMS谐振器成功通过了美国军方的质量可靠性测试,并获得了军方的认证。这一成就不仅证明了Discera产品的卓越性能,也为公司进一步拓展军用市场打下了坚实的基础。
盛群半导体(Holtek)推出具备TinyPowerTM技术的新产品HT48R52及HT48R53,具有极低的功耗,可延长电池的使用时间,使盛群半导体的单片机产品更加符合绿色能源的潮流。TinyPowerTM技术使得产品在3伏特的工作电压下有低至300uA的工作电流,而在进 ...… 查看全部问答∨ |
在作硬件之前,需要看的资料有: 1.芯片数据手册,描述该器件的引脚信号、片上资源、电气指标和机械特性(如封装等),在做硬件前必看(TMS320F281x数据手册SPRS174J) 2.某一系列DSP的CPU和指令集用户指南,描述该系列DSP的CPU结构、内部寄存器 ...… 查看全部问答∨ |
补充资料悬赏女友一名。二手亦可,要求九成新以上,无附加产品。产地不限,山寨亦可.需性能稳定,运行可靠.维护简单,节省耗材.惯用麦当劳,啃得基等洋耗材者谢绝.出厂日期为1975年以后。各零部件齐全。预装中文操作系统,兼容英文或俄文操作系统更佳。 ...… 查看全部问答∨ |
血液分析方式有几种,采用的技术包括阻抗测量以及流式细胞计数。虽然这两种设计都有特殊的要求和困难,但它们都依赖精确、可靠和可重复的数据采集进行分析。想要了解设计过程中的注意事项和器件选择技巧吗?请看本文。 血液分析方式有几种,采用的 ...… 查看全部问答∨ |
目录: 第1章 电沉积量子点――通过半导体与衬底之间的晶格失配控制其尺寸 1.1 引言 1.2 CdSe/Au体系 1.3 半导体点阵间隔的调整――Cd(Se,Te)/Au 1.4 衬底点阵间隔的调整――CdSe/Pd 1.5 在Au和Pd衬底上沉积较厚的层CdS ...… 查看全部问答∨ |
|
LED的发光顏色和发光效率与製作LED的材料和製程有关,目前广泛使用的有红、绿、蓝三种。由於LED工作电压低(仅1.5-3V),能主动发光且有一定亮度,亮度又能用电压(或电流)调节,本身又耐冲击、抗振动、寿命长(10万小时)。製造LED的材料不同,可 ...… 查看全部问答∨ |
|