欢迎来到天天文库
浏览记录
ID:61780599
大小:340.50 KB
页数:8页
时间:2021-03-20
《键盘测试程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、[cpp]viewplaincopyprint?1.#include 2.#define uchar unsigned char 3.#define uint unsigned int 4.sbit dula=P3^0; 5.sbit wela=P3^1; 6.#define keyport (P1) 7.#define keystate0 0 //按键确认状态 8.#define keystate1 1 //按键无动作状态 9.char keystate=1; //按键状态初
2、始化为按键无动作状态 10.uchar keynum=0; 11.void delayms(uint x) //1ms 12.{ 13. uint y,z; 14. for(y=x;y>0;y--) 15. for(z=111;z>0;z--); 16.} 17.uchar code table[]={ //共阳数码管 18.0xc0,0xf9,0xa4,0xb0, 19.0x99,0x92,0x82,0xf8, 20.0x80,0x90,0x88,0x83, 21.0x
3、c6,0xa1,0x86,0x8e}; 22.void smg() 23.{ 24. dula=0; 25. wela=0; 26. P2=0x01; 27. wela=1; 28. wela=0; 29. P2=table[keynum]; 30. dula=1; 31. dula=0; 32. delayms(1); 33. 34. P2=0x02; 1. wela=1; 2. wela=0; 3. P2=table[k
4、eynum]; 4. dula=1; 5. dula=0; 6. delayms(1); 7. 8. P2=0x04; 9. wela=1; 10. wela=0; 11. P2=table[keynum]; 12. dula=1; 13. dula=0; 14. delayms(1); 15. 16. P2=0x08; 17. wela=1; 18. wela=0; 19. P2=table[keynum]; 20
5、. dula=1; 21. dula=0; 22. delayms(1); 23. 24. P2=0x10; 25. wela=1; 26. wela=0; 27. P2=table[keynum]; 28. dula=1; 29. dula=0; 30. delayms(1); 31. 32. P2=0x20; 33. wela=1; 34. wela=0; 35. P2=table[keynum]; 1.
6、dula=1; 2. dula=0; 3. delayms(1); 4. 5. P2=0x40; 6. wela=1; 7. wela=0; 8. P2=table[keynum]; 9. dula=1; 10. dula=0; 11. delayms(1); 12. 13. P2=0x80; 14. wela=1; 15. wela=0; 16. P2=table[keynum]; 17. dula=1; 18.
7、 dula=0; 19. delayms(1); 20.} 21.void keyscan() 22.{ 23. uchar temp1,temp2,column,row; 24. switch(keystate) 25. { 26. case keystate0: //keystate0,按键按下确认状态,下一状态为keystate1(按键无动作状态) 27. keyport=0x0f; 28. temp1=k
8、eyport; 29. keyport=0xf0; 30. temp2=keyport; 31. if((temp1
9、temp2)!=0xff
此文档下载收益归作者所有