PC与51单片机串口通信。包括单片机内运行的程序,及MATLAB调试助手简易程序等!
(4)单片机内运行的程序
主程序如下:
#include <reg51.h> #include <intrins.h>
#include <CH452CMD.h> #include <pin.h>
bit flag; //标志位
bit flag_inter; //PC机发送信息结束标志位
unsigned char m=0; //数组testdata[a]
unsigned char testdata[20]={0}; //存放PC机发送到单片机的信息
//输出命令子程序,定义一无符号整型变量存储12字节的命令字。 void CH452_Write(unsigned int cmd) { unsigned char i; #ifdef USE_KEY DISABLE_INTERRUPT; //禁止键盘中断,防止传输过程中被CH452中断
//进入中断服务程序中再次传输
#endif CH452_LOAD_CLR; //命令开始,LOAD=0 for(i=0;i!=12;i++) //送入12位数据,低位在前 { if (cmd&1) {CH452_DIN_SET;} else {CH452_DIN_CLR;} // 输出位数据 CH452_DCLK_CLR; cmd>>=1;
CH452_DCLK_SET; //上升沿有效 }
CH452_LOAD_SET; //加载数据,LOAD上升沿 DELAY_1US; //命令数据加载周期不小于6US DELAY_1US; DELAY_1US; DELAY_1US; DELAY_1US; DELAY_1US; #ifdef USE_KEY
ENABLE_INTERRUPT; #endif }