这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 在数码管显示80C51

共1条 1/1 1 跳转至

在数码管显示80C51

助工
2014-10-08 21:12:49     打赏
#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,重新开始     }    } 

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]