找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

奇怪,搞不懂,求教单片机VFD驱动程序疑惑

查看数: 2843 | 评论数: 8 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-2-9 16:02

正文摘要:

宅在家里仿个VFD数字时钟,程序运行后,秒满六十进位到时位,中间间隔分为始终为零。源程序就是这个论坛里的,修改步骤详见注释。请走过路过的帮忙看看,是哪不对?(原程序vfd_wrtime ()里就是秒位进时位) /*** ...

回复

ID:149451 发表于 2020-6-7 08:34
rice001 发表于 2020-4-11 17:29
这句啥意思啊这是
code unsigned char vfdmap[]=
{

数字编码表。
ID:634151 发表于 2020-4-11 17:29
这句啥意思啊这是
code unsigned char vfdmap[]=
{
0x77,0x60,0x5d,0x7c,0x6a,0x3e,0x3f,0x70,0x7f,0x7e
};
ID:679425 发表于 2020-2-10 16:51
有多余的“;”,导致判断后不能进入其跟随的程序
ID:149451 发表于 2020-2-10 06:51
man1234567 发表于 2020-2-9 17:56
把时和分弄拧巴了

问题找到了,原程序if(minute==60)后有个“;”.由于这个“;”,导致判断后不能进入其跟随的程序体。
ID:149451 发表于 2020-2-9 23:51
man1234567 发表于 2020-2-9 17:56
把时和分弄拧巴了

是原程序拧巴了?还是我改拧巴了?
1.  unsigned char vfdbuf[]={0,0,0,0,21,8};这句啥意思没我没搞懂
2. 感觉void timer0() interrupt 1 里c100us--;这句前面没赋值吧,怎么减呢?
ID:149451 发表于 2020-2-9 21:09
w1179benp 发表于 2020-2-9 16:07
秒位积满60进位到时位,为何?

主程序也贴出来
void  main()
{
        EA=1;  //开总中断
        ET0=1; //开定时器0中断
        TMOD=0x02;//设定定时器0为方式2
        TH0=T100us;
        TL0=T100us;
        hour=0;
        second=0;
        c100us=tick;
        TR0=1; //启动定时器0
        while(1)
        {
                vfd_wrtime();
                delay(1);
        }
}
ID:584814 发表于 2020-2-9 17:56
把时和分弄拧巴了

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

Powered by 单片机教程网

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