No.91199 作者:yuangli 邮件:yuangli@21cn.com ID:16177 登陆:5次 文章数:1篇 最后登陆IP:59.34.244.44 最后登陆:2007/7/31 15:41:09 注册:2003/11/18 9:15:27 财富:9 发帖时间:2006/4/6 9:21:30 发贴者IP:218.14.224.188 标题:yuangli:关于UPD16312的按键接收问题 摘要:No.91199关于UPD16312的按键接收问题 做过UPD16312的朋友,请指点一下UPD16312的键盘接收问题,我的程序显示没问题,但是键盘接收不稳定,时有时无。 我的VFD测试程序 #include <pic.h> #define STB RA0 #define SCK RA1 #define SDA RA2 #define nop asm("NOP") char key_value1; char key_value2; char key_value3; char temp1; char temp2; char temp3; char dis_data; char usec; char dis_add; char dis_value; const char display_value[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xe6};//字符编码 void dmsec(int msec); void dusec(char usec); void dis_byte(char dis_data); void dis_ini(); void display(char add,char xs_value); void key_scan(); read_key(); main() { char i; dis_ini(); temp1=7;//观查变量方便随便赋的值 temp2=8;//观查变量方便随便赋的值 temp3=9;//观查变量方便随便赋的值 key_value1=1;//观查变量方便随便赋的值 key_value2=2;//观查变量方便随便赋的值 key_value3=3;//观查变量方便随便赋的值 while(1) { dis_add=0xc1; dis_value=display_value[1]; display(dis_add,dis_value); dis_add=0xc0; dis_value=display_value[5]; display(dis_add,dis_value); dis_add=0xc5; dis_value=display_value[5]; display(dis_add,dis_value); dis_add=0xc4; dis_value=display_value[8]; display(dis_add,dis_value); dis_add=0xc7; dis_value=display_value[0]; display(dis_add,dis_value); dis_add=0xc6; dis_value=display_value[9]; display(dis_add,dis_value); key_scan(); if(key_value1!=0)//有按键按下则退出循环 break; if(key_value2!=0) break; if(key_value3!=0) break; } temp1=key_value1; temp2=key_value2; temp3=key_value3; dusec(255); while(1) { nop; } } //===================================== void dusec(char usec) { for(usec;usec> 0;usec--) { nop; } nop; } //===================================== void dmsec(int msec) { char TempCyc; for(msec;msec> 0;msec--) { for(TempCyc=125; TempCyc> 0; TempCyc--); { nop; } } nop; } //===================================== void dis_ini() { c ......
>>返回讨论的主题
|