完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#define uchar unsigned char #define uint unsigned int uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uint xms) { uint i,j; for(i=xms;i>0;i++) for(j=110;j>0;j--); } void display(uchar num) { P0=table[num]; } void keyscan() { uchar temp,key; P1=0xfe; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xee: key=0; break; case 0xde: key=1; break; case 0xbe: key=2; break; case 0x7e: key=3; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } display(key); } } P1=0xfd; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xed: key=4; break; case 0xdd: key=5; break; case 0xbd: key=6; break; case 0x7d: key=7; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } display(key); } } P1=0xfb; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xeb: key=8; break; case 0xdb: key=9; break; case 0xbb: key=10; break; case 0x7b: key=11; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } display(key); } } P1=0xf7; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xe7: key=12; break; case 0xd7: key=13; break; case 0xb7: key=14; break; case 0x77: key=15; break; } while(temp!=0xf0) { temp=P1; temp=temp&0xf0; } display(key); } } } void main() { P0=0X00; while(1) { keyscan(); } }
|
|
相关推荐
3个回答
|
|
这个程序有什么问题吗,就是显示不了。
|
|
|
|
#include
***it dula=P2^6; ***it wela=P2^7; unsigned char code segnum[16] = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(int n) { int i = 0; int j = 0; for(i = 0; i < n; i++) for(j = 110; j < n; j++); } void main() { wela = 1; P0 = 0xc0; wela = 0; while(1) { int temp = 0; int i = 0; for (i = 0; i < 4; i++) { temp = P3 = 0xff & ~(1< temp = P3 & temp; delay(5); temp = P3 & temp; switch(temp | 0x0f) { case 0xef: { dula = 1; P0 = segnum[i*4]; dula = 0; } break; case 0xdf: { dula = 1; P0 = segnum[i*4+1]; dula = 0; } break; case 0xbf: { dula = 1; P0 = segnum[i*4+2]; dula = 0; } break; case 0x7f: { dula = 1; P0 = segnum[i*4+3]; dula = 0; } break; default: { dula = 1; P0 = 0x00; dula = 0; } break; } } } } C:UsersdongzhiDesktop无标题.jpg |
|
|
|
无聊的时候写的
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
848 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
2138 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
949 浏览 0 评论
【原创】收藏!单片机输出4种波形的函数信号发生器毕设(Proteus仿真+原理图+源码和论文)
4197 浏览 1 评论
11869 浏览 6 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-8 05:22 , Processed in 0.787193 second(s), Total 82, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号