找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 638|回复: 3
打印 上一主题 下一主题
收起左侧

51单片机仿真-中断出现问题

[复制链接]
跳转到指定楼层
楼主
实验目标:灯一亮一灭是1s,然后秒表计数,采用两个定时器实现。
问题:我觉得这个灯一亮一灭是没问题的。灯闪和计数我用的是T0、T1定时器。但是在实验过程中,我发现这个数码管更新不及时,感觉很慢。因为51的定时器应该是准的,但是我不知道为啥这个数码管更新就是很慢。
主程序如下:
#include <reg51.h>
#include "Delay.h"
#include "Display.h"
#define uint unsigned int
#define uchar unsigned char
sbit led1 = P1^0;

uchar num0 = 0, num1 = 0, num = 55, shi, ge;
void main(void)
{
        shi = num / 10;
        ge = num % 10;
        display(shi, ge)
        TMOD = 0x11;
        TH1 = (65536 - 50000) / 256;
        TL1 = (65536 - 50000) % 256;
        TH0 = (65536 - 50000) / 256;
        TL0 = (65536 - 50000) % 256;
        EA = 1;
        ET1 = 1;
        TR1 = 1;
        ET0 = 1;
        TR0 = 1;
        while (1) {
                shi = num / 10;
                ge = num % 10;
        display(shi, ge);
        }
}
void T0_time() interrupt 1 {
        TH0 = (65536 - 50000) / 256;
        TL0 = (65536 - 50000) % 256;
        ++num0;
        if (num0 == 10) { //0.5s
                num0 = 0;
                led1 = ~led1;
        }
}
void T1_time() interrupt 3 {
        TH1 = (65536 - 50000) / 256;
        TL1 = (65536 - 50000) % 256; //50ms
        ++num1;
        if (num1 == 20) { //1s
                ++num;
                if (num == 60)
                        num = 0;
        }
}
仿真图已经呈上:主要就是单片机的P0口控制两个74HC573锁存器分别送段码和位码。然后是两个中断程序。

Snipaste_2025-04-01_11-07-11.png (54.74 KB, 下载次数: 0)

Snipaste_2025-04-01_11-07-11.png

中断.zip

356.7 KB, 下载次数: 0

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:879809 发表于 2025-4-1 12:03 | 只看该作者
肉眼观察到的仿真软件的时间并非真实时间,跟你的电脑运算速度有关,要看仿真软件进度条里面的时间。
回复

使用道具 举报

板凳
ID:1109793 发表于 2025-4-1 13:00 | 只看该作者
在if(num1==20)里面要加一句num1 = 0;
否则++num1;要一直循环到下次num1==20才能再次++num;
回复

使用道具 举报

地板
ID:1061677 发表于 2025-4-1 15:53 | 只看该作者
xiaobendan001 发表于 2025-4-1 13:00
在if(num1==20)里面要加一句num1 = 0;
否则++num1;要一直循环到下次num1==20才能再次++num;

对哦,num1加完之后清0就对了。我竟然一直没发现原来问题出现在这里,谢谢你了,佬!!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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