⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 01234567.txt

📁 数码管显示数码管显示数码管显示数码管显示数码管显示
💻 TXT
字号:
#include <reg51.h>    
#include <intrins.h>    
   
#define uchar unsigned char    
   
void delay_ms(uchar ms);  // 延时毫秒@12M,ms最大值255    
   
uchar code dis_code[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //段码表    
                          // 0    1    2    3    4    5    6    7   //对应内容    
                           0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};    
                          // 8    9    a    b    c    d    e    f    
void main()    
{    
  uchar data i = 0x00;  // 循环控制变量兼偏移量,初值为0    
  uchar data j = 0xfe;  // 位码(选通各位数码管),初值为11111110    
   
  while(1)    
  {    
        P2 = j;            // 位码送入P2口显示    
        P0 = dis_code[i];  // 段码表中取值送P0口    
        delay_ms(1);       // 动态显示各位间隔为1ms    
        j = _crol_(j,1);   // 位码循环左移1位选通下一数码管    
        i++;               // 偏移量加1取下一段码(循环控制加1)    
        i &= 0x07;         // 偏量增到8时自动归0(控制在0~7之间循环)    
  }    
}    
void delay_ms(uchar ms)    // 延时毫秒@12M,ms最大值255    
{    
    uchar i;    
    while(ms--)    
        for(i = 0; i < 124; i++);    
} 


--------------------------------------------------------------------------------


/**************************************************************************   
* 标题: 多位数码管动态显示软延时实现(C51)   
* 作者: wentao     http://blog.liuwentao.net   
                   http://wentao.programfan.com   
* 日期: 2007.2.21   
* 软件: Keil C51 V8.02   
* 芯片: AT89X51   
* 说明: 实验板实测通过,数码管为8位共阳,循环用for   
* 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!    
**************************************************************************/   
   
#include <reg51.h>    
#include <intrins.h>    
   
#define uchar unsigned char    
   
void delay_ms(uchar ms);  // 延时毫秒@12M,ms最大值255    
   
uchar code dis_code[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //段码表    
                          // 0    1    2    3    4    5    6    7   //对应内容    
                           0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};    
                          // 8    9    a    b    c    d    e    f    
void main()    
{    
  uchar data i = 0x00;  // 循环控制变量兼偏移量,初值为0    
  uchar data j = 0xfe;  // 位码(选通各位数码管),初值为11111110    
   
  while(1)    
  {    
    for(i = 0; i < 8; i++)    
    {    
          P2 = j;            // 位码送入P2口显示    
          P0 = dis_code[i];  // 段码表中取值送P0口    
          delay_ms(1);       // 动态显示各位间隔为1ms    
          j = _crol_(j,1);   // 位码循环左移1位选通下一数码管    
    }    
  }    
}    
void delay_ms(uchar ms)    // 延时毫秒@12M,ms最大值255    
{    
    uchar i;    
    while(ms--)    
        for(i = 0; i < 124; i++);    
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -