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

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

QQ登錄

只需一步,快速開始

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

這個(gè)程序到底哪里出錯(cuò)了QAQ

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:191466 發(fā)表于 2017-4-22 00:42 來自觸屏版 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
32黑幣
目的是按左邊單片機(jī)上的按鈕來控制右邊的燈泡亮,左邊的單片機(jī)的程序是這樣的:
#include<reg51.h>
#include<intrins.h>
unsigned char a;
void main()
{
a=0xfe;
EA=1;
ES=1;
EX0=1;
IT0=1;
TMOD=0x02;
TH0=0xfd;
TL0=0xfd;
TR0=1;
SCON=0x50;
while(1);
}

void int0() interrupt 0
{
SBUF=a;
a=_crol_(a,1);
}
右邊的單片機(jī)的程序是這樣的:
#include<reg51.h>
void main()
{
EA=1;
ES=1;
SCON=0x50;
TMOD=0x02;
TH0=0xfd;
TL0=0xfd;
TR0=1;
while(1);


}void rec() interrupt 4
{
RI=0;
P1=SBUF;
}
TXD接的RXD,但是運(yùn)行后按按鈕燈還是不亮,我是萌新QAQ求大神指點(diǎn)~

IMG_2320.JPG (90.21 KB, 下載次數(shù): 120)

IMG_2320.JPG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:151348 發(fā)表于 2017-4-22 08:57 | 只看該作者
昨天看到了類似的問題,你仿真圖里的單片機(jī)晶振頻率設(shè)置的是多少,12MHz?
回復(fù)

使用道具 舉報(bào)

板凳
ID:162136 發(fā)表于 2017-4-22 09:43 | 只看該作者
TR0=1;改為TR1=1;試試,c51用TR1的溢出率,不是TR0
回復(fù)

使用道具 舉報(bào)

地板
ID:162136 發(fā)表于 2017-4-22 09:44 | 只看該作者
把程序的TR0=1;改為TR1=1;試試
回復(fù)

使用道具 舉報(bào)

5#
ID:47286 發(fā)表于 2017-4-22 13:44 | 只看該作者
左邊的單片機(jī)的程序是這樣的:

#include<reg51.h>

#define uchar unsigned char

sbit key=P1^0;                //定義按鍵所在端口

uchar a;                        //定義變量a 存放要發(fā)送的數(shù)據(jù)

void Init_UART()        //串口初始化 12T/定時(shí)器1作波特率發(fā)生器
{
        PCON |= 0x80;                        //使能波特率倍速位SMOD
        SCON = 0x50;                        //8位數(shù)據(jù),可變波特率
        AUXR &= 0xBF;                        //定時(shí)器1時(shí)鐘為Fosc/12,即12T
        AUXR &= 0xFE;                        //串口1選擇定時(shí)器1為波特率發(fā)生器
        TMOD &= 0x0F;                        //清除定時(shí)器1模式位
        TMOD |= 0x20;                        //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
        TL1=TH1=xxxx;                        //設(shè)定定時(shí)初值 (你自己定義波特率)
        ET1 = 0;                                //禁止定時(shí)器1中斷
        TR1 = 1;                                //啟動(dòng)定時(shí)器1
        ES=1;                                        //開串口中斷
}

void delay()                                        //延時(shí)程序 自己寫 20ms夠了
{
        //...............
}

void main()
{
        Init_UART();        //初始化UART

        a=0xfe;                        //賦值 要發(fā)送的數(shù)據(jù)
       
        while(1)                        //主循環(huán)
        {
                if(key==0)                        //如果 按鍵按下
                {
                        delay();                        //防抖
                        if(key==0)                        //如果按鍵依舊按下
                        {
                                while(!TI);                        //等到按鍵釋放才動(dòng)作
                                SBUF=a;                                //給串口緩沖區(qū)傳送數(shù)據(jù)
                                while(!TI);                        //等待發(fā)送標(biāo)記
                        }
                }
        }
}

右邊的單片機(jī)的程序是這樣的:

#include<reg51.h>
#include<intrins.h>

#define uchar unsigned char

uchar b=0;                        //定義變量b 存放收到的數(shù)據(jù)
bit flag_uart=0;        //定義標(biāo)記 是否接收到數(shù)據(jù)

void Init_UART()        //串口初始化 12T/定時(shí)器1作波特率發(fā)生器
{
        PCON |= 0x80;                        //使能波特率倍速位SMOD
        SCON = 0x50;                        //8位數(shù)據(jù),可變波特率
        AUXR &= 0xBF;                        //定時(shí)器1時(shí)鐘為Fosc/12,即12T
        AUXR &= 0xFE;                        //串口1選擇定時(shí)器1為波特率發(fā)生器
        TMOD &= 0x0F;                        //清除定時(shí)器1模式位
        TMOD |= 0x20;                        //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
        TL1=TH1=xxxx;                        //設(shè)定定時(shí)初值 (你自己定義波特率 和發(fā)送的一樣)
        ET1 = 0;                                //禁止定時(shí)器1中斷
        TR1 = 1;                                //啟動(dòng)定時(shí)器1
        ES=1;                                        //開串口中斷
}

void Server_UART() interrupt 4        //中斷4 服務(wù)
{
        TI=0;                                                                //發(fā)送標(biāo)志位 TI置0       
       
        if(RI==1)                                                        //如果接收位1 有數(shù)據(jù)接收
        {
                RI=0;                                                                //清除接收標(biāo)志 硬件可以接收數(shù)據(jù)
                b=SBUF;                                                                //從接收緩沖區(qū)SBUF讀取數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)RX
                flag_uart=1;                                                //接收標(biāo)記置1 收到數(shù)據(jù)
        }
}

void main()
{
        P1=0x00;                        //顯示端口清零
       
        Init_UART();                //串口初始化
       
        while(1)                        //主循環(huán)
        {
                if(flag_uart==1)        //如果 接收標(biāo)記為1 收到數(shù)據(jù)
                {
                        flag_uart=0;                //接收標(biāo)記清零 可以再次接收
                        P1=b;                                //賦值 P1端口值為收到的數(shù)據(jù)
                }
        }
}
回復(fù)

使用道具 舉報(bào)

6#
ID:191466 發(fā)表于 2017-4-22 16:46 來自觸屏版 | 只看該作者
bayga456 發(fā)表于 2017-4-22 09:43
TR0=1;改為TR1=1;試試,c51用TR1的溢出率,不是TR0

謝謝,就是TR0的問題!
回復(fù)

使用道具 舉報(bào)

7#
ID:122949 發(fā)表于 2017-4-22 18:04 | 只看該作者
內(nèi)部定時(shí)器的設(shè)置問題
回復(fù)

使用道具 舉報(bào)

8#
ID:192443 發(fā)表于 2017-4-22 19:14 | 只看該作者
同求幫助
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区国产 | 亚洲欧美aⅴ | av在线免费观看网站 | 中文字幕免费视频 | 日韩视频中文字幕 | 色综合国产| 亚洲国产成人精品女人久久久野战 | 91精品国产乱码久久久久久 | 欧美www在线| 在线观看中文字幕亚洲 | 婷婷精品 | 国产精彩视频 | 香蕉婷婷 | 一区二区三区中文字幕 | 亚洲精品久久久9婷婷中文字幕 | 国产农村妇女毛片精品久久麻豆 | 欧美成年视频 | 精品久久中文字幕 | www.日日干| 国产精品18毛片一区二区 | 欧美一级黄色免费看 | 久久a久久 | 国产精品三级 | 免费的日批视频 | 久久成人av电影 | 一色一黄视频 | 国产精品久久久久久婷婷天堂 | 中文字幕专区 | 中文字幕国产精品 | 欧美成视频在线观看 | 欧美激情国产日韩精品一区18 | 亚洲精品久久久久久久不卡四虎 | 日韩视频在线一区二区 | 99亚洲综合 | 青青草一区二区三区 | av大片| 亚洲午夜网| 欧美成人久久 | 性一交一乱一透一a级 | 国产色网| 天堂资源 |