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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

求大神給個單片機與電腦串口通信的程序

查看數: 3695 | 評論數: 10 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2017-11-6 09:56

正文摘要:

本人初入單片機,小白一枚,現在用的開發板的單片機是stc89c52, 單片機的p20---p27口接的LED,想在電腦端 用“串口調試助手”直接控制這幾個LED燈 的亮或滅,  不知道怎么寫程序,大神能幫忙寫一個嗎,我 ...

回復

ID:213173 發表于 2017-11-7 11:41
且聽風吟1314 發表于 2017-11-7 10:05
非常感謝,我現在通過以上程序能用串口控制這幾個LED了,但是如果要把其它P口加入到里面一起控制的話,如 ...

只要把串口接收到的數據用一個函數加以解析就可以按需要控制任意端口,用這個函數替換P2=~ch;
void service()
{
        switch(ch)
        {
                case 0x01: P0=0X0F; break;
                case 0x02: P1=0Xf0; break;
                case 0x03: P2=0X55; break;
                ......
                ......
                case 0xff: P1=0Xaa; break;
                default: break;
        }       
}
ID:164602 發表于 2017-11-7 11:26
且聽風吟1314 發表于 2017-11-7 10:05
非常感謝,我現在通過以上程序能用串口控制這幾個LED了,但是如果要把其它P口加入到里面一起控制的話,如 ...

你先將這個程序好好看看吧。
看這么幾個方面?
第一:串口通訊都要設置些什么寄存器?
第二:每個寄存器的值是怎么來的?可不可以改變?
第三:控制部分在哪里?為什么可以控制?(這個看懂了,你自然會控制其它I/O口了)
我這個程序,只能是個示范程序,其實真的要完成有意義的控制,還有很多內容,努力學吧,祝成功!
ID:246395 發表于 2017-11-7 10:05
wulin 發表于 2017-11-6 13:22
#include
#define uchar unsigned char
uchar ch;

非常感謝,我現在通過以上程序能用串口控制這幾個LED了,但是如果要把其它P口加入到里面一起控制的話,如把p00-p07  p10-p17 一起加入用串口控制,程序要怎么改呢,麻煩了
ID:164602 發表于 2017-11-7 09:36
我的板子和你完全一樣,我這個程序,就是串口控制LED燈的。程序功能是:用字符方式發送1,LED燈最右邊的一個亮,以字符方式發送2,燈滅。
#include<reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit LED1=P2^0;

u8 receiveData;
u8 n[]="12";

void UsartInit()//串口初始化函數
{
        SCON=0X50;//設置為工作方式1
        TMOD=0X20;//設置計數器工作方式2
        PCON=0X80;//波特率加倍
        TH1=0XF3;//計數器初始值設置,注意波特率是4800的
        TL1=0XF3;
        ES=1;//打開接收中斷
        EA=1;//打開總中斷
        TR1=1;//打開計數器
}

void main()
{
        UsartInit();//串口初始化
        while(1);
}

void Usart() interrupt 4//中斷函數
{
        unsigned char m;
        m=SBUF;
        if(m==n[0])
        {
                LED1=0;
        }         
        if (m==n[1])
        {
                LED1=1;
        }
        receiveData=SBUF;//出去接收到的數據
        RI = 0;//清除接收中斷標志位
        SBUF=receiveData;//將接收到的數據放入到發送寄存器
        while(!TI);//等待發送數據完成
        TI=0;//清除發送完成標志位
}


串口調試軟件用的STC-ISP的串口調試功能。如圖所示設置就可以了。


注意:串口號是你的號,這里的COM3是我的。
ID:7485 發表于 2017-11-6 15:34
且聽風吟1314 發表于 2017-11-6 10:47
不好意思我小白一枚,表達不準確,我要就是燒到單片機上的那個代碼,還有 怎么設置這個穿孔助手軟件[em04 ...

還是看不明白你的意思。
ID:213173 發表于 2017-11-6 13:22
#include <reg51.h>
#define uchar unsigned char
uchar ch;
bit flag=0;                //接收完成標志,

void init_uart()
{
        TMOD=0X20;         //定時器/計算器工作模式寄存器
        TH1=0XFD;         //波特率9600
        TL1=0XFD;         //波特率9600
        SCON=0X50;         //串行控制寄存器
        TR1=1;             //開定時器T1
        EA=1;                //開總中斷
        ES=1;                //開串行口中斷   
}

void main()
{
        init_uart();
        while(1)
        {
                if(flag==1)                //接收完成標志為1
                {
                        ES=0;                //關串口中斷
                        flag=0;                //接收完成標志清0
                        SBUF=ch;                //發送數據
                        while(!TI);        //等待發送中斷請求標志位為1
                        TI=0;                //發送中斷請求標志位清0
                        ES=1;                //開串口中斷
                }
                P2=~ch;                        //LED低電平顯示收到的數據

        }
}
void UART_interrupt() interrupt 4
{
        RI=0;     //接收中斷請求標志位                 
        ch=SBUF;        //獲取SBUF接收到的數據
        flag=1;        //接收完成標志置1      
}

ID:213173 發表于 2017-11-6 11:59
本帖最后由 wulin 于 2017-11-6 13:26 編輯
ahshmj 發表于 2017-11-6 10:38
單片機的接收程序?單片機設置波特率,串口中斷接收,將接收到的數據送P2口。電腦上的可以用“串口助手”。 ...
發錯了,撤銷........


無標題.jpg (116.01 KB, 下載次數: 38)

無標題.jpg
ID:243921 發表于 2017-11-6 11:30
你去找一下單片機串口例程的源碼  然后在源碼的基礎上修改一下就可以實現了  自己多看看書 多敲敲代碼  你這個其實不難的
自己動手才有意思
ID:246395 發表于 2017-11-6 10:47
ahshmj 發表于 2017-11-6 10:38
單片機的接收程序?單片機設置波特率,串口中斷接收,將接收到的數據送P2口。電腦上的可以用“串口助手”。 ...

不好意思我小白一枚,表達不準確,我要就是燒到單片機上的那個代碼,還有 怎么設置這個穿孔助手軟件
ID:7485 發表于 2017-11-6 10:38
單片機的接收程序?單片機設置波特率,串口中斷接收,將接收到的數據送P2口。電腦上的可以用“串口助手”。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲精品国产精品紫薇 | 韩国主播午夜大尺度福利 | 毛片免费观看 | 日韩 欧美 二区 | 精品视频一区二区三区在线观看 | 久久国产电影 | 国产超碰人人爽人人做人人爱 | 成人在线免费视频 | 日本免费黄色 | 日韩精品免费视频 | 中文字幕 在线观看 | 日韩精品在线视频 | 亚洲电影一区二区三区 | 欧美精品一区二区三区四区五区 | 日韩精品一区二区三区中文字幕 | 成人在线免费观看视频 | 久久网一区二区三区 | 99视频在线免费观看 | 九九久久精品视频 | 国产精品久久久久久久久久免费看 | 午夜在线影院 | 亚洲高清视频在线观看 | 国产欧美日韩精品一区二区三区 | 久久91av | 亚洲成人精品一区 | 日韩精品一区二区三区中文在线 | 午夜欧美一区二区三区在线播放 | 欧美偷偷 | 亚洲福利一区 | 三级黄色大片网站 | 久久精品国产99国产精品亚洲 | 久久精品国产一区二区三区不卡 | www久久久| 国产亚洲网站 | 成人在线免费电影 | 国产欧美一区二区三区在线看 | 亚洲狠狠爱一区二区三区 | 人人干人人舔 | 少妇精品亚洲一区二区成人 | 欧美一二精品 | 国产精品一区二区在线 |