📄 main.c
字号:
#include <hidef.h>
#include <mc9s12dg128.h>
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
uchar sum;
uchar k;
/*---------延迟程序----------------------*/
void Delay(void)
{
unsigned char i,j;
for(i=0;i<200;i++)
{
for(j=0;j<100;j++)
asm nop;
}
}
/*--------闪烁程序-----------------------*/
void light(void)
{
unsigned char i;
for(i=0;i<10;i++)
{
PORTB=0;
Delay();
PORTB=0XFF;
Delay();
}
}
/*-------串口初始化----------------------*/
void SciInit(){
SCI0BDL = (unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/);
SCI0CR1=0; /*normal,no parity*/
SCI0CR2=0X2C; /*RIE=1,TE=1,RE=1*/
}
/*-------发射端程序----------------------*/
void SciTx(unsigned char text){
unsigned char temp;
temp=SCI0SR1; /*clear flag*/
while (!(SCI0SR1&0x80)); /* wait for output buffer empty */
SCI0DRH=0;
SCI0DRL=text;
}
/*-------接受端程序----------------------*/
char SciRx(void){
char result,temp;
temp=SCI0SR1; /*clear flag*/
while(!(SCI0SR1&0x20));
result=SCI0DRL;
return result;
}
/*--------中断程序-----------------------*/
interrupt void Serv_int(void)
{unsigned char data;
DisableInterrupts;
data=SciRx();
sum=data;
light();
SciTx(data);
EnableInterrupts;
}
/*-------主函数--------------------------*/
void main(void) {
EnableInterrupts;
DDRB=0XFF;
DDRS=0x00;/*PS口为按键扫描输入口*/
SciInit();
for(;;) {
for(k=0;k<100;k++){
//SciTx(k);
Delay();
Delay();
Delay();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -