您的位置:首页技术文栏单片机C51
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

基于51单片机的数码管程序

[日期:2008-01-27 ] [来源:网络 作者:佚名] [字体: (投递新闻)

/*
***************************************************************************
*
*     (C) Copyright 2007,
单片机初学者园地
*                          All Rights reserved.
*
*
项目名称:    51单片机学习开发系统
*               
*
本文件名称:sigle-led.c
*      
*
完成作者 : 歪歪
 
*
当前版本 :
V1.0       
*
完成日期 : 200741

*
    述 :      此程序专门为刚刚开始接触单片机的学习者设计的,
*            
主要是帮助其学会单片机是怎么调试的,如何自己编写的程
*            
序,从课本的迷团中走出来。
*                 
本程序结构简单、合理,有帮助于初学者养成良好的编
*            
程风格。功能是实现数码管显示,每隔0.6S1,在0~9间循环。
****************************************************************************
*/

#include <reg52.h>   //
调用头文件(单片机内部的寄存器定义)

/******本段为硬件I/O口定义********/
sbit  LED0   = P0 ^ 0;
sbit  LED1   = P0 ^ 1;
sbit  LED2   = P0 ^ 2;
sbit  LED3   = P0 ^ 3;
sbit  DIG0   = P0 ^ 4//
数码管位0
sbit  DIG1   = P0 ^ 5//
数码管位1

sbit  BUZZ   = P3 ^ 4//蜂鸣器

//共阴极数码管,显示0~9
code unsigned  char DispBuf[10]= {0x3f,0x06,0x5b,0x4f,0x66,
                                  0x6d,0x7d,0x07,0x7f,0x6f
};

/**************************************************
**
函数名称: dellay
**
入口参数:h(双字节型)

**
出口参数:无
**
功能描述: 短暂延时,使用11.0592晶体,约0.01MS
****************************************************/

void dellay(unsigned int  h)
{
  while(h--);        //
0.01MS
}

/************主程序**************/
main()
{
 unsigned  char  i=0;   
 DIG0=0;            //
选择数码管0
 while(1)              //
单片机在此反复执行
  {
    dellay(60000);       //
0.6S
    P1=DispBuf[i++];  //显示
   if(i>9)
     i=0;  
   }  
}
阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告