P1.4引脚连接了一个按键,编写程序实现:上电后,P2.5直接输出占空比为30%的方波,按一下按键(按下后松开),P2.5输出占空比为60%的方波,再按一下按键,P2.5输出占空比为90%的方波,再按一下,P2.5输出返回到占空比为30%的方波,如此循环。
所有方波频率为10Hz,程序怎样设计?
关于#单片机#的问题:所有方波频率为10Hz
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- m0_54204465 2023-02-02 08:27关注
#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit KEY = P1^4; //定义按键 uchar state = 0; //定义状态变量 void delay(uint t) //延时函数 { while (t--); } void main() { while(1) { switch(state) { case 0: //状态0,占空比30% P2 = 0x20; delay(3); P2 = 0x00; delay(7); if (KEY == 0) //如果按键按下 { delay(10); //延时去抖 state = 1; //改变状态 } break; scss Copy code case 1: //状态1,占空比60% P2 = 0x20; delay(6); P2 = 0x00; delay(4); if (KEY == 0) //如果按键按下 { delay(10); //延时去抖 state = 2; //改变状态 } break; case 2: //状态2,占空比90% P2 = 0x20; delay(9); P2 = 0x00; delay(1); if (KEY == 0) //如果按键按下 { delay(10); //延时去抖 state = 0; //改变状态 } break; default: //默认状态 state = 0; //回到状态0 break; } } }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 安装svn网络有问题怎么办
- ¥15 Python爬取指定微博话题下的内容,保存为txt
- ¥15 vue2登录调用后端接口如何实现
- ¥65 永磁型步进电机PID算法
- ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
- ¥88 找成都本地经验丰富懂小程序开发的技术大咖
- ¥15 如何处理复杂数据表格的除法运算
- ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
- ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
- ¥15 latex怎么处理论文引理引用参考文献