完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大神们看看,这个程序那里有问题,利用两个外部中断测功率因数
#include #include #include #define uint unsigned int #define uchar unsigned char #define PI 3.14 ***it tou1 = P1^7; ***it tou2 = P1^6; uint num=0,t2; float t,t1; uchar shu1,shu2,shu3,shu4; uchar code table[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint z);//这个是数码管要用的 void display(uchar shu2,uchar shu3,uchar shu4); void main() { TMOD=0x01;//工作方式1 EA=1; IT0=1; IT1=1;//下降沿有效 EX0=1; EX1=1; TH1=0x00; TL1=0x00; while(1) { display(shu2,shu3,shu4);//数码管显示 if(t1<0.9) { tou1 = 0; } } } /*外部中断1*/ void exter1() interrupt 2 { EX0=0; TR1 = 0;//打开定时器 t=255*TH1+TL1; EX0=1; } /*外部中断0*/ void exter0() interrupt 0 { EX1=0; TH1=0;TL1=0; TR1 = 1;//打开定时器 EX1=1; { //下面是对时间处理 //读出定时器已经放得值 if(t>=5.0&&t<=10.0) t=10-t; else if(t>=10.0&&t<=15.0) t=t-10; else if(t>=15.0&&t<=20.0) t=20.0-t; t1=(float)t*2*3.14159/20; t1=cos(t1); t2=t1*10000; shu2=t2/1000; shu3=t2%1000/100; shu4=t2/10%10; } } void display(uchar shu2,uchar shu3,uchar shu4) { P2=0xef;//选中第一个数码管 P0=0xbf; delay(1); P2=0xdf;//选中第二个数码管 P0=table[shu2]; delay(1); P2=0xbf;//选中第三个数码管 P0=table[shu3]; delay(1); P2=0x7f;//选中第四个数码管 P0=table[shu4]; delay(1); } /*延时函数,1ms*/ void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } |
|
相关推荐
4个回答
|
|
记不得了,51好久没玩。
|
|
|
|
中断里居然有大量的运算过程,而且是有浮点数运算的,应该是在中断里先备份数据,在主循环里进行运算。然后是像用51的,时钟频率本就不够快,就应尽量避免浮点数的运算……
像你这用法,估计在中断里运算的时候还没运算完,下一个中断又来了…… |
|
|
|
中断乃稀缺资源,不能长期占用
|
|
|
|
楼主进中断应该有执行关闭外部中断操作,这样不会使得当前中断被其他中断打断,但是其他中断无法得到执行会不会对功能造成影响??
另外同意楼上几位,一般中段内只执行必要的关键操作,对应的运算还是放在中断外处理。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
955 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
829 浏览 0 评论
978 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
1038 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
823 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10515 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-6 05:13 , Processed in 0.557182 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号