资源简介
4*4矩阵键盘+1602液晶显示的proteus仿真实验
代码片段和文件信息
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^0;
sbit EN=P3^1;
uchar tab_key[50];
uchar code tab[]=“0123456789abcdef“;
uchar n=0tempkey;
/************声明区***************/
void lcd_disp();
void lcd_init();
void write_com(uchar);
void write_data(uchar);
void delay(uint);
void key_scan();
void key_manage1();
void key_manage2();
void key_manage3();
void key_manage4();
void key_manage5();
void key_manage6();
void key_manage7();
void key_manage8();
void key_manage9();
void key_manage10();
void key_manage11();
void key_manage12();
void key_manage13();
void key_manage14();
void key_manage15();
void key_manage16();
/***********主函数***********/
void main()
{
lcd_init();
write_com(1);
while(1)
{
key_scan();
lcd_disp();
}
}
/**********LCD显示***********/
void lcd_disp()
{
uchar ai=0;
write_com(0x80);
for(i=0;i {
a=tab_key[i];
write_data(tab[a]);
}
}
/**********LCD初始**********/
void lcd_init()
{
EN=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
}
/**********写命令************/
void write_com(uchar com)
{
RS=0;
P0=com;
delay(3);
EN=1;
delay(5);
EN=0;
}
/**********写数据************/
void write_data(uchar dat)
{
RS=1;
P0=dat;
delay(3);
EN=1;
delay(5);
EN=0;
}
/**********键扫描************/
void key_scan()
{
P2=0xfe;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(100);
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xee:
key_manage1();
break;
case 0xde:
key_manage2();
break;
case 0xbe:
key_manage3();
break;
case 0x7e:
key_manage4();
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xfd;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(100);
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xed:
key_manage5();
break;
case 0xdd:
key_manage6();
break;
case 0xbd:
key_manage7();
break;
case 0x7d:
key_manage8();
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xfb;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(100);
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xeb:
key_manage9();
break;
case 0xdb:
key_manage10();
break;
case 0xbb:
key_manage11();
break;
case 0x7b:
key_manage12();
break;
}
while(temp!=0xf0)
{
temp=P2;
temp=temp&0xf0;
}
}
}
P2=0xf7;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(100);
if(temp!=0xf0)
{
temp=P2;
switch(temp)
{
case 0xe7:
key_manage13();
break;
case 0xd7:
key_manage14();
break;
case 0xb7:
key_manage15();
break;
case
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12850 2011-07-03 19:27 441602\Keil\441602-1
文件 2438 2011-07-03 19:27 441602\Keil\441602-1.hex
文件 60 2011-07-03 19:27 441602\Keil\441602-1.lnp
文件 20890 2011-07-03 19:27 441602\Keil\441602-1.M51
文件 1544 2011-07-03 15:15 441602\Keil\441602-1.plg
....... 55631 2011-07-03 19:57 441602\Keil\441602-1.uvopt
文件 13395 2011-04-15 00:41 441602\Keil\441602-1.uvproj
....... 55629 2011-04-18 20:51 441602\Keil\441602-1_uvopt.bak
文件 0 2011-04-14 22:59 441602\Keil\441602-1_uvproj.bak
文件 6376 2009-05-07 14:37 441602\Keil\STARTUP.A51
文件 14048 2011-07-03 19:27 441602\Keil\STARTUP.LST
文件 758 2011-07-03 19:27 441602\Keil\STARTUP.OBJ
文件 3991 2011-07-03 19:57 441602\Keil\text.c
文件 9805 2011-07-03 19:27 441602\Keil\text.LST
文件 15055 2011-07-03 19:27 441602\Keil\text.OBJ
文件 88384 2011-07-03 19:57 441602\Proteus\441602-1.DSN
文件 768 2011-07-03 19:57 441602\Proteus\441602-1.PWI
文件 88384 2011-07-03 12:27 441602\Proteus\Last Loaded 441602-1.DBK
目录 0 2011-07-03 19:57 441602\Keil
目录 0 2011-07-03 19:57 441602\Proteus
目录 0 2011-06-22 16:04 441602
----------- --------- ---------- ----- ----
390006 21
- 上一篇:p0lfc7.docx
- 下一篇:干扰信道的干扰对齐算法综述
相关资源
- DHT11程序液晶1602显示湿度和温度
- VHDL描述4*4标准矩阵键盘扫描读取并点
- VHDL 4*4矩阵键盘源程序
- FPGA驱动LCD1602完整工程
- LCD1602 PCB封装库
- 基于89C51的等精度频率计LCD1602显示基
- 51单片机pwm波,lcd1602,l298n带prtues仿真
- 基于STC12C5A的DHT11液晶1602显示程序
- SHt11与1602应用源代码
- 用STM32驱动的4*4行列矩阵键盘
- 51单片机用温度传感器控制直流电机转
- 基于msp430g2553的矩阵键盘
- 1602LCD显示仿手机键盘按键字符
- FPGA1602程序
- 51单片机 矩阵键盘 protues ISIS 源码和仿
- 无线测温程序
- 单片机温湿度检测源代码 dht11 lcd160
- msp430g2553扫描矩阵键盘
- 51单片机Protues仿真舵机,可以通过按
- 单片机C51-电子钟1 LCD1602显示 上电正常
- DHT11温湿度 1602显示 89C52单片机
- 51单片机ADC0832_1602 proteus仿真源程序加
- 51单片机ADC0832电压测量液晶1602显示的
- 4x4矩阵键盘源程序-汇编
- 51单片机1602+ADIIC+按键
- 基于51单片机和lcd1602的adc0804测电压电
- 基于DS18B20的水温控制系统 仿真+程序
- MSP430控制LCD1602显示
- 电子钟DS1302+LCD1602+89C52+proteus仿真图
- STM32 4*4矩阵键盘扫描方式
评论
共有 条评论