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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1227|回復: 0
打印 上一主題 下一主題
收起左側

請問下面這個單片機程序為什么按鍵沒有顯示?

[復制鏈接]
跳轉到指定樓層
樓主
ID:880793 發表于 2021-4-10 12:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按鍵掃描:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char  
#define key0 P3^1
#define key1 P3^0
#define key2 P3^2
#define key3 P2^3
#define key4 P2^4
#define key5 P2^5
extern void delay1ms(uint time);

uchar keyscan(void)
{
uchar keyval;
  P3=1;
        if(P3!=0xff)
        {
                delay1ms(10);//延時10ms進行消抖
        if(P3!=0xff)
  {
         if(key0==0) keyval=0;
         if(key1==0) keyval=1;
         if(key2==0) keyval=2;
         if(key3==0) keyval=3;
         if(key4==0) keyval=4;
         if(key5==0) keyval=5;
        }
}
return(keyval);
}

1602顯示:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
extern uchar keyscan(void);

uchar gMode;                                                                // 1是手動模式,2是定時模式,3是光控模式

extern void delay1ms(uint time);
sbit LcdRs_P    = P2^6;       // 1602液晶的RS管腳      
sbit LcdRw_P    = P2^5;       // 1602液晶的RW管腳
sbit LcdEn_P    = P2^7;       // 1602液晶的EN管腳


void LcdWriteCmd(uchar cmd)  // 1602液晶寫命令函數,cmd就是要寫入的命令
{
        LcdRs_P = 0;
        LcdRw_P = 0;
        LcdEn_P = 0;
        P0=cmd;
        delay1ms(2);
        LcdEn_P = 1;   
        delay1ms(2);
        LcdEn_P = 0;        
}

void LcdWriteData(uchar dat)
{
        LcdRs_P = 1;
        LcdRw_P = 0;
        LcdEn_P = 0;
        P0=dat;
        delay1ms(2);
        LcdEn_P = 1;   
        delay1ms(2);
        LcdEn_P = 0;
}

void LcdGotoXY(uchar line,uchar column)  // 液晶光標定位函數
{
        // 第一行
        if(line==0)        
                LcdWriteCmd(0x80+column);
        // 第二行
        if(line==1)        
                LcdWriteCmd(0x80+0x40+column);
}

void LcdPrintStr(uchar *str)   // 液晶輸出字符串函數
{
        while(*str!='\0')
                        LcdWriteData(*str++);
}

void LcdInit()               // 1602液晶初始化函數
{
        LcdWriteCmd(0x38);        // 16*2顯示,5*7點陣,8位數據口
        LcdWriteCmd(0x0C);        // 開顯示,不顯示光標
        LcdWriteCmd(0x06);        // 地址加1,當寫入數據后光標右移
        LcdWriteCmd(0x01);        // 清屏
}

void LcdPrintMode(uchar num) // 顯示模式
{
        switch(num)                        
        {
                case 1: LcdPrintStr("Manual");        break;
                case 2: LcdPrintStr("Timing");        break;
                case 3: LcdPrintStr("Liging");        break;
                default:                                      break;
        }
}

void LcdShowInit()     // 液晶顯示內容的初始化
{  gMode=keyscan();
        LcdGotoXY(0,0);
        LcdPrintMode(gMode);
}

主函數:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
extern uchar keyscan(void);
extern void init(void);
extern void LcdInit(void);
extern void LcdShowInit(void);
extern void LcdPrintMode(uchar keyval);
extern void send_infrared(uchar keyval);
void delay1ms(uint time) {
uint i,j;
for(i=0;i<time;i++)
for(j=0;j<110;j++);
}
void main()
{
uchar keyval;
init();         // 發射模塊初始化
LcdInit();                        // 執行液晶初始化        
LcdShowInit();        // 液晶顯示內容的初始化
        
while(1)
{
keyval=keyscan();
while(keyscan());
if(keyval) {send_infrared(keyval);
LcdShowInit();   
}

}
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情五月婷婷综合 | 韩国理论电影在线 | 久久久久久久久久久久久9999 | 亚洲第一成年免费网站 | 高清久久久 | 久久久久久99 | 欧美a级成人淫片免费看 | 日韩视频―中文字幕 | 欧美国产一区二区 | 精品成人| 在线视频国产一区 | 色婷婷精品| 国产精品九九九 | 午夜精品一区二区三区在线观看 | 国产日韩一区二区三区 | 日韩精品一区二区三区中文在线 | 91xx在线观看 | 99精品久久久久 | 国产精品一区二区三区在线 | 成人精品一区二区 | 亚洲午夜三级 | 亚洲成人精品 | 欧美日韩在线视频一区二区 | 成人二区| 国产精品国产三级国产播12软件 | 欧美aaaaaaaa | 日韩视频高清 | 国产羞羞视频在线观看 | 精品久久国产视频 | 久久国产综合 | 亚洲视频免费在线观看 | 精品美女视频在线观看免费软件 | 精久久| 日韩高清国产一区在线 | 伊人久久国产 | 日韩视频在线一区 | 久久精品91久久久久久再现 | 国产污视频在线 | 黄网站涩免费蜜桃网站 | 亚洲不卡在线观看 | 天天看天天干 |