历史上的今天
今天是:2025年04月06日(星期日)
2021年04月06日 | 矩阵键盘C语言程序设计
2021-04-06 来源:eefocus

下面是c语言源程序:
#include #define uint unsigned int #define uchar unsigned char uintled[]={0xc0,0xf9,0xa4, 0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e}; uchar a,b,c,temp; void delay7ms(void) //误差 -0.217013888891us { unsigned char a,b; for(b=208;b>0;b--) for(a=14;a>0;a--); } ucharkey() { P1=0x0f; if(P1!=0x0f) { delay7ms(); if(P1!=0x0f); P1=0xfe; a=P1^0xfe; switch(a) { case 0x80:c=0;break; case 0x40:c=1;break; case 0x20:c=2;break; case 0x10:c=3;break; } temp=P1; while(temp!=0xfe) { temp=P1; } } P1=0x0f; if(P1!=0x0f) { delay7ms(); if(P1!=0x0f); P1=0xfd; a=P1^0xfd; switch(a) { case 0x80:c=4;break; case 0x40:c=5;break; case 0x20:c=6;break; case 0x10:c=7;break; } temp=P1; while(temp!=0xfd) { temp=P1; } } P1=0x0f; if(P1!=0x0f) { delay7ms(); if(P1!=0x0f); P1=0xfb; a=P1^0xfb; switch(a) { case 0x80:c=8;break; case 0x40:c=9;break; case 0x20:c=10;break; case 0x10:c=11;break; } temp=P1; while(temp!=0xfb) { temp=P1; } } P1=0x0f; if(P1!=0x0f) { delay7ms(); if(P1!=0x0f); P1=0xf7; a=P1^0xf7; switch(a) { case 0x80:c=12;break; case 0x40:c=13;break; case 0x20:c=14;break; case 0x10:c=15;break; } temp=P1; while(temp!=0xf7) { temp=P1; } } return c; } void main(void) { while(1) { P2=led[b]; b=key(); } }
上一篇:89C51编程器端驱动程序的例子
下一篇:单片机低功耗设计经验
史海拾趣
|
两块板子,一块单片机板子,一块ARM9板子。单片机板子上没有操作系统,ARM9板子上加载了Linux操作系统。 一方面,在ARM9板子上,需要把单片机板子通过无线传送过来的IPv6包解析,并最终把包中应用层的数据传给PC机服务器;另一方面,ARM9板子要接 ...… 查看全部问答> |
|
DDK6001安装不了,总是提示 Remove: EULA,好像是说有有不需要的一个组件已经安装,必须把它先卸载了,但是按提示操作了无数次,还是装不了,是怎么回事呢,谢谢… 查看全部问答> |
|
用pb自定义了一个Microsoft DeviceEmulator_ARMV4系统,生成SDK,编译都通过,就是在烧写到ARM9板的时候出现错误,以下是串口消息 Now,Downloading [ADDRESS:400000H,TOTAL:0X01C711DF(29823455) bytes] RECEIVED FILE SIZE: 0x00100000Date CRC0 ...… 查看全部问答> |
|
最近调试流接口驱动程序出了些问题,麻烦论坛里的牛牛们指教,问题描述如下: 三星2440平台,wince5.0,调试ADC的流接口驱动程序,我只为了测试所以很多功能都简化了,就是往寄存器里写一次,直接读回,用了virtualalloc和virtualcopy函数映射地址 ...… 查看全部问答> |
|
书上说左边的电路Io=Vin/R2,我能理解到根据负反馈,运放工作于虚短的状态,R2上的电压为Vin,根据KCL定理,Vin/R2=Io+Ir1(FET 源漏极电流),书里没有说为什么可以忽略这个源漏极电流,想请教一下大家。 另外右边的电路,是引入了正反馈,不能用虚 ...… 查看全部问答> |
|
由于 SAR ADC 的功耗随着每一代新器件的推出而不断降低,放大器成了功耗敏感型应用的制约因素。那么我们如何才能进一步降低功耗?在寻找可能的解决方案之前,让我们先考虑一下 ADC 功耗降低的原因。下图 1 直接显示了我们 12 位、4MS ...… 查看全部问答> |




