历史上的今天
今天是:2025年07月19日(星期六)
2020年07月19日 | 矩阵按键控制动态数码管
2020-07-19 来源:eefocus
#include typedef unsigned char u8; typedef unsigned int u16; sbit KZA=P2^2; //位定义 sbit KZB=P2^3; sbit KZC=P2^4; #define GPIO_key P1 #define GPIO_DIG P0 u8 KeyValue; u8 code shumag[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; void delay(u16 i) { while(i--); } void KeyDown() //按键判定 { char a=0; GPIO_key=0x0f; if(GPIO_key!=0x0f) { delay(1000); if(GPIO_key!=0x0f) { GPIO_key=0x0f; switch(GPIO_key) { case 0x07:KeyValue=0;break; case 0x0b:KeyValue=1;break; case 0x0d:KeyValue=2;break; case 0x0e:KeyValue=3;break; } GPIO_key=0xf0; switch(GPIO_key) { case 0x70:KeyValue=KeyValue;break; case 0xb0:KeyValue+=4;break; case 0xd0:KeyValue+=8;break; case 0xe0:KeyValue+=12;break; } /*while((a<50)&&(GPIO_key!=0xf0)) { delay(1000); a++; }*/ } } while((a<50)&&(GPIO_key!=0xf0)) { delay(100); a++; } } void xianshi() //数码管显示 { u8 i; for(i=0;i<8;i++) //循环输出 { switch(i) //数码管选择 { case 0: KZA=0;KZB=0;KZC=0;break; case 1: KZA=1;KZB=0;KZC=0;break; case 2: KZA=0;KZB=1;KZC=0;break; case 3: KZA=1;KZB=1;KZC=0;break; case 4: KZA=0;KZB=0;KZC=1;break; case 5: KZA=1;KZB=0;KZC=1;break; case 6: KZA=0;KZB=1;KZC=1;break; case 7: KZA=1;KZB=1;KZC=1;break; } GPIO_DIG=~shumag[KeyValue]; delay(1000); //延时,视觉暂留 P0=0x00; } } void main() { while(1) { KeyDown(); //GPIO_DIG=~shumag[KeyValue]; xianshi(); } } 整体实现还行,数码管闪烁严重,不能一直显示静态画面
史海拾趣
|
一、弄懂电子技术常用名称、概念、图形及文字符号、单位制等 初学者必须弄懂电子技术常用的名称、概念,比如什么是电流、电压、电阻,什么是直流电、交流电,什么是串联、并联、串并联,什么是频率、周期、波长、振幅、相位,什么是阻抗、容抗 ...… 查看全部问答> |
|
我在利用信号(signal)实现模拟软中断的功能,由于需要模拟定时中断,所以在看门狗(watchDog)服务程序中向目标任务发送信号,以中断目标任务,目标任务总共有32个,但是在该程序的运行过程中,前10个目标任务中出现页错误,后22个任务丢失信号信 ...… 查看全部问答> |
|
收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 发一个外包项目贴!请有实力有精力的工程师速与我联系!!斑竹请鼠标下留帖!先谢谢啦 2440手持机外包项目: 1、背光驱动 2、电源管理 3、自定义键盘驱动 4、LP3913驱动 5、EEPROM驱动 6、NANDFLASH分区及海量存储 注意:目前BSP为WINCE42下的 要求: 有实力做出以上6个驱动(具体详见需求) 时间价钱面议 地点限北京 QQ: ...… 查看全部问答> |
|
在wince下预留一块ram空间作为dma的发送缓冲,应用程序往里写数据,dma读取,问题是在应用程序和驱动中能不能对同一块物理地址同时使用virtualcopy绑定呢?不能的话该怎么做,请高手指点啊… 查看全部问答> |
|
各位专家,你们好 我的程序在运行过程中,会不断的通过telnet向调试终端吐出打印信息,如果我在这个时候通过shell命令行输入命令,比如(\"i\", 用户命令等等),这时就会报程序异常,异常信息中提示说是tShell任务造成的,然后就再 ...… 查看全部问答> |
|
我在windows xp的环境里,用evc3.0和ppc2002开发pda程序,编译时提示出错: Cannot open include file: \'icmpapi.h\': No such file or directory 这和环境配置有什么关系吗? 这个具体的环境应该如何配置呢? 请各位大虾帮帮我! … 查看全部问答> |




