m0_62022535 2021-09-17 19:23 采纳率: 0%
浏览 130

设计出AT89C52单片机与外设连接的Proteus仿真电路图,并编程

某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);        //延时
    }
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月17日

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作