“与PC机串口通信”程序设计说明
- 明确程序目的:
实现单片机与PC进行通信,现在设置进行两位数码管(前面两位)来显示,只传递两位数 - 创建新项目
- 编写代码
3.1变量定义
/**********************
串口测试 型号:STC15F2K60S2 主频:11.0592MHz
************************/
#include<STC15F2K60S2.h>
#include<intrins.h>
/*---------宏定义---------*/
#define uchar unsigned char
#define uint unsigned int
#define cstFocs 11059200L //晶振频率
#define cstBaud1 9600 //波特率
#define cstKeyMaxNum 100 //按键抖动次数
/*cstFocs是根据你IC外部实际使用的晶振来定义的,如果你外部挂的是11.0592M的晶振,那么就需要这样定义
#define cstFocs 11059200L
cstBaud1 的定义则是根据你与电脑串口所通讯的具体的波特率,若使用9600的波特率,则定义为
#define cstBaud1 9600*/
/*---------引脚别名定义---------*/
sbit sbtKey1 = P3 ^ 2 ; //按键1,启动发送
sbit sbtKey2 = P3 ^ 3 ; //按键2,数字减少
sbit sbtKey3 = P1 ^ 7 ; //按键3,数字增加
sbit sbtLedSel = P2 ^ 3;
/*---------变量定义---------*/
uchar ucT100usTimes; //中断次数(1次中断为100US)
uint uiKey1Cnt; //按键1计数
uint uiKey2Cnt; //按键2计数
uint uiKey3Cnt; //按键3计数
uint uiKeyAllCnt; //按键总的抖动次数
bit btT1msFlag; //1ms的标志
bit btKey1Current; /*key1当前的状态*/
bit btKey1Past; /*key1前一个状态*/
bit btKey2Current; /*key2当前的状态*/
bit btKey2Past; /*key2前一个状态*/
bit btKey3Current; /*key3当前的状态*/
bit btKey3Past; /*key3前一个状态*/
/*收发显示数据相关*/
bit btUart1SendBusy = 0 ; //判断串口是否正在忙碌
uchar ucDateTmp; //传输数据暂存
uchar ucDateDigState; //用来判断显示前一位还是后一位
uchar arrSegSelect[] = {
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39