完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
假如遥控器按键1,2,3,4,5的键值分别是0x0c,0x0d,0x0e,0x10,0x11,怎么用这些键来控制P0口LED的亮灭或者数码管的亮灭
主程序要怎么写?另外程序要包括哪些部分?把定时器,中断和红外解码的那些复制就可以吗?需要修改哪些内容????求达人指教!!!!!!! 函数的功能:定时器0的初始化**************************************************************************/ void timer0init(){ TMOD=0x02; TH0=0x00; TL0=0x00; ET0=1; TR0=1; EA=1; } /************************************************************************外部中断0的初始化***********************************************************************/ void int0init(){ IT0=1; EX0=1; EA=1; }/**********************************************************************定时器0的功能函数,每中断一次irtime++,用于计时***********************************************************************/ void timer0() interrupt 1{ irtime++; } /***********************************************************************外部中断0的处理函数,每当有低电平数据过来时,中断一次,(使用次中断的前提是,信号线必需接在外部中断0上面,也就是P3^2口),函数功能是,把信号从高低电平变成时间的代码放入irdata【】中 ************************************************************************/ void int0() interrupt 0 { if(startflag) { if(irtime>40) { bitnum=0; } irdata[bitnum]=irtime; irtime=0; bitnum++; if(bitnum==33) { bitnum=0; irreceok=1; } } else { startflag=1; irtime=0; irreceok=1; } }/*************************************************************************函数功能:把irdata【】中的时间代码转换成二进制代码存放在ircode【】中 **************************************************************************/ void irpros(){ uchar k=17,value,j,i; for(j=0;j<2;j++) { for(i=0;i<8;i++) { value=value>>1; if(irdata[k]>6) { value=value|0x80; } k++; } ircode[j]=value; } irprosok=1; }/**************************************************************************** 函数的功能是:将ircode【】中的二进制代码转换成为16进制代码便于在数码管上显示 ***************************************************************************/ void irwork(){ display[0]=ircode[0]/16; display[1]=ircode[0]%16; display[2]=ircode[1]/16; display[3]=ircode[1]%16;}/************************************************************************函数功能:用数码管显示解码结果************************************************************************/ void display1(){ uchar i ; for(i=0;i<2;i++) { P0=seg_du[display]; P2=seg_we ; delay_50us(20); }} |
|
相关推荐
2个回答
|
|
主函数检测按键并取值,然后P0口直接赋值就好了吧,数码管看看管脚图共阴共阳也很容易控制的
|
|
|
|
能否详细说下我上面的程序要怎么写啊 我51菜鸟刚入门 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
609 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
633 浏览 0 评论
768 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
952 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10502 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-5 07:22 , Processed in 1.589755 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号