找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2078|回复: 5
收起左侧

大佬们看看这里,我刚刚初学,定时器在数码管上显示有点问题

[复制链接]
ID:691676 发表于 2020-2-10 14:33 | 显示全部楼层 |阅读模式
我想用定时器设置间隔1ms累加,在数码管上显示,这个程序检查了好长时间也没有什么问题,可一下载下来就变成10位十位的累加,然后间隔也不是1ms,它到255就清零了,不知道怎么回事

#include <all.h>
u16 xdata asdfgh=0;
u8 xdata mun;
void Timer0_Init(void)                //1毫秒@30.000MHz
{
        AUXR &= 0x7F;                //定时器时钟12T模式
        TMOD &= 0xF0;                //设置定时器模式
        TL0 = 0x3C;                //设置定时初值
        TH0 = 0xF6;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
    ET0=1;
        EA=1;
}


       

void main()
{
        P0M0=0;
        P0M1=0;
        P2M0=0;
        P2M1=0;
        P4M0=0;
        P4M1=0;
        P5M1&=~0x02;//强推挽
        P5M0|=0x02;       
        HC595_Init();
        ROTARY_Init();
        Timer0_Init();
       
       
       
        //IT0=1;//外部中中断0,下降沿触发
        //EX0=1;//允许外部IO口输入中断
        //EA=1;//总中断允许
       
        while(1)//开始执行程序
        {
                SMG_Write_Buffer[0]=Rotary_Read_Byte_Key;
                SMG_Write_Buffer[1]=0;
                SMG_Write_Buffer[2]=0;
                SMG_Write_Buffer[3]=0;
                SMG_Write_Buffer[4]=0;
                SMG_Write_Buffer[5]=mun/100;
                SMG_Write_Buffer[6]=mun%100/10;
                SMG_Write_Buffer[7]=mun%100/10;
                SMG_Display_ser();       
                ROTARY_Key_Scan_Drive();
               
        }
}




void Timer0_Routine(void) interrupt 1//中断服务函数
{
        TL0 = 0x3c;                //设置定时初值
        TH0 = 0xf6;
        //P51=~P51;
        asdfgh++;

       
        if(asdfgh>=1000)
        {
                asdfgh=0;
                mun++;
        }
       
       
}


回复

举报

ID:67199 发表于 2020-2-10 21:45 | 显示全部楼层
u8 xdata mun;       //  字符型数据 取值范围0-255,再大改为 u16
SMG_Write_Buffer[7]=mun%100/10;   改为SMG_Write_Buffer[7]=mun%100%10;
回复

举报

ID:691914 发表于 2020-2-11 04:58 | 显示全部楼层
SMG_Write_Buffer[7]=mun%100%10;
回复

举报

ID:213173 发表于 2020-2-11 06:56 | 显示全部楼层
                SMG_Write_Buffer[5]=mun/100%10;
                SMG_Write_Buffer[6]=mun/10%10;
                SMG_Write_Buffer[7]=mun%10;
回复

举报

ID:679425 发表于 2020-2-11 09:37 | 显示全部楼层
SMG_Write_Buffer[7]=mun%100%10;
回复

举报

ID:566228 发表于 2020-2-11 12:54 | 显示全部楼层
MG_Write_Buffer[7]=mun%100/10;把/整除换成%取余
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表