繁体中文
高级搜索
 
首页 | 电子技术应用 | 行业最新动态 | 行业最新产品 | 软件资料下载 | 电路图纸欣赏 | 博客文章精选 | 电子精品论坛 | 电子技术贴吧

当前位置:首页 >> 博客文章精选 >> 单片机-----博客 >> 刚学单片机写的一个小程序!!!
刚学单片机写的一个小程序!!!
作者:   来源: 发表时间:2006-12-08  字号:  

这是我学习单片机写的小程序...慢慢来写一天写一点...HE HE...人笨没办法...

这是用八个按键控制LED显示八种状态...

键盘是2X4的键盘...

希望大家多多指点!!!

#include<AT89X51.H>
#define uchar unsigned char
#define uint unsigned int

/*显示数据=====*/
uchar code a[9]={0xff,0xaa,0x55,0xcc,0x33,0xf0,0x0f,0x18,0x81};
uchar key;/*全局变量*/

/*IO口定义======*/
sbit P20=P2^0;
sbit P21=P2^1;

/*子函数说明==*/
uchar key_scan(void);
void delay(uint a);

/*主程序=======*/
void main()
{
uchar i;
while(1)
{
i= key_scan();/*根据I的值达到控制显示目的*/
P0=a[i];

}
}
/*按键扫描程序*/
/*有返回值=====*/
uchar key_scan(void)
{
uchar i;
P2=0xfc; //按键接口
if(P2!=0xfc)//判断有无键按下
{
delay(50);//延时
if(P2!=0xfc)//再判断
{
P2=0xfe;//判断按下的键在哪列
i="P2";
if(i!=0xfe){ i="P2";}//把键值送到I.
else //判断按下的键在哪列
{
P2=0xfd;
i="P2";
if(i!=0xfd) {i="P2";}//把键值送到I.
}
}
}
/*判断键值并返回*/
switch(i)
{
case 0xf9:key="1";break;
case 0xfa:key="2";break;
case 0xf5:key="3";break;
case 0xf6:key="4";break;
case 0xed:key="5";break;
case 0xee:key="6";break;
case 0xdd:key="7";break;
case 0xde:key="8";break;
default:key="0xff";break;
}
return(key);//返回I的值
}

/*延时子函数==*/
void delay(uint a)
{
uint i;
for(i="0";i<a;i );
}


!注意:如果您发现此文章出现影响您的阅读的状况,请从浏览器地址栏里复制本文的链接到留言本报告给站长解决!
  • 上一篇: DS1302C51源代码
  • 下一篇: 为arm,51与优盘进行串口通信的东东

  • >> 联系我们请给我们留言·留言本
    本站所有提供的信息软件资料均来自网络,版权及著作权归原作者所有,如果无意中侵犯了您的相关权利或触及法律法规,请给我们留言, 我们将在24小时内删除。
      浙ICP备05071687号  电子技术精品网