`程序调试没有错误,放到
仿真里面按键不起作用,一直停在初始状态,,,,求大神指导!急急急!
#include
#include
#define uchar unsigned char
#define uint unsigned int
***it beep = P1^4; //蜂鸣器IO口定义
bit flag_300ms ;
***it CS=P2^4; //CS定义为P2口的第4位脚,连接ADC0832CS脚
***it SCL=P2^3; //SCL定义为P2口的第3位脚,连接ADC0832SCL脚
***it DO=P2^2; //DO定义为P2口的第4位脚,连接ADC0832DO脚
***it K1=P1^6;
***it K2=P1^7;
***it rs=P1^0; //1602数据/命令选择引脚 H:数据 L:命令
***it rw=P1^1; //1602读写引脚 H:数据寄存器 L:指令寄存器
***it e =P1^2; //1602使能引脚 下降沿触发
uchar a_a;
uchar code table_num[]={"0123456789abcdefg"};
// 按键的IO变量的定义
uchar key_can; //按键值的变量
uchar menu_1; //菜单设计的变量
uint TRX_h;
uint TRX; //天燃气
//延时1ms函数
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i
for(j=0;j<120;j++);
}
//小延时
void delay_uint(uint q)
{
while(q--);
}
//1602命令函数
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}
//1602写数据函数
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(25);
e=1;
delay_uint(100);
e=0;
}
//lcd1602上显示两位十进制数
/*void write_sfm2(uchar hang,uchar add,uint date)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
write_data(0x30+date/10%10);
write_data(0x30+date%10);
}
*/
//lcd1602上显示两位十进制数
void write_sfm_TRX(uchar hang,uchar add,uint date)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
write_data(0x30+date/100%10);
write_data(0x30+date/10%10);
write_data(0x30+date%10);
}
//lcd1602上显示这字符函数
void write_string(uchar hang,uchar add,uchar *p)
{
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1)
{
if(*p == '