完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这是一个红外线遥控的实验程序,为什么红色的部分变量是static的时候可以正常,而去掉static就不行了?希望高手指点
#include ***it LATCH1=P2^6;//定义锁存使能端口 段锁存 ***it LATCH2=P2^7; typedef unsigned char uchar; unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar irtime; //记录两个下降沿之间的时间 uchar shijian[33]; //存储33个比特序列 uchar zijie[4]; //存储处理后的四个字节数据 bit receok,prook; void t1init() //定时器0初始化 { TMOD=0x20;//定时器0工作方式2,TH0是重装值,TL0是初值 TH1=0x00; //重载值 TL1=0x00; //初始化值 ET1=1; //开中断 TR1=1; EA=1; } void t1(void) interrupt 3 using 3//启动定时器中断 { irtime++; } void int0init() //外部中断0初始化 { IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; //使能外部中断 EA = 1; } void int0(void) interrupt 0 //外部中断0 { static uchar i; static bit startflag; //启动标志 if(startflag) { if(irtime>=33&&irtime<63) { i=0; } shijian=irtime; irtime=0; i++; if(i==33) { receok=1; i=0; } } else { irtime=0; startflag=1; } } void chuli() //处理接收到的数据 { uchar i,j,k; uchar value,temp; k=1; for(i=0;i<4;i++) { for(j=1;j<=8;j++) { temp=shijian[k]; if(temp>7) { value=value|0x80; } if(j<8) { value=value>>1; } k++; } zijie=value; value=0; } prook=1; } void display(void)//红外键值散转程序 { switch(zijie[2])//判断第三个数码值 { case 0x0c:P0=dofly_DuanMa[1];break;//1 显示相应的按键值 case 0x18:P0=dofly_DuanMa[2];break;//2 case 0x5e:P0=dofly_DuanMa[3];break;//3 case 0x08:P0=dofly_DuanMa[4];break;//4 case 0x1c:P0=dofly_DuanMa[5];break;//5 case 0x5a:P0=dofly_DuanMa[6];break;//6 case 0x42:P0=dofly_DuanMa[7];break;//7 case 0x52:P0=dofly_DuanMa[8];break;//8 case 0x4a:P0=dofly_DuanMa[9];break;//9 default:break; } prook=0;//处理完成标志 } void main() { int0init(); t1init(); P0=0xfe; //取位码 第一位数码管选通,即二进制1111 1110 LATCH2=1; //位锁存 LATCH2=0; while(1) { if(receok) { chuli(); receok=0; } if(prook) { display(); } } } |
|
相关推荐 |
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
536 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
524 浏览 0 评论
477 浏览 1 评论
479 浏览 0 评论
关于RT-Thread studio添加freemodbus控件失败的问题
808 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11636 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 10:51 , Processed in 0.749199 second(s), Total 47, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号