亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標題: 想通過單片機中斷的方式觸發發送程序,但是就是一直沒有數據發出來 [打印本頁]

作者: 不吐泡的魚    時間: 2018-5-24 22:02
標題: 想通過單片機中斷的方式觸發發送程序,但是就是一直沒有數據發出來
程序主要是想通過在低電平中斷時,將引腳口的狀態發送出來,但是這個一直沒有數據發出來,麻煩各位看一下。謝謝了!
#include <reg51.h>
sbit S=P3^2;
sbit c=P2^1;
void SendOneByte(unsigned char c)
{
    SBUF =0x30+c;
    while(!TI);
    TI = 0;
}
void main(void)
{
    EA=1;//開放總中斷
    EX0=1;//允許使用外中斷
    IT0=0;//低電平觸發中斷
    TMOD = 0x20;
    SCON = 0x50;
    TH1 = 0xFD;
    TL1 = TH1;
    PCON = 0x00;//波特率9600
   while(1)
   ;
}
void int0(void) interrupt 0
{
SendOneByte((unsigned char)c);
}


作者: devcang    時間: 2018-5-24 23:11


試試這樣的寫法————即是不要在中斷中寫長時間的代碼,除非中斷暫停了。




作者: 15942379927    時間: 2018-5-24 23:25
試試樓上說的,換一種思路去寫程序
作者: 不吐泡的魚    時間: 2018-5-25 08:48
devcang 發表于 2018-5-24 23:11
試試這樣的寫法————即是不要在中斷中寫長時間的代碼,除非中斷暫停了。

你好,我試了一下你的這個寫法,可是還是沒有數據發送出來,還有你的while循環里面的語句不是很明白
作者: wulin    時間: 2018-5-25 10:24
#include <reg51.h>
sbit S=P3^2;
sbit c=P2^1;
unsigned char d;
void SendOneByte(unsigned char c)
{
    SBUF =0x30+c;
    while(!TI);
    TI = 0;
}
void main(void)
{
        TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;

        EA=1;//開放總中斷
        EX0=1;//允許使用外中斷
        IT0=0;//低電平觸發中斷
/*        TMOD = 0x20;
        SCON = 0x50;
        TH1 = 0xFD;
        TL1 = 0xFD;
        PCON = 0x00;*/  //波特率9600
        a=0;
        while(1);
   
}
void int0(void) interrupt 0
{
        d=c;
        SendOneByte(d);
}





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1