【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25

缘由https://ask.csdn.net/questions/7909241/54131971

cpp 复制代码
`#include "reg52.h"//四位数码管显示
sbit d=P2^1;
sbit w=P2^0;
sbit k1=P3^2;
sbit k2=P3^3;
bit x1=0,x2=0;
unsigned char code SmZiFu[]={63,6,91,79,102,109,125,7,127,111,128,0};//0-9.
unsigned char ys=0,x=0,fx=0;
void xianshi()
{
    if(++ys>174)
    {
        ys=P0=0;
        d=1;P0=SmZiFu[x+fx>7?11:x+fx];d=0;
        w=1;
        P0=255-(x==0?1:x==1?2:x==2?4:x==3?8:x==4?16:x==5?32:x==6?64:128);
        w=0;
        if(++x>7)x=0;
    }
}
void main()
{//缘由https://ask.csdn.net/questions/7909241/54131971
    unsigned char xd=0,js=0;
    while(1)
    {
        xianshi();
        if(k1==0&&++xd==0){x1=1;x2=0;while(k1==0)xianshi();}
        if(k2==0&&++xd==0){x2=1;x1=0;while(k2==0)xianshi();}
        if(ys==0&&++js==0)
        {
            if(x1==1&&x2==0)if(++fx>7)fx=0;else;
            else if(x1==0&&x2==1)if(--fx==255)fx=8;else;
            else fx=0;
        }
    }
}`
cpp 复制代码
`void xianshi()
{
        if(++ys==0)
        {//74CH273
           w=0;
           P0=255-(x==0?1:x==1?2:x==2?4:x==3?8:x==4?16:x==5?32:x==6?64:128);
           w=1;d=1;P0=SmZiFu[x+fx>7?11:x+fx];d=0;//若用2片273则d=0在先d=1在后
           if(++x>7)x=0;
        }
}`

第3位数码管无论如何都无法点亮,添加P0=255;后还是一样?还不清楚什么原因,找到标号弄错了。




cpp 复制代码
`#include "reg52.h"//四位数码管显示
sbit d=P2^1;
sbit w=P2^0;
sbit w1=P2^2;
sbit k1=P3^2;
sbit k2=P3^3;
bit x1=0,x2=0;
unsigned char code SmZiFu[]={63,6,91,79,102,109,125,7,127,111,128,0};//0-9.
unsigned char ys=0,x=0,fx=0;
void xianshi()
{
        if(++ys==0)
        {
                w=0;
                P0=255-(x==0?1:x==1?2:x==2?4:x==3?8:x==4?16:x==5?32:x==6?64:128);
                w=1;
                w1=0;
                P0=255-(x==0?1:x==1?2:x==2?4:x==3?8:x==4?16:x==5?32:x==6?64:128);
                w1=1;
                d=0;P0=SmZiFu[x+fx>7?11:x+fx];d=1;
                if(++x>7)x=0;
        }
}`

有时由于修改电路难免发生小误而奇怪现象如下





我初学编程时就到论坛1是看看别人是怎么写的,2是有机会就回复力所能及的,有一次好像是回复不怎样,有人奚落我一边呆着去,我问什么意思,答"哪凉快哪呆着去",然而这种人我觉得不值一提,没那么了不起,反而是没见识鄙陋的表现,其实学单片机我也是一样来看看别人是怎么写的,不是复制粘贴的,最重要的是自己思考推敲才要紧,其实这种驱动没什么特别的,多动脑子就有办法,很简单的,不是什么很难的时序。

相关推荐
碧海银沙音频科技研究院2 小时前
炬芯ATS3089X手表的HFP通话不自动路由到设备BT的问题解决
网络·人工智能·嵌入式硬件·算法
youcans_7 小时前
【STM32C5教程】(3)GPIO 按键输入实验
stm32·单片机·嵌入式硬件
专注仿真7 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
码爸7 小时前
支持向量机介绍与示例
算法·机器学习·支持向量机
怕浪猫7 小时前
2028编程圈很火的10个Skills
算法·面试·github
俊基科技8 小时前
回音消不掉、底噪压不住、主板还对不上口?——A-59P 多功能语音处理模组技术解析
嵌入式硬件·回音消除·ai降噪模块
滕州市燕猫虎计算机科技工作室个体工商户8 小时前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
北京盛世宏博9 小时前
通信异常深度排查:以太网温湿度设备 TCP 粘包、UDP 丢包根治方案
单片机·网络协议·tcp/ip·udp·以太网·传感器·温湿度
上海广测检测科技有限公司9 小时前
消费类智能联网设备安全分级国标征求意见要点解析:三级五维框架与跨境对标逻辑
网络·经验分享