sonjs的笔记 https://passport2.21ic.com/?855050 [收藏] [复制] [RSS]

日志

在数码管显示80C51

已有 460 次阅读2012-8-16 00:54 |系统分类:单片机

适用于国信长天开发板
#include<reg51.h>  //   包含51单片机寄存器定义的头文件 
 #include<intrins.h>
 #define uint unsigned int      
 sbit buzz=P0^6;
 /************************************************** 
 函数功能:d延时函数,延时一段时间 
 ***************************************************/ 
   void delay(int x)         //延时Xms
 { 
    uint i,j; 
    for(i=0;i<x;i++) 
     for(j=0;j<120;j++); //大约1ms
           
 } 
 /************************************************** 
 函数功能:主函数 
 ***************************************************/ 
 void main(void) 
 { 
   unsigned char temp; 
   unsigned char code 
   Tab[]={0x80,0xc0,0xc6,0x92,0xf9};    
                //数码管显示0~9的段码表,程序运行中当数组值不发生变化时
                //前面加关键字code ,可以大大节约单片机的存储空间 
   P2=0xa0;   //令蜂鸣器的锁存器打开
   buzz=0;            
   temp=0x01;  //设定中间变量temp
   while(1)      //无限循环 
    { int i;   
      for(i=0;i<5;i++) 
       {  
    P2=0xc0;   //位选,令com公共端的锁存器打开
  P0=temp;   //控制哪个数码管亮

      P2=0xe0;     //令数码管的锁存器打开
          P0=Tab;            //让P0口输出数字的段码 

   //   temp=temp<<1;   //左移一位
  temp=_crol_(temp,1);  //左移一位
  delay(1);          //调用延时函数 
        }
   temp=0x01;  //当移到最左端时,再设定temp,重新开始
    }  
 } 
  


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)