📄 main.c
字号:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//***************************变量初始化***************************
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//***************************PLL初始化*****************************
void PLLInit(void){
REFDV=1;
SYNR=2;
asm nop;
asm nop;
while ((CRGFLG & 0x08)==0); // wait here till the PLL is locked.
CLKSEL|=0x80;
}
//***************************IO初始化******************************
void IOInit(void){
DDRB=0xFF;
DDRK=0x00;
}
//***************************ECT初始化*****************************
void ECTInit(void){
TIOS=0x01;
TIE=0x00;
TSCR2=0x03; //****************** 24M/8
TCTL3=0x40;
TSCR1=0x80;
}
//***************************AD初始化*****************************
//***************************PWM初始化*****************************
//***************************SCI初始化*****************************
void SCIInit(void){
SCI0CR2=0x0C;
SCI0BD=0x009C;
}
//***************************初始化********************************
void HardInit(void){
DisableInterrupts;
PLLInit();
//SCIInit();
IOInit();
//ECTInit();
//ADInit();
//PWMInit();
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//***************************SCI函数*******************************
void put_char(unsigned char c) {
while((SCI0SR1&0x80)==0);
SCI0DRL=c;
}
void print(signed char * c) {
unsigned char i;
i=0;
while(c[i]!='#'&&c[i]!='$')
{ put_char(c[i]);
i++;
}
//if(c[i]=='#')
// { put_char(0x0D);
// put_char(0x0A);
//}
}
void put_HEX(unsigned int c) {
unsigned char a[4];
int i;
a[3]=c/4096%16;
a[2]=c/256%16;
a[1]=c/16%16;
a[0]=c%16;
for(i=3;i>=0;i--){
if(a[i]>9)
put_char(a[i]+0x37);
else
put_char(a[i]+0x30);
}
}
void put_LONG(unsigned long c) {
unsigned char a[8];
int i;
a[7]=c/268435456%16;
a[6]=c/16777216%16;
a[5]=c/1048576%16;
a[4]=c/65535%16;
a[3]=c/4096%16;
a[2]=c/256%16;
a[1]=c/16%16;
a[0]=c%16;
for(i=7;i>=0;i--){
if(a[i]>9)
put_char(a[i]+0x37);
else
put_char(a[i]+0x30);
}
}
void printpic(unsigned int *p,unsigned int m,unsigned int n){
unsigned char i,j;
put_char(0x0D);
put_char(0x0A);
put_char(0x0D);
put_char(0x0A);
print("The data of the pic is:$");
put_char(0x0D);
put_char(0x0A);
for(i=0;i<m;i++)
for(j=0;j<n;j++){
put_HEX(*p);
print(" $");
p++;
if(j==(n-1)){
put_char(0x0D);
put_char(0x0A);
}
}
}
void blank(){
put_char(0x0D);
put_char(0x0A);
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void sdelay(unsigned int delay_time) {
unsigned int x,y;
x=0;
while(x<delay_time) {
x++;y=0;
while(y<0xFFFF)
y++;
}
}
//***************************主函数*******************************
void main(void) {
int i,j,k;
char data_num,a_z,A_Z;
i=0;
j=0;
k=0;
data_num=0x30;
a_z=0x41;
A_Z=0x61;
HardInit();
EnableInterrupts;
blank();
print("**************************************************$");
blank();
print("****************循环发送数字和字母****************$");
blank();
print("**************************************************$");
blank();
sdelay(100);
print("开始接收...$");
blank();
sdelay(100);
for(;;)
{
for(j=0;j<10;j++){
put_char(data_num);
print(" $");
data_num++;
if(data_num>0x39) {
data_num=0x30;
}
sdelay(20);
}
blank();
for(j=0;j<26;j++){
put_char(a_z);
print(" $");
a_z++;
if(a_z>0x41+25) {
a_z=0x41;
}
sdelay(20);
}
blank();
for(j=0;j<26;j++){
put_char(A_Z);
print(" $");
A_Z++;
if(A_Z>0x61+25) {
A_Z=0x61;
}
sdelay(20);
}
blank();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -