MSP430和AT89C51单片机4x4键盘C程序.docx
- 文档编号:18076101
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:7
- 大小:508.33KB
MSP430和AT89C51单片机4x4键盘C程序.docx
《MSP430和AT89C51单片机4x4键盘C程序.docx》由会员分享,可在线阅读,更多相关《MSP430和AT89C51单片机4x4键盘C程序.docx(7页珍藏版)》请在冰点文库上搜索。
MSP430和AT89C51单片机4x4键盘C程序
MSP430和AT89C51单片机4x4键盘C程序
本程序在一位上显示按键,如果多位显示主程序需要修高为多位显示。
本程序软件包括去抖功能,没有注释说明。
#include
#defineucharunsignedchar
#defineuint unsignedint
uintkey,i;
uchartemp,temp1,ms,buff;
uchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
voiddelay(ms)
{
while(ms--)
{for(i=0;i<120;i++); }
}
voidB_key()
{temp1=0xfe;
P1=temp1;
if(P1!
=temp1)
{
delay(10);
if(P1!
=temp1)
{
temp=P1;
switch(temp)
{
case0xee:
key=0;break;
case0xde:
key=1;break;
case0xbe:
key=2;break;
case0x7e:
key=3;break;
default:
break;
}
}
}
temp1=0xfd;
P1=temp1;
if(P1!
=temp1)
{
delay(10);
if(P1!
=temp1)
{
temp=P1;
switch(temp)
{
case0xed:
key=4;break;
case0xdd:
key=5;break;
case0xbd:
key=6;break;
case0x7d:
key=7;break;
default:
break;
}
}
}
temp1=0xfb;
P1=temp1;
if(P1!
=temp1)
{delay(10);
if(P1!
=temp1)
{
temp=P1;
switch(temp)
{
case0xeb:
key=8;break;
case0xdb:
key=9;break;
case0xbb:
key=10;break;
case0x7b:
key=11;break;
default:
break;
}
}
}
temp1=0xf7;
P1=temp1;
if(P1!
=temp1)
{
delay(10);
if(P1!
=temp1)
{temp=P1;
switch(temp)
{
case0xe7:
key=12;break;
case0xd7:
key=13;break;
case0xb7:
key=14;break;
case0x77:
key=15;break;
default:
break;
}
}
}
}
voidmain()
{while
(1)
{B_key();
P2=tab[key];
P3=0x04;
}
}
#include"io430.h"
#defineucharunsignedchar
#defineuint unsignedint
uintkey,i;
uchartemp,temp1,ms;
uchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
voiddelay(ucharms)
{
while(ms--)
{
for(i=0;i<120;i++);
}
}
voidB_key()
{
temp1=0x0e;
P1OUT=temp1;
if(P1IN!
=temp1)
{
delay(10);
if(P1IN!
=temp1)
{
temp=P1IN|temp1;
switch(temp)
{
case0xee:
key=0;break;
case0xde:
key=1;break;
case0xbe:
key=2;break;
case0x7e:
key=3;break;
default:
break;
}
}
}
temp1=0x0d;
P1OUT=temp1;
if(P1IN!
=temp1)
{
delay(10);
if(P1IN!
=temp1)
{
temp=P1IN|temp1;
switch(temp)
{
case0xed:
key=4;break;
case0xdd:
key=5;break;
case0xbd:
key=6;break;
case0x7d:
key=7;break;
default:
break;
}
}
}
temp1=0x0b;
P1OUT=temp1;
if(P1IN!
=temp1)
{
delay(10);
if(P1IN!
=temp1)
{
temp=P1IN|temp1;
switch(temp)
{
case0xeb:
key=8;break;
case0xdb:
key=9;break;
case0xbb:
key=10;break;
case0x7b:
key=11;break;
default:
break;
}
}
}
temp1=0x07;
P1OUT=temp1;
if(P1IN!
=temp1)
{
delay(10);
if(P1IN!
=temp1)
{ temp=P1IN|temp1;
switch(temp)
{
case0xe7:
key=12;break;
case0xd7:
key=13;break;
case0xb7:
key=14;break;
case0x77:
key=15;break;
default:
break;
}
}
}
}
intmain(void)
{ //Stopwatchdogtimertopreventtimeoutreset
WDTCTL=WDTPW+WDTHOLD;
P1DIR=0x0f;
P2DIR=0xff;
while
(1)
{ B_key();
P2OUT=tab[key];
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSP430 AT89C51 单片机 x4 键盘 程序