原创 单片机自学-1(流水灯每0.5秒移动一位,同时蜂鸣器响,数码管计数)

2010-1-29 23:26 6620 15 16 分类: MCU/ 嵌入式

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit bee="P2"^3;
sbit dula="P2"^6;
sbit wela="P2"^7;


uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};


void delay(uint z);
void main()
{
 uint temp,num,i;
 temp=0xfe;
 P1=temp;
 while(1)
 {
  bee=0;
 
  dula=1;
  P0=table[num+1];
  dula=0;
  wela=1;
  P0=0xfd;
  wela=0;


  delay(200);
  P1=0xff;
  bee=1;
  delay(200);
   temp=_crol_(temp,1);
  P1=temp;
  num++;
  if(num==9)
  { 
   num=0;
   i++;
   dula=1;
   P0=table;
   dula=0;
   wela=1;
   P0=0xfe;
   wela=0;
   delay(200);
   if(i==5)
   {
    dula=1;
    P0=table[num];
    dula=0;
    wela=1;
    P0=0;
    wela=0;
    while(1);
   }
   
  }
    }
}


void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}


 


流水灯每0.5秒移动一位,同时蜂鸣器响,数码管计数,当数码管为9时,清零;十位数字显示,直到十位数码管显示5后,令全部数码管显示0,并停止在此时状态。


程序有什么问题,大家可以提出,欢迎提问,欢迎指点,欢迎讨论。

文章评论1条评论)

登录后参与讨论

echo2005 2010-1-29 23:30

自己最近在学习单片机,大家觉得有什么问题的话,随时提出来,欢迎指点!
相关推荐阅读
echo2005 2010-02-06 22:27
单片机自学_4(4×4键盘扫描程序)
说明:本程序为4×4键盘扫描程序,是经过验证显示正确的。功能:4×4键盘,总共16个键,分别依次编号,当按到相应的按键的时候,数码管显示相应的编号。编号依次为:1,2,3,4,5,6,7,8,9,A,...
echo2005 2010-02-05 12:17
自学单片机_3(数码管按流水灯计数)
说明:每一个程序都是通过手头上的现有的片子,通过ISP下载可以实现的,有什么问题,欢迎大家指点,纠正。实现目的:流水灯每左移一次,蜂鸣器响;当8个流水灯分别显示完后,数码管个位开始计数;当数码管个位计...
echo2005 2010-02-03 19:29
连续两天收到EDN从北京邮寄的礼物,将以照片的形式发出,表示感谢!
前天与今天连续两天收到EDN从北京邮寄的礼物,感到很意外,也很惊喜,一个是2010年的礼物,一个是EDN杂志2010年2月份的杂志,娜娜为了让我看到自己成为了“最热心的回帖网友”,特地用特快从北京邮寄...
echo2005 2010-01-30 22:01
自学单片机_2(键盘按键显示)
#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int...
echo2005 2010-01-29 22:20
LED驱动点滴
              LED驱动点滴<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条