作者共发了2篇帖子。 内容转换:不转换▼
 
点击 回复
360 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)
 

本帖信息

点击数:360 回复数:1
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2012-7-22 20:48
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。