欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2910|回復: 4
收起左側

想通過單片機中斷的方式觸發發送程序,但是就是一直沒有數據發出來

[復制鏈接]
ID:337659 發表于 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);
}

回復

使用道具 舉報

ID:277550 發表于 2018-5-24 23:11 | 顯示全部樓層
snap000520.png

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



回復

使用道具 舉報

ID:331575 發表于 2018-5-24 23:25 | 顯示全部樓層
試試樓上說的,換一種思路去寫程序
回復

使用道具 舉報

ID:337659 發表于 2018-5-25 08:48 | 顯示全部樓層
devcang 發表于 2018-5-24 23:11
試試這樣的寫法————即是不要在中斷中寫長時間的代碼,除非中斷暫停了。

你好,我試了一下你的這個寫法,可是還是沒有數據發送出來,還有你的while循環里面的語句不是很明白
回復

使用道具 舉報

ID:213173 發表于 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);
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表