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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1172|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品免费在线观看 | 精品免费国产一区二区三区 | 免费av在线| 日本激情一区二区 | 草久久久| 国产欧美日韩在线观看 | 国产91色在线 | 亚洲 | 国产女人第一次做爰毛片 | 欧美一级久久精品 | av毛片 | 中文天堂在线一区 | 成人综合一区 | 日本午夜一区二区三区 | 久久精品无码一区二区三区 | 国产精品免费在线 | 天天看夜夜 | 成人精品免费视频 | 免费黄色日本 | 免费永久av | 一级爱爱片 | 久久伊人影院 | 中文字幕电影在线观看 | 国产1区 | 国产一区视频在线 | 欧美精品日韩 | 国产精品乱码一二三区的特点 | 日本高清在线一区 | 在线免费观看日本视频 | 久久国产精品久久久久久 | 国产一区二区精品在线 | 手机在线一区二区三区 | 最新黄色在线观看 | h视频免费在线观看 | 欧美激情精品久久久久久 | 欧美二区在线 | 国产 日韩 欧美 在线 | 国产一区二区三区视频 | 国产在线www| 日韩一级二级片 | 午夜电影网站 | 精品不卡 |