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

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

QQ登錄

只需一步,快速開(kāi)始

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

基于天祥51單片機(jī) 1602液晶 密碼鎖程序出現(xiàn)亂碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
想問(wèn)問(wèn)論壇里的學(xué)長(zhǎng)們,我這個(gè)鍵盤(pán)檢測(cè)是不是有一點(diǎn)問(wèn)題,為什么通過(guò)矩陣鍵盤(pán)打出來(lái)的是亂碼
我這個(gè)是郭天祥的板子,鍵盤(pán)檢測(cè)和液晶初始化,也主要是按他視頻里教學(xué)打的
#include<reg52.h>
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
#define uint unsigned int
#define uchar unsigned char
uchar code table2[]="MIMA?";
uchar num,temp,num1,num2;
uchar keyscan();
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}         

void write_com(uchar com)//命令子函數(shù)                                                                                                                                                                                                                                                         
{
        lcdrs=0;//時(shí)序
        P0=com;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
}

void write_data(uchar date)
{
        lcdrs=1;
        P0=date;
        delay(5);
        lcden=1;
        delay(5);
        lcden=0;
}

void init()//將液晶初始化函數(shù)
{
        dula=0;
        wela=0;
        lcden=0;
        write_com(0x38);
        write_com(0x0f);
        write_com(0x06);
        write_com(0x01);
        write_com(0x80);               
}

uchar keyscan(uint num1)//鍵盤(pán)檢測(cè)
{
        while(1)
        {         
                 P3=0xfe;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        delay(5);
                        temp=P3;
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                            temp=P3;
                                switch(temp)
                                {
                                        case 0xee:num1=1;                                                
                                        break;
                                        case 0xde:num1=2;                                                
                                        break;
                                        case 0xbe:num1=3;                                                
                                        break;
                                        case 0x7e:num1=4;
                                        break;
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }                        
                }

                P3=0xfd;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                        delay(5);
                        temp=P3;
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                            temp=P3;
                                switch(temp)
                                {
                                        case 0xed:num1=5;
                                        break;
                                        case 0xdd:num1=6;
                                        break;
                                        case 0xbd:num1=7;
                                        break;
                                        case 0x7d:num1=8;
                                        break;
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }
                }

                P3=0xfb;
                temp=P3;
                temp=temp&0xf0;
                if(temp!=0xf0)
                {
                    temp=P3;
                        delay(5);
                        
                        temp=temp&0xf0;
                        if(temp!=0xf0)
                        {
                            temp=P3;
                                switch(temp)
                                {
                                        case 0xeb:num1=9;
                                        break;
                                        case 0xdb:num1=10;
                                        break;               
                                }
                                while(temp!=0xf0)
                                {
                                        temp=P3;
                                        temp=temp&0xf0;
                                }
                        }
                }
        }
                return num1;        
}        

void main()
{
        init();
        for(num=0;num<5;num++)
        {
        write_data(table2[num]);//輸入  MIMA?
        delay(300);
        }
        write_com(0x80+0x40);//換行
        num2=keyscan(num1);//鍵盤(pán)檢測(cè)返回的值賦給num2
        init();
        switch(num2)
                {
                        case 1:write_data('0');break;
                        case 2:write_data('1');break;
                        case 3:write_data('2');break;
                        case 4:write_data('3');break;
                        case 5:write_data('4');break;
                        case 6:write_data('5');break;
                        case 7:write_data('6');break;
                        case 8:write_data('7');break;
                        case 9:write_data('8');break;
                        case 10:write_data('9');break;
                }
                while(1);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:907785 發(fā)表于 2021-4-20 18:55 | 只看該作者
這是原理圖以及單片機(jī)出現(xiàn)的亂碼

51hei圖片20210420185338.png (72.92 KB, 下載次數(shù): 15)

51hei圖片20210420185338.png

51hei圖片20210420185334.png (67.43 KB, 下載次數(shù): 21)

51hei圖片20210420185334.png

51hei圖片20210420185330.png (148.87 KB, 下載次數(shù): 19)

51hei圖片20210420185330.png

51hei圖片20210420185148.jpg (2.78 MB, 下載次數(shù): 25)

51hei圖片20210420185148.jpg
回復(fù)

使用道具 舉報(bào)

板凳
ID:909264 發(fā)表于 2021-4-20 19:57 來(lái)自觸屏版 | 只看該作者
加個(gè)1602的判忙函數(shù)試試。
回復(fù)

使用道具 舉報(bào)

地板
ID:390416 發(fā)表于 2021-4-20 22:52 | 只看該作者
他們的亂碼了 你應(yīng)該學(xué)會(huì)使用框架式編程方式 提高CPU的執(zhí)行效率。
回復(fù)

使用道具 舉報(bào)

5#
ID:907785 發(fā)表于 2021-4-21 18:02 | 只看該作者
5124 發(fā)表于 2021-4-20 19:57
加個(gè)1602的判忙函數(shù)試試。

好的,不過(guò)我還沒(méi)有學(xué)過(guò),我去查一下
回復(fù)

使用道具 舉報(bào)

6#
ID:915754 發(fā)表于 2021-5-5 20:15 來(lái)自觸屏版 | 只看該作者
我也剛學(xué)的郭天祥,純新手。你試試換行之前清零
回復(fù)

使用道具 舉報(bào)

7#
ID:859483 發(fā)表于 2021-5-10 16:49 | 只看該作者
Spidey 發(fā)表于 2021-4-20 18:55
這是原理圖以及單片機(jī)出現(xiàn)的亂碼

有可能是用的端口重復(fù)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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