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

📄 sci1.c

📁 freescale16位单片机mc9s12dg128scirti例程
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
//#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
/*-------子函数定义-------*/
void initcom(void) //初始化串口
{
byte t;
SCI0BDL=0xA3; //(1)定义波特率为9600 bt=fbus/(16*br)=25000000/(16*9600)=162.76 取整为163
SCI0BDH=0x00;   //定义波特率时必须先给低八位赋值,再给高五位赋值。  

SCI0CR1=0x00; //(2)写控制字到sci控制寄存器。设置:允许sci,正常码输出,8位数据,无校验位
SCI0CR2=0X0C;   //设置允许发送TE=1,允许接收RE=1,查询方式收发。

t=SCI0DRL;    //(3)初始化数据寄存器,读数据寄存器(清零)
t=SCI0SR1;    //(4)初始化状态寄存器,读状态寄存器(清零)
}
/*-------芯片初始化-------*/
void initmcu(void) 
{
 /*--------锁相环初始化-------*/
  CLKSEL=0x00;             //disable pll;
  CLKSEL=0;
  CLKSEL_PLLSEL = 0;                   
  PLLCTL_PLLON = 0;                   
  SYNR = 24;          //6M晶镇获得25M总线                 
  REFDV = 5;                     
  PLLCTL = 192;
  PLLCTL_PLLON = 1;                    
  while(!CRGFLG_LOCK);              
  CLKSEL_PLLSEL = 1;  
  /*-----------io初始化---------*/
  DDRT_DDRT4=1;          //设置端口为输出
  DDRB_BIT0=1;
  DDRP_DDRP3=1;
}

void scisend(signed char *text) 
{
 byte a;
 a=SCI0DRL;
 while(!(SCI0SR1&0x80));
 SCI0DRL=*text++;
}

⌨️ 快捷键说明

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