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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3532|回復: 10
收起左側

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

[復制鏈接]
ID:246395 發表于 2017-11-6 09:56 | 顯示全部樓層 |閱讀模式
本人初入單片機,小白一枚,現在用的開發板的單片機是stc89c52, 單片機的p20---p27口接的LED,想在電腦端 用“串口調試助手”直接控制這幾個LED燈 的亮或滅,  不知道怎么寫程序,大神能幫忙寫一個嗎,我研究研究,謝謝了
1.jpg
2.jpg
回復

使用道具 舉報

ID:7485 發表于 2017-11-6 10:38 | 顯示全部樓層
單片機的接收程序?單片機設置波特率,串口中斷接收,將接收到的數據送P2口。電腦上的可以用“串口助手”。
捕獲.JPG
回復

使用道具 舉報

ID:246395 發表于 2017-11-6 10:47 | 顯示全部樓層
ahshmj 發表于 2017-11-6 10:38
單片機的接收程序?單片機設置波特率,串口中斷接收,將接收到的數據送P2口。電腦上的可以用“串口助手”。 ...

不好意思我小白一枚,表達不準確,我要就是燒到單片機上的那個代碼,還有 怎么設置這個穿孔助手軟件
回復

使用道具 舉報

ID:243921 發表于 2017-11-6 11:30 | 顯示全部樓層
你去找一下單片機串口例程的源碼  然后在源碼的基礎上修改一下就可以實現了  自己多看看書 多敲敲代碼  你這個其實不難的
自己動手才有意思
回復

使用道具 舉報

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


無標題.jpg
回復

使用道具 舉報

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      
} 無標題.jpg

回復

使用道具 舉報

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

還是看不明白你的意思。
回復

使用道具 舉報

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的串口調試功能。如圖所示設置就可以了。
1.jpg

注意:串口號是你的號,這里的COM3是我的。
回復

使用道具 舉報

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 11:26 | 顯示全部樓層
且聽風吟1314 發表于 2017-11-7 10:05
非常感謝,我現在通過以上程序能用串口控制這幾個LED了,但是如果要把其它P口加入到里面一起控制的話,如 ...

你先將這個程序好好看看吧。
看這么幾個方面?
第一:串口通訊都要設置些什么寄存器?
第二:每個寄存器的值是怎么來的?可不可以改變?
第三:控制部分在哪里?為什么可以控制?(這個看懂了,你自然會控制其它I/O口了)
我這個程序,只能是個示范程序,其實真的要完成有意義的控制,還有很多內容,努力學吧,祝成功!
回復

使用道具 舉報

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;
        }       
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜av电影院 | 久久精品国产一区 | 午夜看电影在线观看 | 韩国毛片一区二区三区 | 国产一伦一伦一伦 | 中文字幕爱爱视频 | 激情五月婷婷综合 | 成人免费看黄 | 欧洲一级视频 | 99久久中文字幕三级久久日本 | 欧美黄页 | 免费在线看黄 | 日韩免 | 亚洲欧美综合网 | 91精品国产91久久久久游泳池 | av片在线播放 | 精品1区 | 视频在线一区二区 | 中文字幕av在线播放 | 亚洲欧美中文日韩在线v日本 | www.久草.com | 国产高清精品在线 | 久在线 | 欧美激情精品久久久久 | 91九色porny首页最多播放 | 中文字幕av亚洲精品一部二部 | v片网站 | 亚洲a在线视频 | 日韩精品一区二区三区高清免费 | 91在线视频免费观看 | 欧美一区二区免费 | 国产精品99久久久久久久久久久久 | 婷婷免费视频 | 日韩精品一区二区三区中文在线 | 91看片在线观看 | 国产精品久久久久久久7电影 | 久久久久亚洲精品中文字幕 | 日韩一区二区三区在线 | 亚洲国产精品一区二区第一页 | 亚洲欧洲精品在线 | 男人天堂99 |