问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机一个程序中断带循环的问题,谢谢啦!

发布网友 发布时间:2022-04-20 09:09

我来回答

4个回答

热心网友 时间:2023-06-27 13:05

#include<reg52.h>

unsigned char code seg[] = {
0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,
0xe7,0x0f,0xf0,0x00,0xff};

unsigned char num = 0, i = 0, KeyPressFlag = 0;

void delayms(unsigned int xms)
{
unsigned int x, j;
for(x=xms;x>0;x--) for(j=110;j>0;j--);
}

void keyscan(void)
{
TR0 = 0;
P0 = 0x55;
delayms(5000);
P0 = seg[i]; //恢复原来的显示内容
TR0 = 1;
}

main()
{
TMOD = 0x01;
TH0 = (65536 - 45872) / 256;
TL0 = (65536 - 45872) % 256; //不是TH1
TR0 = 1;
ET0 = 1;
EX0 = 1;
IT0 = 1;
EA = 1;

while(1) {
if(num >= 20) {
num = 0;
P0 = seg[i];
i++;
if(i == 11) i = 0;
}
if(KeyPressFlag) {
KeyPressFlag = 0;
keyscan();
}
}
}
void ISR_INT0(void) interrupt 0
{
KeyPressFlag = 1;
}
void Timer0_isr(void) interrupt 1
{
TH0 = (65536 - 45872) / 256;
TL0 = (65536 - 45872) % 256; //不是TH1
num++;
}

已经可以了。

热心网友 时间:2023-06-27 13:05

这样改比较好理解:这几行:
if(i==11)
{
i=0;
}
i++;
将i++;移到前面,改成这样
i++;
if(i==11)
{
i=0;
}
i 先加1,再判断等于11,否则先判后加1,i 就不会有0了。

热心网友 时间:2023-06-27 13:06

//你这个程序i除了第一次外,以后都不会有0这个值。修改如下。
while(1)
 {
     if(num==20)
{
num=0;
P0=seg[i];
        i++;
        i%=11;
 }

追问对的,谢谢了。

热心网友 时间:2023-06-27 13:06

第二次循环之前没有清零追问额,好像不是这个问题,二楼帮忙解决了,但还是谢谢你的回答。

追答我现在不知道你原理图怎么样的,你大致的工作原理怎么样?你先把if i=11改成10

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 c++中如何将一段程序循环n次。for( ; ; )中哪部分... matlab中的for循环能不能间断 怎么让一个循环不断地循环??? 51单片机中断函数里可以放一个while死循环吗 java中的循环break,如何简洁地判断是break出来的... c# for循环与while循环使用continue中断的区别 什么是无限小数,什么是循环小数 为什么说要判断10个数,就要重复写10次for循环 循环排列数是什么意思? C语言中结束一次循环的语句是 E语言里面的判断循环首和断循环尾的问题 C语言中什么语句可以结束本次循环 continue 是打破一个循环,break是打破所有循环,... break ,continue ,return 的区别及作用? c51单片机中断函数中如何实现循环, 以下程序无法... 怎么样中断函数的无限循环或调用呢 51单片机 中断 循环 C语言 这样配置的电脑多少钱 我是打CSOL的,我要和我同学挑CF.我会赢么 恋爱困扰 菜鸟寻路:s7-300循环中断数字量的输入 什么是无限循环小数 300228富瑞特装股吧东方财富 私募大佬这波牛市都在买什么+徐翔泽熙五年交易单复盘 5G已来:5G时代将给我们生活带来什么改变 5g是什么时代 未来5G时代是什么样?会很快到来吗? 请问能直接把ghost里面的TCP/IP协议提取出来吗?我... 监控的意思是什么 怎么禁止用户更改TCP/IP协议 监控是什么意思意思 为什么我的“Internet协议(TCP/IP)打不开,设置不了 监控是什么意思啊? 邮件客户端能不能在tcp/ip协议出错的情况下只用SMT... 监控是意思 监控这个词是什么意思 怎么进去Internet协议 (TCP/IP)属性 视频监控的意义 监控是什么意思吗 安装监控具有哪些重要意义