完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
自学单片机的同学伤不起。
先给初值,然后开始加一,加满后自动跳入中断,那么是中断函数完成之后再回到主程序么??那么回到主程序中进入while循环了,为什么还能进入中断??是不是在while运行的同时中断一直在进行??他们没有先后关系么?? #include #define uint unsigned int #define uchar unsigned char ***it dula=P2^6; ***it wela=P2^7; ***it d1=P1^0; uchar num,num1;tt; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z); void main() { num=0;// tt=0; TMOD=0x11;//设置定时器0为工作方式1 TH0=(65536-10000)/256; TL0=(65536-10000)%256; TH1=(65536-20000)/256; TL1=(65536-20000)%256; // EA=1;//开总中断 ET0=1;//开定时器0中断 ET1=1; TR0=1;//启动定时器0 TR1=1; wela=1;//11101010 P0=0xea; wela=0; dula=1; P0=0x3f; dula=0; while(1) { if(num1==25) { num1=0; P1=~P1; } if(tt==100) { tt=0; num++; if(num==16) num=0; dula=1; P0=table[num]; dula=0; } } } void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void time0() interrupt 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; tt++; } void time1() interrupt 3 { TH1=(65536-20000)/256; TL1=(65536-20000)%256; num1++; }
|
|
相关推荐
10个回答
|
|
中断是在循环时检测外部有没有触发中断的条件,满足条件就中断,
|
|
|
|
|
|
|
|
当满足中断条件是,程序执行中断服务程序,这个时候主程序是不执行的,执行完中断服务程序,系统还是回到主程序继续执行。两者不是同事执行的。
|
|
|
|
看看这个
|
|
|
|
楼上这个图很好
|
|
|
|
真心感谢大家,本来以为我这个菜鸟的这个承载着如此菜的问题的帖子肯定会石沉大海的,没想到会有你们在这里如此热心的给我解答,谢谢啦。我会好好学单片机的。
|
|
|
|
|
|
|
|
多看数据手册
|
|
|
|
我也卡这了,卡的死死的! 再加上电子版资料看着不方便。 必须得自己整理下了。 又是寄存器 光优先级就N种,乱了。
|
|
|
|
呵呵 中断其实很简单 例如 你在睡觉 闹钟响了起来上个厕所继续睡 上厕所 是中断里面处理的 定闹钟就是 中断的配置
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之变量
509 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-shell脚本编写之本地脚本的编写和执行
719 浏览 0 评论
【xG24 Matter开发套件试用体验】深入了解Silicon Labs xG24 Matter开发套件
855 浏览 0 评论
768 浏览 0 评论
790 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10963 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-3 10:16 , Processed in 0.799531 second(s), Total 92, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191