找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2861|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機(jī)與上位機(jī)的通信系統(tǒng)設(shè)計(jì)的問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我們本次的作業(yè)是怎么用上位機(jī)通過(guò)串口操作控制單片機(jī)模塊控制八個(gè)發(fā)光二極管的發(fā)光狀態(tài)。
我是在單片機(jī)貼吧看的一個(gè)大神給出的答案,然后自己加工了一下,可是沒法控制P2口的明滅
這是我的proteus圖:

這是程序圖:
#include<reg51.h>
#define         uchar  unsigned char
uchar num=0;
void delayms(int z)
{
         int x,y;
        for(x=z;x>0;x--)
         for(y=110;y>0;y--);
}
void Uart_init()
{
        SCON=0xd0;          //SM1=1  REN=1
        TMOD=0x20;          //D5=1 D4=0 即M1=1 M0=0
        TH1=0xfd;         //TH1=0XFD TL1=0XFD 將波特率設(shè)為9600
        TL1=0xfd;
        TR1=1;        //啟動(dòng)定時(shí)器1
        ES=1;                //打開串口中斷
        EA=1;        //打開總中斷
}
void main()
{
        Uart_init();
        while(1);
}         
void interrupt_uart() interrupt 4                //串口中斷優(yōu)先等級(jí)為4
{
        if(TI)
        {
                 TI=0;
                 REN=1;   //不發(fā)送時(shí)允許接收        
        }
        if(RI)
        {
                 RI=0;     //先把接收標(biāo)志位清零
                num=SBUF;  //把數(shù)據(jù)送給SBUF
                P2=num;
                num++;
                SBUF=num;  //SBUF再接收加1以后的數(shù)據(jù)
                REN=0;     //發(fā)送時(shí)不允許接收
                        
        }
}

可是還是沒法通過(guò)串口調(diào)試助手發(fā)送指令控制二極管發(fā)光
PS:波特率,COM之類的都沒問(wèn)題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:82765 發(fā)表于 2017-5-3 16:26 | 只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽
回復(fù)

使用道具 舉報(bào)

板凳
ID:196125 發(fā)表于 2017-5-3 17:15 | 只看該作者
你這個(gè)能查看串口調(diào)試工具發(fā)送的數(shù)據(jù)的嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:18297 發(fā)表于 2017-5-3 19:37 | 只看該作者
1、可以如圖連接電路圖并在proteus中選擇波特率9600;
2、串口調(diào)試程序中需要選擇十六進(jìn)制發(fā)送;
3、經(jīng)過(guò)仿真軟件可以和串口通訊:功能為P2口輸出輸入的十六進(jìn)制數(shù)值,并返回?cái)?shù)值加1;

123.jpg (197.49 KB, 下載次數(shù): 60)

123.jpg
回復(fù)

使用道具 舉報(bào)

5#
ID:7485 發(fā)表于 2017-5-3 19:57 | 只看該作者
               RI=0;     //先把接收標(biāo)志位清零
                num=SBUF;  //把數(shù)據(jù)送給SBUF    這是接收的語(yǔ)句  
                P2=num;
                num++;
                SBUF=num;  //SBUF再接收加1以后的數(shù)據(jù)   這是向外發(fā)送語(yǔ)句
            REN=0;     //發(fā)送時(shí)不允許接收

電腦上用的是什么串口工具?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表