欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機4×4行列矩陣鍵程序
[打印本頁]
作者:
bhjyqjs
時間:
2018-11-19 14:51
標題:
單片機4×4行列矩陣鍵程序
/*************************************************************************
工程名:4×4行列矩陣鍵盤
作 者:老芹
*************************************************************************/
#include"reg51.h"
#include"LCD1602.h"
#include"hardware.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
uchar code tab[4][4] = { {'1','2','3','A'}, //0~9,A~D,*,#的鍵值
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
extern LCD_int(); //初始化LCD
void LCD_write_com(uchar com); //寫一個字節數據到LCD
void delay(uchar a)
{
uint i,j;
for(i=a;i>0;i--)
for(j=110;j>0;j--);
}
uchar keyscan() //鍵盤掃描
{
uchar key_H,key_L,key_temp,key,row,column;
key_data = 0xf0; //高四位做輸入
if (key_data == 0xf0) //沒有按鍵動作
{
key = 0;
return(key);
}
while(1)
{
delay(5);
if(key_data==0xf0) //是干擾,退出
{
key = 0;
return(key);
}
key_H = key_data;
key_data = 0x0f; //低四位做輸入
_nop_(); //STC等高速51單片機,在端口置"1",后,如果立即讀數據,會讀出不確定值,所以加入短暫延時
_nop_();
key_L = key_data;
while(key_data!=0x0f); //按鍵是否放開
key_temp = key_H|key_L;
switch(key_temp)
{
case 0x7e:row=3;column=0;break; //顯示"*"
case 0x7b:row=3;column=2;break; //顯示"#"
case 0xe7:row=0;column=3;break; //顯示"A"
case 0xd7:row=1;column=3;break; //顯示"B"
case 0xb7:row=2;column=3;break; //顯示"C"
case 0x77:row=3;column=3;break; //顯示"D"
case 0x7d:row=3;column=1;break; //顯示"0"
case 0xee:row=0;column=0;break; //顯示"1"
case 0xed:row=0;column=1;break; //顯示"2"
case 0xeb:row=0;column=2;break; //顯示"3"
case 0xde:row=1;column=0;break; //顯示"4"
case 0xdd:row=1;column=1;break; //顯示"5"
case 0xdb:row=1;column=2;break; //顯示"6"
case 0xbe:row=2;column=0;break; //顯示"7"
case 0xbd:row=2;column=1;break; //顯示"8"
case 0xbb:row=2;column=2;break; //顯示"9"
}
key=tab[row][column];
return (key);
}
}
void main()
{
uchar temp,i;
LCD_int(); //1602液晶模塊初始化
LCD_prints("Welcome");
P0=0xff;
while(1)
{
temp=keyscan();
if(temp!=0)
{
P0=temp;
LCD_set_position(0x40+i);
LCD_printc(temp);
i++;
if(i==17)
{
i=0;
LCD_write_com(0x01);
LCD_prints("Welcome");
LCD_set_position(0x40+i);
LCD_printc(temp);
}
}
}
}
作者:
admin
時間:
2018-11-19 17:06
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
作者:
bhjyqjs
時間:
2018-11-20 08:28
1.png
(77.1 KB, 下載次數: 56)
下載附件
4*4行列矩陣鍵盤
2018-11-20 08:25 上傳
作者:
bhjyqjs
時間:
2018-11-20 08:30
hardware.H:
#include<STC15F2K60S2.h>
#ifndef __HARDWAR_H__
#define __HARDWAR_H__
/*---------------------------------------------------------
LCD數據、控制口定義
---------------------------------------------------------*/
#define LCD_DATA P1 //LCD的數據口
#define key_data P3 //矩陣鍵盤的數據口
sbit LCD_BUSY=LCD_DATA^7; //LCD忙信號位
sbit LCD_RW=P2^0; //LCD讀寫控制
sbit LCD_RS=P2^1; //LCD寄存器選擇
sbit LCD_EN=P2^2; //LCD使能信號*/
/*---------------------------------------------------------
I2C-EEROM接口定義
---------------------------------------------------------*/
sbit SDA=P2^4; //I2C總線數據
sbit SCL=P2^3; //I2C總線時鐘
/*---------------------------------------------------------
DS1302接口定義
---------------------------------------------------------*/
sbit reset=P2^7;
sbit sclk=P2^6;
sbit io=P2^5;
#endif
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1