局部变量07 2023-10-14 18:17 采纳率: 40%
浏览 6

定时器动态显示数码管加减

到底是哪里出问题了,keil运行没有错误,可为什么我的数码管不亮啊
单片机是CT170D.题目要求是用定时器动态显示数码管从321加到398



#include <STC15F2K60S2.H>
#define uchar unsigned char
#define uint unsigned int
uchar code tabledu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80 ,0X90};
uchar temp[3];
uint date=321;
uint ge,shi,bai,t ,i;

void init()
{
    TMOD=0X10;
    TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;
    EA=1;
    ET1=1;
    TR1=1;
    P2=0X80;
    P0=0XFF;
}

void delay(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}

void display(uchar temp,pos)
{
    P2=0XC0;
    P0=0X01<<pos;

    P2=0XE0;
    P0=temp;
}
void main()
{
    init();
    while(1)
    {
        
        if(t==2)
        {
            t=0;
            
            bai=date/100;
          shi=date%100/10;
          ge=date%10;
            display(tabledu[bai],0);
            delay(5);
            display(tabledu[shi],1);
            delay(5);
            display(tabledu[ge],2);
            delay(5);
                date++;
            if(date>=398)
                TR1=0;
        }
    }
}

void exter1() interrupt 1
{

    TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;
    t++;
    
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-14 20:05
    关注

    【以下回答由 GPT 生成】

    根据您的描述,您在Keil上编译成功了,但是数码管没有亮起来。您正在尝试使用定时器来动态显示数码管,实现从321加到398的功能。您希望我解决的问题是为什么数码管没有亮起来以及如何修改代码来正确实现该功能。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 10月14日