欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3068|回復: 1
打印 上一主題 下一主題
收起左側

串口通訊

[復制鏈接]
跳轉到指定樓層
樓主
我想寫個程序完成從PC發0-F字符到單片機。單片機的2位LED顯示出接受到的數據。同時把接收到的數據發回PC去檢查數據的正確性。
下面的程序能接收和發送數據。但是不正確。請懂的朋友指點。謝謝
#include <reg52.h>//單片機51頭文件,存放著單片機的寄存器
unsigned char dat;        //用于存儲單片機接收發送緩沖寄存器SBUF里面的內容
sbit gewei=P1^0;          //個位選通定義
sbit shiwei=P1^1;         //十位選通定義

sbit alarm=P3^6;        //聲音報警        alarm=0不發出聲音,alarm=1;        發聲音報警

unsigned char code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
                                                          0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};        //定義0到F 16個數碼管顯示代碼;

void Delay(unsigned int tc)     //延時程序
{
while( tc != 0 )
{unsigned int i;
for(i=0; i<100; i++);
tc--;}
}
void LED()    //LED顯示接收到的數據
{
shiwei=0;
P2=  table[dat/16];
Delay(8);
shiwei=1;
gewei=0;
P2=  table[dat%16];
Delay(5);
gewei=1;
}
void Init_Com(void)//功能:串口初始化,波特率9600,方式1
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
void main()//主程序功能:實現接收數據并把接收到的數據原樣發送回去///////
{
Init_Com();//串口初始化
   P1=0;
  alarm=0;
while(1)
{
if ( RI )      //掃描判斷是否接收到數據,
{
dat = SBUF-0x30;                //接收數據SBUF賦與dat
RI=0;                   //RI清零。
SBUF = dat;                //在原樣把數據發送回去
}
LED();  //顯示接收到的數據
}
}



QQ截圖20140710221542.png (78.43 KB, 下載次數: 112)

QQ截圖20140710221542.png

QQ截圖20140710221507.png (75.68 KB, 下載次數: 147)

QQ截圖20140710221507.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:44262 發表于 2014-7-17 16:40 來自觸屏版 | 只看該作者
你現在的程序是不能夠編譯還是不能實現你所說的功能
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表