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

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

QQ登錄

只需一步,快速開始

搜索
查看: 1948|回復(fù): 5
收起左側(cè)

求大佬指點(diǎn),51單片機(jī)串口和矩陣按鍵程序的問(wèn)題

[復(fù)制鏈接]
ID:903513 發(fā)表于 2021-4-19 19:23 | 顯示全部樓層 |閱讀模式
我對(duì)這個(gè)程序有點(diǎn)小疑問(wèn),如果我一直沒(méi)有按按鍵一直沒(méi)有按下,那么程序就會(huì)停在while(!TI)里面,那為什么我在單片機(jī)里面會(huì)看到小燈一直閃爍?
單片機(jī)源程序如下:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z);
sbit wela=P2^7;
sbit dula=P2^6;
uint b;
int c;
uint d=0;
uchar DAT;
void delay(uint z)
{
    uint x,y;
     for(x=z;x>0;x--)
    {
         for(y=144;y>0;y--);
    }
}
void scon_crol()
{
    SM0=0;//工作方式1 八位數(shù)據(jù)傳輸
    SM1=1;
    REN=1;//允許接收數(shù)據(jù)
    TMOD=0x20;//計(jì)時(shí)器1工作模式2 八位自動(dòng)裝填計(jì)時(shí)器
    TH1=0xfd;//計(jì)時(shí)器初值
    TL1=0xfd;//自動(dòng)裝填:TL1=TH1
    TR1=1;//打開計(jì)時(shí)器
}
uchar keydown()
{
    uchar a;
    P3=0xf0;
    if(P3 != 0xf0)
    {
        delay(5);
        if(P3 != 0xf0)
        {
            a=P3;
            P3=0x0f;
            a=a|P3;
        }
        while(P3!=0x0f);
    }
    P1=0xfe;//小燈閃爍
    delay(50);
    P1=0xff;
    delay(50);
    return a;
}
uchar keypro()
{
    uchar key_value;
    switch(keydown())
    {
        case 0xee: key_value =0x01; break;
        case 0xde: key_value =0x02; break;
        case 0xbe: key_value =0x03; break;
        case 0x7e: key_value =0x04; break;
        
        case 0xed: key_value =0x05; break;
        case 0xdd: key_value =0x06; break;
        case 0xbd: key_value =0x07; break;
        case 0x7d: key_value =0x08; break;
        
        case 0xeb: key_value =0x09; break;
        case 0xdb: key_value =0x0a; break;
        case 0xbb: key_value =0x0b; break;
        case 0x7b: key_value =0x0c; break;
        
        case 0xe7: key_value =0x0d; break;
        case 0xd7: key_value =0x0e; break;
        case 0xb7: key_value =0x0f; break;
        case 0x77: key_value =0x10; break;
    }
    P1=0xfb;//小燈閃爍
    delay(50);
    P1=0xff;
    delay(50);
    return (key_value);
}
void main()
{
    scon_crol();        
    while(1)
    {
        SBUF =keypro();
        while(!TI);
        TI=0;         
    }
}


回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2021-4-19 21:01 | 顯示全部樓層
傳輸完數(shù)據(jù),硬件將TI置1的,跟你按鍵沒(méi)關(guān)系,自然LED會(huì)閃爍了
回復(fù)

使用道具 舉報(bào)

ID:903513 發(fā)表于 2021-4-19 21:09 | 顯示全部樓層
glinfei 發(fā)表于 2021-4-19 21:01
傳輸完數(shù)據(jù),硬件將TI置1的,跟你按鍵沒(méi)關(guān)系,自然LED會(huì)閃爍了

那如果是因?yàn)檫@個(gè)原因,在我沒(méi)按下按鍵時(shí),SBUF會(huì)被重復(fù)賦a的初值0x00,但我在串口助手上并沒(méi)有看到這種情況?
回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2021-4-19 22:15 | 顯示全部樓層
sql_123 發(fā)表于 2021-4-19 21:09
那如果是因?yàn)檫@個(gè)原因,在我沒(méi)按下按鍵時(shí),SBUF會(huì)被重復(fù)賦a的初值0x00,但我在串口助手上并沒(méi)有看到這種 ...

ASCII有33個(gè)不能顯示的哦,0x00排名第一;另外,我沒(méi)看到哪有a的初值,你兩處都不賦初值,過(guò)于依賴編譯器了。
回復(fù)

使用道具 舉報(bào)

ID:903513 發(fā)表于 2021-4-19 23:09 | 顯示全部樓層
glinfei 發(fā)表于 2021-4-19 22:15
ASCII有33個(gè)不能顯示的哦,0x00排名第一;另外,我沒(méi)看到哪有a的初值,你兩處都不賦初值,過(guò)于依賴編譯器 ...

懂了懂了,謝謝大佬啦
回復(fù)

使用道具 舉報(bào)

ID:390416 發(fā)表于 2021-4-20 09:23 | 顯示全部樓層
串口1打印程序 可以打印3個(gè)十六位的變量 波特率9600 http://www.zg4o1577.cn/bbs/dpj-201660-1.html

串口發(fā)送 不需要while死等 串口接收?qǐng)?zhí)行軟件復(fù)位 http://www.zg4o1577.cn/bbs/dpj-200927-1.html
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人欧美一区二区三区在线播放 | 福利片一区二区 | 国产精品九九 | 999久久久久久久久6666 | 中文字幕在线观看成人 | 日韩欧美一区二区三区四区 | 久久精品国产99国产精品 | 影音先锋中文字幕在线观看 | 美女露尿口视频 | 女人av| 日韩精品成人 | 欧美日韩国产精品一区二区 | 久久精品亚洲精品国产欧美 | 天天干狠狠 | 我要看黄色录像一级片 | 日本精品国产 | 欧美一区二区大片 | 四虎在线观看 | 最新国产福利在线 | 国产欧美日韩一区二区三区在线 | 色网在线观看 | 国产成人精品一区二区三区 | 在线播放国产视频 | 亚洲国产精品视频一区 | 国产中文字幕在线观看 | 久久久久国产精品一区二区 | 91久久精品国产91久久性色tv | 免费在线性爱视频 | 黄a网| 超碰美女在线 | 欧美高清视频一区 | 欧美亚洲视频 | 国产精品久久久久久模特 | www日本高清 | 有码一区 | 国产伦精品一区二区 | 国产精品久久久久久久久免费桃花 | 色综合99| 午夜影院网站 | 黄色片免费看视频 | 精品国产一区二区三区久久久久久 |