原创 刚学单片机写的一个小程序!!!

2006-11-7 01:46 7206 7 24 分类: MCU/ 嵌入式

 


这是我学习单片机写的小程序...慢慢来写一天写一点...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;
  
  }
}
/*按键扫描程序*/
/*有返回值=====*/
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++);
}

PARTNER CONTENT

文章评论17条评论)

登录后参与讨论

wang1jin 2007-7-2 17:35

能达到实际要求就可以了呀.HE HE.

liusanshan_328737299 2007-7-1 08:32

前辈好:想问一下在选择运算放大器时怎么选择带宽?liusanshan@126.com

 

wang1jin 2007-4-13 17:50

哈哈...感谢兄弟...对我的支持...谢谢...

感觉动力十足.

wang1jin 2007-1-7 16:07

加了.HEHE.

用户70586 2007-1-7 15:00

楼主不错哦。有兴趣的话加我一起学习啊。

QQ:493805912

用户78630 2006-12-13 09:05

呵呵  那多谢了 !

 

wang1jin 2006-12-12 18:46

HE HE.可以转呀...但能否标明下我这地址呢,HEHE...

可以做个链接...

用户78630 2006-12-12 14:41

偶来给你顶了,你的资源还是比较丰富啊,偶也想做一个电子博客,不知是否可以转载你的部分资料啊?呵呵!偶的博客申请后还没时间“装饰”呢!

wang1jin 2006-11-24 11:25

这个是博客自己加上的...

其实并没有...

用户768400 2006-11-24 11:08

请教一下程序中 i="p2",p2为何加引号,不能理解,请教

 

相关推荐阅读
wang1jin 2011-11-13 16:39
wang1jin单片机视频教程115盘下载地址!(迅雷下载)
  为了大家下载方便,我购买了一个115盘的空间,可以长期快速的为大家提供视频下载。   下载地址如下,如果下载上有什么问题,可以及时联系我,我给大家解决!       ...
wang1jin 2011-05-04 19:14
《51单片机C程序应用实例详解》随书代码下载
 最近有朋友向我反映《51单片机C程序应用实例详解》的DVD光盘中没有随书的代码,我去打开DVD光盘一看.确实是没有.可能是出版社当时没有放进去,为此我向广大的读者道歉.  当然道歉是不够的,代码也要...
wang1jin 2011-04-26 21:30
和朋友一起出的一本书《51单片机C程序应用实例详解》
本书是由sunhm、指挥和wang1jin三人合作完成。《51单片机C程序应用实例详解》在北京航空航天大学出版社的大力支持下,终于付印了,这是本人与另外两位朋友花费一年多心血完成的。  编写本书的初衷...
wang1jin 2010-11-26 15:29
请注意:PROTEL99SE视频被人刻成DVD来高价出售
最近在电子QQ群中,有一个QQ为1429474268人发了一条消息,(抱歉请允许我公开这个QQ)。他发了一条广告:实现PCB LAYOUT工程师梦想的同仁请进:http://item.taobao.c...
wang1jin 2010-06-21 13:40
wang1jin带您从零学单片机视频教程第一章下载地址
内容介绍:电子爱好者社区$Zk Q6^6L ~ _ I8h#zM0s5G(R一、单片机硬件讲解部分详细讲述了:电子爱好者社区4[7g Tt"Efff uH k.Q2aZ01、什么是单片机。电子爱好者社...
wang1jin 2010-06-17 22:34
无法下载视频教程的朋友可以购买最新刻的光盘!
最近网站上的视频教程因为服务器的问题,一直无法下载。很多网友也在问我怎么不能下载。因为我个人也没有能力去购买服务器,为大家提供这个视频的下载,为此我感觉到很抱歉。为了解决这个问题,我已经找到应对的方法...
EE直播间
更多
我要评论
17
7
关闭 站长推荐上一条 /3 下一条