打印

用定时器做的秒表用数码管显示郭天祥开发板的数码管

[复制链接]
2606|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
darlin520|  楼主 | 2012-6-9 16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 darlin520 于 2012-6-9 18:18 编辑

小弟用定时器做的秒表为什么能在1602液晶上显示却不能在数码管上显示呢,原理是一样的呀??
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit  du=P2^6;     // 数码管段选
sbit  wei=P2^7;    //数码管位选
uchar code table[]={0x3f  , 0x06 , 0x5b , 0x4f ,
0x66 , 0x6d ,0x7d , 0x07 , 0x7f  , 0x6f};      //共阴数码管码表
uchar ms;     
uchar miao;
uchar i,j,k,l;     //留给数码管分段显示用
void delay(uint z)    //延时函数
{
  uint i,j;
   for(i=z;i>0;i--)
    for(j=110;j>0;j--);
}
void main()
{
  ms=0;
  miao=0;
while(1)
{
  i=ms/10;      //用i来放ms的十位,
  j=ms%10;   //用j来放ms的个位
  k=miao/10;  //用K来放miao的十位
  l=miao%10;  //用l来放miao的个位
       TMOD=0x01;     // 设置定时器0 为工作方式方1
  TH0=(65536-9174)/256;    //装初值,11.0592MHZ的机器周期是1.09us,计9174次刚好约10ms
   TL0=(65536-9174)%256;   //装初值
     EA=1;       //开总中断
    ET0=1;       //开定时器T0中断
   TR0=1;       //打开定时器T0;


du=1;           //打开段选
P0=table[k];      //把秒的十位数给P0显
   du=0;       //关闭段选,因为用到了锁存器,段选和位选都用到了P0
   P0=0xff;       //消影
   wei=1;       //打开位选
   P0=0xfe;               //选中第一个数码管
   wei=0;      //关闭位选
   delay(1);     //延时
   

du=1;
   P0=table[l];         //把秒的个位给P0显示
du=0;
   P0=0xff;
    wei=1;
   P0=0xfd;           //选中第2个数码管
    wei=0;
   delay(1);
   
   
    du=1;
P0=table;   //把0.1s给P0显示
du=0;
   P0=0xff;
    wei=1;
   P0=0xfb;           //选中第3个数码管
    wei=0;
   delay(1);


  du=1;
   P0=table[j];    //把0.01s给P0显示
du=0;
   P0=0xff;
    wei=1;
   P0=0xf7;           //选中第4个数码管
    wei=0;
   delay(1);
}
}
void time0() interrupt 1
{
  TH0=(65536-9174)/256;
  TL0=(65536-9174)%256;     
     ms++;                       //每进入一次中断,0.01s位自加1、
         if(ms==100)
{
  ms=0;
   miao++;      //加到100次即1S时,秒变量自加1
   if(miao==100)    //加到100后秒变量清零
   {
    miao=0;
      }  
       }  
   }

相关帖子

沙发
NE5532| | 2012-6-9 16:36 | 只看该作者
这个不关秒表的事,单独调显示就可以了,不要一把抓。

使用特权

评论回复
板凳
darlin520|  楼主 | 2012-6-9 20:39 | 只看该作者
我知道是出在数码管显示上,但是感觉自己已经写对了呀,它就是显示全为0;数字不会变呀

使用特权

评论回复
地板
NE5532| | 2012-6-9 20:56 | 只看该作者
你都自认为对,那还找什么错呢?先承认自己错,然后再想办法找吧。

使用特权

评论回复
5
NE5532| | 2012-6-9 20:58 | 只看该作者
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

107

帖子

0

粉丝