久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機與PC機串口通信

作者:huqin   來源:本站原創   點擊數:  更新時間:2009年05月21日   【字體:

單片機P2口接8只LED燈,P3.2~P3.3引腳連接有K1和K2共2個按鍵,使用單片機串行口與PC機通信。
1)由PC機控制單片機的P2口,將PC機送出的數以二進制形式顯示在LED燈上;
2)按下按鍵K1向PC機發送數字0x55,按下K2向PC機發送數字0xAA。
源程序如下:
//出自:51hei單片機學習網http://www.zg4o1577.cn
#define uchar unsigned char
#include "string.h"  
#include "reg51.h"
unsigned char   code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
                         0x08,0x03,0x46,0x21,0x06,0x0e}; //十六進制-7段譯碼表
void mDelay(unsigned int DelayTime)     //延時函數
{ unsigned char j=0;
for(;DelayTime>0;DelayTime--)          //延時循環
{ for(j=0;j<125;j++)
{;}}}
void SendData(uchar Dat)     //發送函數
{ uchar i=0;
SBUF=Dat;                //發送Dat
while(1){
if(TI)                     //如果發送中斷標志為1,則等待,
{ TI=0; break; }            //否則清除發送中斷標志
}}
uchar Key()                     //按鍵處理函數
{ uchar KValue;                  //聲明鍵值函數
P3|=0x3e;                       //中間4位置高電平 0011 1101
if((KValue=P3|0xe3)!=0xff)        //如果按鍵按下
{ mDelay(10);                   //延遲時間函數
if((KValue=P3|0xe3)!=0xff)        //如果按鍵還在按下狀態
{ for(;;)                        //等待
if((P3|0xe3)==0xff)               //如果按鍵抬起,
return(KValue);                  //返回鍵值
}}
return(0);                       //如果按鍵沒有按下,返回0
}
void main()                      //主函數
{ uchar KeyValue;                //定義鍵值變量KeyValue
unsigned char ns,ng,temp;          //定義變量ns,ng,temp
P2=0xff;                        //熄滅P2口連接的所有發光管
TMOD=0x20;               //確定定時器工作模式,模式2,常數自動裝入
TH1=0xFD;        
TL0=0xFD;                    //定時器1的初值  波特率為9600,晶體為11.0592MHz
//PCON&=0x80; 若是SMOD=1 可以使波特率加倍
TR1=1;                          //啟動定時器1
SCON=0x40;                //串口工作方式1  運行在8位模式
REN=1;                         //允許接收
for(;;)                           //無限循環
{if(KeyValue=Key())              //調用按鍵函數,獲取按鍵信息
{ if((KeyValue|0xfb)!=0xff)     //如果按鍵k1按下
SendData(0x55);                   //調用發送函數,送出0x55
if((KeyValue|0xf7)!=0xff)        //如果k2按下
SendData(0xaa);                   //調用發送函數,送出0xaa
}
if(RI)                         //如果接收中斷發生
{ P2=SBUF;             //將接收數據寫到端口P2
RI=0; }                       //清除接收標志位
temp=P2;                  //暫存接收到的數據
ng=temp & 0x0f;       //取接收數據低4位
ns=temp>>4;            //將高4位右移4位
ns &=0x0f;               //取接收數據高4位
P0=table[ng];        //P0口連接的數碼管顯示低4位
P1=table[ns];        //P1口連接的數碼管顯示高4位
}}

關閉窗口

相關文章

主站蜘蛛池模板: www日韩欧美 | 一级欧美| 国产精品18hdxxxⅹ在线 | 久久精品二区亚洲w码 | 国产一区在线视频 | 日韩精品成人一区二区三区视频 | 美国av毛片 | 啪视频在线 | 欧美电影免费观看 | 亚洲精品自拍视频 | 国产一区二区三区久久久久久久久 | 亚洲国产精品久久久 | 黄色片在线网站 | 久久久久一区二区三区 | 日韩中文字幕在线 | 黄色片视频免费 | 一区二区三区国产在线观看 | 国产成人99久久亚洲综合精品 | 成人久草 | 国产一级片网站 | 精品欧美乱码久久久久久 | 日韩福利电影 | 久久高清免费视频 | 亚洲一区二区三区在线播放 | 亚洲网站在线 | 久久精品16 | 最新日韩在线 | 亚洲精品资源 | 成人亚洲综合 | 欧美日韩在线成人 | 欧美黄色片在线观看 | 天天曰夜夜操 | 欧美 日韩 国产 成人 在线 91 | 视频一区二区三区中文字幕 | 日本精品一区二区三区在线观看 | 亚洲欧美国产毛片在线 | 狠狠的干狠狠的操 | 精品视频久久久 | 国产精品久久久久aaaa九色 | 日日操夜夜操天天操 | 一级黄a视频 |