目前共有2篇帖子。
【程序】8位數碼管顯示
1楼 巨大八爪鱼 2012-7-22 13:03
#include <iom16v.h>
#include <macros.h>
unsigned char const NUM[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay_ms(unsigned int k)
{
   unsigned int i,j;
  for (i=0;i<k;i++)
    for (j=0;j<1140;j++);
}
unsigned long power(unsigned char times)
{
    unsigned long num=10;
 unsigned char i;
 if (times==0)
    return 1;
 else
 {
    for (i=1;i<times;i++)
        num*=10;
    return num;
    }
}
void main()
{
    unsigned char i;
    unsigned long num=0; //數碼管上顯示的數字
    DDRA=0xff;
    PORTA=0xff;
 DDRC=0xff;
    PORTC=0xff;
 while (1)
 {
     for (i=0;i<8;i++) //i+1為從右數的位數
     {
         PORTC=~BIT(7-i);
      PORTA=NUM[num%power(i+1)/power(i)];
      delay_ms(1);
      PORTC=0xff;
      PORTA=0xff;
     }
  num++;
  if (num>99999999)
    num=0;
 }
}
2楼 巨大八爪鱼 2012-7-22 20:48

從這個程序可以看出,單片機執行程序非常快的。

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
 
 
©2010-2025 Arslanbar [手机版] [桌面版]
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。