显示与定时器问题

[复制链接]
2429|2
 楼主| fdsfdsa 发表于 2009-10-17 10:55 | 显示全部楼层 |阅读模式
我看到如下程序:
#include <reg52.h>
#include <absacc.h>
#include stdio.h>
#include <math.h>

//定义字位和字形口地址
#define DIGPORT XBYTE[0x8000]         
#define WORDPORT XBYTE[0x4000]
#define uchar unsigned char

uchar code TABLE[] = {ox3f, 0x06.......}//定义字形
//数码管显示个位
uchar digit;
uchar disp;
uchar delay;
void main(){
  TMOD = 0x60;
   TH0 = 0;
   TL0 = 0;
   EA = 1; ET1 = 0; TR1 = 1;
   for(;;){

          digit = 0x08;      //数码管显示低位
          disp = TL0 %10;
          DIGPORT = digit;
          WORDPORT = TABLE[disp];
          for(delay = 0;delay <= 200;delay++);
          //....显示其他位的数据。
    }

}
目的是动态显示1234
其中, 有个地方不明白,请各位指点指点。
  在整个过程中,TL0在不断的变化,为何用TL0%10就行到了要显示的数据。
awmc_m 发表于 2009-10-17 11:23 | 显示全部楼层
程序看得不是很明白,定时器不是常规用法,未发挥它的作用。
disp = TL0 %10;应该0-9都有可能,而且什么时候是什么数字不可控,要看运行到这句时tl0的值。
既然用了定时器,就将他的定时功能用起来,显示时也不需要for(delay = 0;delay <= 200;delay++);这样的死延时了。
 楼主| fdsfdsa 发表于 2009-10-17 20:11 | 显示全部楼层
上面的程序是我在书上看到的,我也是觉得它要显示1234的话,用tl0去 给disp赋值的话,我也觉得在不断的变化。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

757

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部