完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
` 朋友请帮忙看看,我这个程序怎么只能执行计时 到40分钟后,输出3秒的低电平就一直这样循环了。而40分钟输出3秒的低电平过后,程序应该又执行计时10分钟又输出3秒低电平后,再开始循环的程序 。 #include<reg52.h>
#include <intrins.h> #define uchar unsigned char ***it pf1=P1^3; ***it beep1=P1^2; ***it key1=P2^1; uchar hm,f1,m1,s1; uchar count; void dely500(void) { unsigned char i; for(i=250;i>0;i--) _nop_(); } void warn() { for(count=200;count>0;count--) { beep1=~beep1; dely500(); } for(count=200;count>0;count--) { beep1=~beep1; dely500(); dely500(); } } void Key_Resp() { if(key1==0) { pf1=0; warn(); } } void main() { uchar b; TMOD=0x01; IE=0X82; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; pf1=1; beep1=1; while(1) { if(s1==1) { if(f1==40) { pf1=0; f1=0; s1=0; } } if(s1==0) { if(m1==3) { pf1=1; m1=0; s1=1; } warn(); } if(s1==1) { if(f1==10) { pf1=0; f1=0; s1=0; } } if(s1==0) { if(m1==3) { pf1=1; m1=0; s1=1; } warn(); } b=pf1; Key_Resp(); pf1=b; } } void zdlk()interrupt 1 //中断:每次进中断hm++,当hm=20时m自加一次,m加到60,f自加一次 { //hm为毫秒,m为秒,f为分 TH0=(65536-50000)/256; TL0=(65536-50000)%256; hm++; if(hm==20) { hm=0; m1++; if(m1==60) { m1=0; f1++; } } } ` |
|
相关推荐
26个回答
|
|
|
|
|
|
朋友,研究得怎样了啊?我都捣鼓了一周多了还是不行,论坛里的高手也不知道在哪里哦! |
|
|
|
我相信论坛内会有热心的朋友帮忙的,只是他没有看到罢了,哎!!!
|
|
|
|
|
|
|
|
我改成这样还是不行,仿真时第一组2分钟过后只输出了2秒低电平,第 二组3分钟过后只输出了约1秒的低电平,求高手给再改改吧
![]() #include #define uchar unsigned char ***it pf1=P1^3; ***it beep1=P1^2; ***it key1=P2^1; uchar hm,f1,m1,s1; uchar count; void dely500(void) { unsigned char i; for(i=250;i>0;i--) _nop_(); } void warn() { for(count=200;count>0;count--) { beep1=~beep1; dely500(); } for(count=200;count>0;count--) { beep1=~beep1; dely500(); dely500(); } } void Key_Resp() { if(key1==0) { pf1=0; warn(); } } void main() { uchar b; TMOD=0x01; IE=0X82; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; pf1=1; beep1=1; while(1) { if(2== f1) { pf1=0; warn(); if(3 == m1) { pf1 = 1; } } if(3 == f1) { pf1 =0; warn(); if(3 == m1) { pf1 = 1; f1 = 0; } } b = pf1; Key_Resp(); pf1 = b; } } void zdlk()interrupt 1 //中断:每次进中断hm++,当hm=20时m自加一次,m加到60,f自加一次 { //hm为毫秒,m为秒,f为分 TH0=(65536-50000)/256; TL0=(65536-50000)%256; hm++; if(hm==20) { hm=0; m1++; if(m1==60) { m1=0; f1++; } } } |
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-搭建自己的ubuntu系统之ubuntu网络设置
371 浏览 0 评论
龙芯中科胡伟武:3B6600 八核桌面 CPU 性能将达到英特尔中高端酷睿 12~13 代水平
501 浏览 0 评论
树莓派Pico 2发布,搭载RP2350双核RISC-V和Arm Cortex-M33微控制器!
477 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之VMware Tools安装
408 浏览 0 评论
嵌入式学习-搭建自己的ubuntu系统之ubuntu系统安装
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10679 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-15 16:22 , Processed in 1.258075 second(s), Total 53, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191