某AT89C52单片机控制系统有2个开关,分别是S1和S2,1个数码管(共阳极)。当S1按下时数码管加1,S2按下时数码管清零。设计出AT89C52单片机与外设连接的Proteus仿真电路图,并编程实现上述要求。
1条回答 默认 最新
- 踢足球的阿坤 2023-02-08 03:09关注
#include<reg52.h> sbit S1=P3^3; //定义P3^3端口为S1 sbit S2=P3^4; //定义P3^4端口为S2 unsigned char num=0; //定义数码管显示变量 void delay(unsigned int time) //定义延时子程序 { unsigned int i,j; for(i=0;i<time;i++) { for(j=0;j<120;j++); } } void main() { P2=0xff; //定义数码管端口为输出 while(1) { if(S1==1) //当S1按下时 { num++; //数码管加1 } else if(S2==1) //当S2按下时 { num=0; //数码管清0 } P2=num; //将变量num的值输出到数码管显示 delay(10); //延时 } }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵