#include<reg51.h> #define uint unsigned int #define uchar unsigned char #define DAC0832_PORT P1 sbit K1=P2^0;// 加 sbit K2=P2^1;// 减 uchar num=20; void Init() {P1=num; } void delay(uint z);void keyscan1(); void keyscan2(); void Init(); voiddelay(uint z) // 延时 z ms 子程序 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void keyscan1() { unsignedint i; while(1) { if(K1==0) //检测按键K1是否按下 { delay(10); //消除抖动 if(K1==0) { num++; DAC0832_PORT=num; // 把 n 送给給 DA while((i<50)&&(K1==0)) //检测按键是否松开 { delay(10); i++; } i=0; } } } } void keyscan2() { unsignedint j; while(1) { if(K2==0) //检测按键K1是否按下 { delay(10); //消除抖动 if(K2==0) { num--; DAC0832_PORT=num; // 把 n 送给給 DA while((j<50)&&(K2==0)) //检测按键是否松开 { delay(10); j++; } j=0; } } } } void main() { Init(); while(1) { keyscan1(); keyscan2(); } }
|