完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
#include"anjian.h" void delay() { uint16 n = 1000; while(n--); } /*功能函数*/ led_1() { 。。。。。。。。。} led_2() {。。。。。。。。。。} led_3() {。。。。。。。。。。} /* 键盘 */ void key_board() { if(!KeyIn1) { delay(); if(!KeyIn1) { l ed_1(); while(!KeyIn1); } } if(!KeyIn2) { delay(); if(!KeyIn2); { led_2(); while(!KeyIn2); } } if(!KeyIn3) { delay(); if(!KeyIn3); { led_3(); while(!KeyIn3); } } } void int_init() { TMOD |= 0x10; TMOD &= 0xdf; TH1 = 0xFC; TL1 = 0x67; TR1 = 1; EA = 1; ET1 = 1; } /*主函数*/ main() { P0 = 0XFF; KeyOut1 =0; //按键初始化 int_init(); while(1); } void interrupt_timer1() interrupt 3 { TH1 = 0xFC; TL1 = 0x67; key_board(); } 这个程序的我想要的功能是:按KeyIn1键,显示功能函数led_1()的效果;按KeyIn2键,显示功能函数led_2()的效果;按KeyIn3键,显示功能函数led_3()的效果;但是按KeyIn1键,显示功能函数led_1()的效果,如果按KeyIn2键,显示功能函数led_1()的效果,就是没进入中断?请问各位这是什么原因?谢谢 |
|
相关推荐
10个回答
|
|
这个还用什么中断啊,直接查吧,再说了,中断也不能这样搞啊,起什么作用?
最佳答案
|
|
|
|
已经进入中断了,没进入中断你怎么能进入功能函数1
|
|
|
|
那为什么按KeyIn2不显示led_2函数的功能呢??这是什么原因?谢谢 |
|
|
|
看不懂
|
|
|
|
电子发烧友,顶一个!!!
|
|
|
|
感觉有点怪啊,你这个怎么用定时器中断啊,难到不能用外部中断?
那个按KeyIn2键,显示功能函数led_1()还是显示以前的那个效果,是不是你时间还没到啊,进入的是定时器/计数器中断,我也是个新人,不过感觉你那个用外部中断要好得多 |
|
|
|
{:soso_e127:}
|
|
|
|
我也有同感,你的中断程序是定时器中断,也就是说每隔一段时间进行一次键盘扫描,如果定时时间过长,将会导致按键漏检,应该用外部中断,这样会更好一点
|
|
|
|
你一个while(1);不是把程序停在那里不动了么???
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
798 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
871 浏览 0 评论
2698 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2316 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1717 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5877 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-27 00:28 , Processed in 0.467215 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号