久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
4X4矩陣鍵盤掃描lcd1602液晶顯示
[打印本頁]
作者:
daming
時間:
2014-12-30 01:33
標題:
4X4矩陣鍵盤掃描lcd1602液晶顯示
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit BEEP=P3^6;
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
sbit BF=P0^7;
uchar code digit[]="0123456789ABCDEF";
uchar code key_code[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77 };
uchar code str[]="Input Data:";
uchar key;
/************************************
函數功能:1ms基準延時
入口參數:n
************************************/
void delay1ms(unsigned int n )
{
unsigned char i;
while(n--)
for(i=0;i<115;i++);
}
/************************************
函數功能: 500us延時
************************************/
void delay500us()
{
uchar i;
for(i=0;i<57;i++);
}
/************************************
函數功能: 蜂鳴器產生1KHZ頻率聲音,
************************************/
void beep()
{
uchar i;
for(i=0;i<200;i++){
BEEP=~BEEP;
delay500us();
}
BEEP=1;
}
/************************************
函數功能:判斷液晶的忙碌狀態
返回值:result=1,忙碌;result=0,不忙
************************************/
bit BusyTest()
{
bit result;
RS=0; //讀狀態時,RS=0,RW=1,E=1
RW=1;
E=1;
_nop_(); //延時一個時鐘周期
_nop_();
_nop_();
_nop_(); //4個周期延時,給硬件反應時間
result=BF;
E=0; //將E置0,不允許讀
return result;
}
/************************************
函數功能:將模式設置指令或顯示地址送入液晶
入口參數:dictate
************************************/
void WriteInstruction(uchar dictate)
{
while(BusyTest()==1); //如果忙就等待
RS=0; //寫指令時,RS=0.RW=0,E=負跳變
RW=0;
E=0; //先將E拉低
_nop_();
_nop_(); //給硬件反應時間
P0=dictate; //將數據送入P0口,即指令或地址
_nop_();
_nop_();
_nop_();
_nop_(); //反應時間
E=1; //上升沿讀入指令或地址
_nop_();
_nop_();
_nop_();
_nop_();
E=0; //當E由高電平跳變成低電平時,液晶模塊開始執行命令
}
/************************************
函數功能:指定字符顯示的實際地址
入口參數:x
************************************/
void WriteAddress(uchar x)
{
WriteInstruction(x|0x80); //顯示位置的確定方法為“0x80+地址碼x”
}
/************************************
函數功能:將數據(ASKII碼)寫入液晶模塊
入口參數:y(字符常量)
************************************/
void WriteData(unsigned char y)
{
while(BusyTest()==1); //如果忙碌就等待
RS=1; //寫數據時RS=1,RW=0,E=負跳變
RW=0;
E=0; //先將E拉低
_nop_();
_nop_();
P0=y;
_nop_();
_nop_();
_nop_();
_nop_(); //反應時間
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0; //當E由高電平跳變成低電平時,液晶模塊開始執行命令
}
/************************************
函數功能:對LCD的顯示模式進行初始化
************************************/
void LcdInt()
{
delay1ms(15); //首次寫指令時給LCD一段較長的反應時間
WriteInstruction(0x38); //顯示模式設置:16X2顯示,5X7點陣,8位數據總線
delay1ms(5);
WriteInstruction(0x38);
delay1ms(5);
WriteInstruction(0x38);
delay1ms(5); //3次寫 設置模式
WriteInstruction(0x0c); //顯示模式設置:顯示開,有光標,光標閃爍
delay1ms(5);
WriteInstruction(0x06); //顯示模式設置:光標右移,字符不移
delay1ms(5);
WriteInstruction(0x01); //清屏
delay1ms(5);
}
/************************************
函數功能: 掃描鍵盤
************************************/
void key_scan()
{
uchar scan1,scan2,keycode,i;
P1=0xf0;
scan1=P1;
if((scan1&0xf0)!=0xf0){ //判斷是否按鍵
delay1ms(15); //延時消陡
scan1=P1;
if((P1&0xf0)!=0xf0){ //二次判斷是否按鍵
P1=0x0f; //線反轉法德核心
scan2=P1;
keycode=scan1|scan2; //組合成鍵編碼
}
for(i=0;i<16;i++){
if(keycode==key_code[i]){ //查表得鍵值
key=i;
}
}
}
else{
P1=0xff; //P1口寫1,輸入狀態
}
}
/***************************************
函數功能:顯示數字
***************************************/
void Display()
{
WriteAddress(0x47);
delay1ms(5);
WriteData(digit[key]);
}
/***********************************
函數功能:主函數
***********************************/
void main()
{
uchar i;
P1=0xff; //寫1,讀狀態
delay1ms(15);
LcdInt();
WriteInstruction(0x01);
delay1ms(5);
WriteAddress(0x02);
delay1ms(5);
for(i=0;str[i]!='\0';i++){
WriteData(str[i]);
delay1ms(10);
}
WriteAddress(0x47);
delay1ms(5);
WriteData('0');
while(1){
P1=0xf0;
if((P1&0xf0)!=0xf0){
delay1ms(15);
if((P1&0xf0)!=0xf0){
key_scan();
Display();
beep();
delay1ms(200);
}
}
}
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲综合资源
|
国产精品成人一区
|
中文字幕在线第二页
|
亚洲成av人片在线观看
|
最新中文字幕在线
|
av国产精品毛片一区二区小说
|
亚洲成色777777在线观看影院
|
波多野结衣先锋影音
|
91网在线观看
|
亚洲国产视频一区二区
|
日本a网站
|
久久精品国产一区
|
av一级久久
|
久久精品av麻豆的观看方式
|
日本在线一区二区三区
|
欧美videosex性极品hd
|
狠狠操婷婷
|
午夜影视
|
国产91在线 | 中日
|
色小姐综合网
|
久久精品国产免费
|
激情久久网
|
精品国产乱码久久久久久闺蜜
|
中文字幕亚洲区一区二
|
国产精品精品久久久
|
国产激情视频
|
caoporn视频在线
|
国产色在线
|
中文字幕国产视频
|
欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1
|
伊人春色在线观看
|
www.日本三级
|
啪视频在线
|
久久久久久久国产
|
欧美精品网站
|
91精品国产91久久久
|
日韩精品无码一区二区三区
|
欧美日韩国产一区二区三区
|
男女下面一进一出网站
|
成人福利
|
久久久久国产精品
|