找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助,练习独立写了个51单片机的中断程序,但是没有实现预期硬件上的效果

[复制链接]
跳转到指定楼层
#
ID:1101371 发表于 2024-1-31 19:25 来自手机 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
99黑币
,如图所示,我想用定时器0的方式1实现第一个二极管以200ms间隔闪烁,用定时器1的方式1实现第二个二极管以1s间隔闪烁,但是实验结果只有第一个灯亮。而且不闪烁。诚信程序如图,想让大佬看看是哪里编程有问题

IMG_20240131_191820.jpg (1.33 MB, 下载次数: 58)

IMG_20240131_191820.jpg

IMG_20240131_191835.jpg (1.23 MB, 下载次数: 55)

IMG_20240131_191835.jpg

IMG_20240131_191844.jpg (1.34 MB, 下载次数: 57)

IMG_20240131_191844.jpg

IMG_20240131_191851.jpg (1.3 MB, 下载次数: 56)

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

使用道具 举报

8#
ID:1101371 发表于 2024-2-1 10:32 来自手机 | 只看该作者
悬赏解决了,黑币怎么发啊
回复

使用道具 举报

7#
ID:1101371 发表于 2024-2-1 10:29 来自手机 | 只看该作者
我找到问题了,我对硬件TMod的理解不对,打开两个定时器的方式1是是0x11
回复

使用道具 举报

6#
ID:1110492 发表于 2024-2-1 10:29 | 只看该作者
中断一般做定时标志,主循环读取标记并取消标志。
回复

使用道具 举报

5#
ID:1064915 发表于 2024-2-1 09:09 | 只看该作者
自己能解决问题,进步更快
回复

使用道具 举报

地板
ID:161164 发表于 2024-1-31 22:00 | 只看该作者
找个定时器中断的例程对比一下吧
回复

使用道具 举报

板凳
ID:213173 发表于 2024-1-31 21:18 | 只看该作者

定时器中断不是你这样玩的,一个定时器能完成的任务就不要开两个定时器。给你改了。
#include <reg52.h>

sbit led0=P2^0;
sbit led1=P2^1;

typedef unsigned char u8;
typedef unsigned int u16;

u8 num;
u8 flag;

void main()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=1;
        ET0=1;
        EA =1;
        while (1)
        {
                if(flag==1)
                {
                        flag=0;
                        num++;
                        if(num%2==0)//100ms
                        {
                                led0=~led0;
                        }
                        if(num>=10)//500ms
                        {
                                num=0;
                                led1=~led1;
                        }
                }
        }
}

void shine() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        flag=1;
}
回复

使用道具 举报

沙发
ID:491577 发表于 2024-1-31 21:15 | 只看该作者
呵呵,楼主的中断一点意义都没有,num=0~19,当num=4时,led0会翻转,但是速度太快,人眼看到的是长亮,num最大是19不会=20,所以led1不会亮。
回复

使用道具 举报

楼主
ID:1101371 发表于 2024-1-31 19:26 来自手机 | 只看该作者
效果如图所示

IMG_20240131_192602.jpg (703.94 KB, 下载次数: 57)

IMG_20240131_192602.jpg
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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