完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我是新手,请教一个89c52 中断延时的问题.红外线传感器 跳变延 进中断 ,想要红外线在一定的时间内操作无效,一定时间后,给个中断, 数码管计数才可以加1,同时数码管还可以正常的显示
程序如下: #include ***it T=P3^7; //位控制端 ***it R=P3^6; //段控制端 void delay(unsigned int sm); unsigned char a=0; unsigned int w[10]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0--9 unsigned int i,ti,ti1,ti2,ti3,ti4,ti5,ti6,ti7,ti8,j,x,y,tt; unsigned int n=0; unsigned int m=0; void exter0() interrupt 0 { n=n++; } void exter1() interrupt 2 { m=m++; } void main() { ti=0; EA=1,EX0=1,EX1=1; IT0=1,IT1=1; tt=0; TMOD=0x11;//设置定时器0为工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1;//开定时器0中断 TR0=1;//启动定时器0 while(1) { ti1=n/1000; //千位 ti2=(n-ti1*1000)/100;//百位 ti3=(n-ti2*100-ti1*1000)/10; //十位 ti4=n-ti3*10-ti2*100-ti1*1000;//个位 ti5=m/1000; //千位 ti6=(m-ti5*1000)/100;//百位 ti7=(m-ti6*100-ti5*1000)/10; //十位 ti8=m-ti7*10-ti6*100-ti5*1000;//个位 T=1; P0=0xfe; T=0; R=1; P0=w[ti1]; R=0; delay(2); T=1; P0=0xfd; T=0; R=1; P0=w[ti2]; R=0; delay(2); T=1; P0=0xfb; T=0; R=1; P0=w[ti3]; R=0; delay(2); T=1; P0=0xf7; T=0; R=1; P0=w[ti4]; R=0; delay(2); T=1; P0=0xef; T=0; R=1; P0=w[ti5]; R=0; delay(2); T=1; P0=0xdf; T=0; R=1; P0=w[ti6]; R=0; delay(2); T=1; P0=0xbf; T=0; R=1; P0=w[ti7]; R=0; delay(2); T=1; P0=0x7f; T=0; R=1; P0=w[ti8]; R=0; delay(2); } } void delay(unsigned int sm) { for(i=sm;i>0;i--) for(j=70;j>0;j--); } void time0() interrupt 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; tt++; } |
|
相关推荐
2个回答
|
|
|
|
|
|
就是红外避障传感器 在一定距离内给低电平
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
277 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
368 浏览 0 评论
766 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
592 浏览 0 评论
879 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12039 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 10:24 , Processed in 0.593172 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号