完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
想问问哪里错啊。 /*电子密码锁*/ #include #include #include #define uchar unsigned char #define uint unsigned int #define C02_write 0xa0 //c02 写地址 #define C02_read 0xa1 //c02 读地址 #define no0 0x28 //定义键码 #define no1 0x14 #define no2 0x24 #define no3 0x44 #define no4 0x12 #define no5 0x22 #define no6 0x42 #define no7 0x11 #define no8 0x21 #define no9 0x41 #define open 0x81 #define modify 0x82 #define enter 0x88 #define backspace 0x84 #define lcm_write_cmd_add XBYTE[0x80FF] //1602 控制地址 #define lcm_write_data_add XBYTE[0x81FF] #define lcm_read_busy_add XBYTE[0x82FF] uchar idata temp5_password[6]={0x00,0x00,0x00,0x00,0x00,0x00}; uchar idata key_code[]={no0,no1,no3,no4,no5,no6,no7,no8,no9}; ***it SCL=P3^0; ***it SDA=P3^1; ***it i=P3^2; ***it led=P3^3; ***it beep=P3^4; bit ack; void delay0(uchar x) // 延时函数 { uchar i; while(x--) { for (i = 0; i<13; i++); } } void delayms(uchar i) { uchar j; for(;i>0;i--) for(j=124;j>0;j--); } void longdelay(uchar i) { uint j; for(;i>0;i--) for(j=10000;j>0;j--); } void keysound() //按键声音函数 { uchar i; for (i=0;i<180;i++) { delay0(5); beep=!beep; //BEEP 取反 } } void alarm1() //报警函数 { uchar k; for (k=0; k<10; k++)keysound(); } void lcm_wait() { while(lcm_read_busy_add&0x80); //读取 LCD 忙标志 } void lcm_write_cmd(uchar lcm_cmd) //写控制字 { lcm_wait(); lcm_write_cmd_add=lcm_cmd; } void lcm_write_data(uchar lcm_data) //写显示数据 { lcm_wait(); lcm_write_data_add=lcm_data; } void lcm_setxy(uchar x,uchar y) //光标定位,x 定位字符位置,y 为行数 { if(y==1) lcm_write_cmd(x|0x80); //定位第一行 if(y==2) lcm_write_cmd(x|0xc0); //定位第二行 } void lcm_write_string(uchar *string) //字符串显示 { uchar i=0; while(string[i]!=' |
