目前共有2篇帖子。 內容轉換:不轉換▼
 
點擊 回復
336 1
【程序】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

从这个程序可以看出,单片机执行程序非常快的。

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:336 回複數:1
評論數: ?
作者: 巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2012-7-22 20:48
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。