?? rs232.c
字號:
/******************************************
程序功能:通過PC端的串口調試工具,從PC端發出一個十六進制的數,
通過串口傳輸到單片機,并有單片機通過
LED數碼管顯示出來,而且單片機又將
這個數發回PC端,并在PC端顯示出來,從而
實現單片機與PC機的通訊
*****************************************/
#include <reg52.h>
unsigned char date;
code unsigned char seg7code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0xff}; //共陽數碼管段碼
//***********************************************************
// 延時子程序
//************************************************************
void delay1ms()
{
unsigned char i;
for(i=124;i>0;i--); //延時124*8+10=1002us
}
//***********************************************************
//顯示函數,顯示四位的date數據
//P0口接段碼,P2.0-P2.3接位選
//************************************************************
void LED_display(int date) //顯示4位數
{
P2=0xfb; //P2.2=0,選通第三位
P0=seg7code[date%100/10];
delay1ms();
P0=0xff; //消隱
P2=0xf7; //P2.3=0,選通第四位
P0=seg7code[date%10];
delay1ms();
P0=0xff; //消隱
}
//******************************
//*****串口初始化函數***********
//******************************
Initial_com()
{
EA=1; //開總中斷
ES=1; //允許串口中斷
ET1=1; //允許定時器T1的中斷
TMOD=0x20; //定時器T1,在模式3(自動裝入的8位定時方式)中斷產生波特率
PCON=0x00; //SMOD=0
SCON=0x50; //8位異步收發,波特率可變
TH1=0xfd; //波特率設置為9600
TL1=0xfd;
TR1=1; //開定時器T1運行控制位
}
//*************************
//**********主函數*********
//*************************
main()
{
Initial_com();
while(1)
{
if(RI)
{
date=SBUF;
SBUF=date;
RI=0;
}
LED_display(date);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -