#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include"delay.h"
#define uchar unsigned char
#define uint unsigned int
/********************************************************************
* 名称 : Com_Init()
* 功能 : 初始化串口程序,晶振11.0592, 波特率9600
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Init(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/********************************************************************
* 名称 : Main()
* 功能 : 主函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main()
{
uchar i = 0;
uchar code Buffer[] = "Welcom "; //所要发送的数据
uchar *p;
Com_Init();
p = Buffer;
switch(P3) //P3口作为独立按键输入端,检测端口电平并做如下判断
{
case 0xfe:
{
P1=0xfe;
while(1)
{
SBUF = *p;
while(!TI) //如果发送完毕,硬件会置位TI
{
;
}
p++;
if(*p == '\0') break; //在每个字符串的最后,会有一个'\0'
TI = 0; //TI清零
}
}
break;//0xfe = 1111 1110,
//说明连接在P3.0端口的按键被按下,显示对应的数字然后跳出循环
case 0xfd:P1=0xef;break;//调用表中的第三个
//元素 0xa4 下标 0 才表示数组中的第一个元素 //case 0xf7:P1=dofly_table[4];break;
//case 0xef:P1=dofly_table[5];break;
// case 0xdf:P1=dofly_table[6];break;
// case 0xbf:P1=dofly_table[7];break;
// case 0x7f:P1=dofly_table[8];break;
default:break; //如果都没按下,直接跳出
}
//主循环中添加其他需要一直工作的程序
}
|