No.17974 作者:warmsmile 邮件: ID:3895 登陆:3次 文章数:15篇 最后登陆IP:61.145.234.125 最后登陆:2003/6/27 15:04:09 注册:2002/11/15 18:49:00 财富:82 发帖时间:2003/1/24 10:49:00 发贴者IP:61.145.234.235 标题:warmsmile:初学者:救命!!!很着急呀!! 摘要:No.17974初学者:救命!!!很着急呀!! 各位DX,我编了一个键盘程序,很简单的,可是不知道为什么总是无法正确执行。请大家帮 帮忙。以下是我的程序: #include <reg51.h> unsigned char oldkey1, KeyVal=0,Key1,Key2,Key3,oldKey1, oldKey2, oldKey3,ch; unsigned int cn; unsigned char buffer[3]; unsigner char table[41]={,,,,,}//显示数据 void wait_free(uchar k){ uchar t; t=k; while(--t); } void ShowKeyInit(void) { uchar i; scan=0; KeyVal=0; Key1=0; Key2=0; Key3=0; oldKey1=1; oldKey2=1; oldKey3=1; cn=0; ch=0; KeyCounter=0; //键值计数器 for(i=0;i<3;i++) buffer[i]=i*10; //显示缓冲区清 fKey=0; } void HardwareInit(void){ TMOD=0x21; // 初始化Timer0模式1,Timer1模式2, TH0=-TH0_HIGH; //for 2.5ms,3个数码管 TL0=-TL0_LOW; ET0=1; TR0=1; EA=1; } #pragma disable void display(uint ShowData){ uint tmp; // 计算显示结果 uchar i; tmp=ShowData; for(i=0;i<3;i++){ buffer[i]=(uchar)(tmp)%10+10*i; tmp=tmp/10; } if(buffer[2]==20){ //屏蔽无效0 buffer[2]=41; if(buffer[1]==10) buffer[1]=41; } } void KeyAlter(void){ if(KeyVal==ADDKEY){ //增量键处理 cn++; if(cn>=56) cn=2; } else { //减量键处理 cn--; if(cn==0) cn=56; } display(cn); return ; } &nb ......
>>返回讨论的主题
|
老古网执行:31毫秒 最大:78531毫秒 查询6次
|
|