|
#include<reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
#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()
* 功能 : 主函數(shù)
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Main()
{
uchar i = 0;
uchar code Buffer[] = "Welcom "; //所要發(fā)送的數(shù)據(jù)
uchar *p;
Com_Init();
p = Buffer;
switch(P3) //P3口作為獨(dú)立按鍵輸入端,檢測(cè)端口電平并做如下判斷
{
case 0xfe:
{
P1=0xfe;
while(1)
{
SBUF = *p;
while(!TI) //如果發(fā)送完畢,硬件會(huì)置位TI
{
;
}
p++;
if(*p == '\0') break; //在每個(gè)字符串的最后,會(huì)有一個(gè)'\0'
TI = 0; //TI清零
}
}
break;//0xfe = 1111 1110,
//說明連接在P3.0端口的按鍵被按下,顯示對(duì)應(yīng)的數(shù)字然后跳出循環(huán)
case 0xfd:P1=0xef;break;//調(diào)用表中的第三個(gè)
//元素 0xa4 下標(biāo) 0 才表示數(shù)組中的第一個(gè)元素 //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; //如果都沒按下,直接跳出
}
//主循環(huán)中添加其他需要一直工作的程序
}
|
|