永发信息网

求单片机c语言定时程序。初始条件下继电器断开,继电器低电平有效。

答案:2  悬赏:60  手机版
解决时间 2021-02-15 03:18
求单片机c语言定时程序。初始条件下继电器断开,继电器低电平有效。显示共三位数码管,小时1位0-9.分钟两位00-59.k1健+1,k2健-1,k3健移位。k4健清零,继电器断开。谢谢
最佳答案
#include //假定继电器是安装在P3.5,按键分别安装在P3.6, P3.7,时钟频率12MHzsbit sw1=P3^6;sbit sw2=P3^7;sbit relay=P3^5; void SetupTimer0(){ TMOD &= 0xF0; //仅保留T1信息 TMOD |= 0x02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器 TH0 = 256-250;//定时每0.25ms中断一次 TL0 = 256-250; TR0 = 1; //开启定时器 ET0 = 1; //定时器0中断打开} data unsigned char us250;data unsigned int relay_timer;void Timer0_ISR() interrupt 1 //定时中断服务程序,为按键消抖服务{//如果一个动作过程刚刚开始,则设定继电器延时3000ms,并打开继电器if (0==relay_timer && 0==sw1) {relay_timer=3000; relay=1;} if (++us250>=4) //250us中断一次,每四次得到1ms { us250=0; if(relay_timer==0) relay=0; //如继电器延时为0,则关继电器 else --relay_timer; //否则继电器延时递减 } //如果当前正处于一个动作过程且有sw2按下,则修改继电器延时为1000msif (relay_timer && 0==sw2) relay_timer=1000;} void main(){us250=0;relay_timer=0;relay=0; SetupTimer0(); EA = 1; //全局中断打开 while(1); //所有的动作均在中断函数内完成}
全部回答
任务占坑
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DOTA风仗是什么
脸上长的痘痘被我挤了,留下了红紫色的印记,有
松鼠除了吃松果还爱吃啥?
我的仓鼠肚子那里都湿了
阿里巴巴怎么找附近做阿里巴巴的商家
张建亚版西游记斗法降三怪在哪一集
海林市牡丹江李家粥铺(幸福路)怎么去啊,谁知
浦东机场附近有什么逛的什么小镇
经发小学和文景小学哪个好了
偏甘油酯是什么
乐山职业技术学院护理系历年分数线(四川省的
摩托车发动机摇臂的作用
住宅区道路可分为居住区道路、小区路、组团路
银川市西夏区贺兰山西路法律服务所地址在什么
冷油器为什么要定期维护清洗
推荐资讯
怀宁宏博酒店洗浴可以微信支付吗
Android 开发 怎样使当前界面的背景透明
树木用哪种复合肥比较好?
逐浪写的小说。书皮怎么做啊
亿顺东方汽贸地址在哪,我要去那里办事
哪位大哥哥有王者荣耀防沉迷软件吗
家家福白云店地址在什么地方,想过去办事
高考用的黑笔具体是什么样的
闭合性粉刺怎样调理
一夜龙鱼舞(民族风俗词语)
根据下图内容,分析我国第六次人口普查情况,
丰宁县商业局幼儿园地址在什么地方,我要处理
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?