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

相关推荐
戴西软件1 分钟前
戴西 DLM 许可授权管理系统:破解无网络环境下工业软件授权难题,助力制造企业降本增效
网络·人工智能·python·深度学习·程序人生·算法·制造
西城微科方案开发9 分钟前
多品类电子秤一体化PCBA整体方案
单片机·嵌入式硬件·电子秤
2601_9618752412 分钟前
法考资料2026|全套|资料已整理
数据结构·算法·链表·贪心算法·eclipse·线性回归·动态规划
无限码力17 分钟前
美团研发岗 4月18号笔试真题 - 坐标
算法·美团笔试真题·美团笔试题·美团研发岗笔试题·美团研发岗4月18号真题
火花页.37 分钟前
【正点原子ZYNQ领航者7020】PS端GPIO中断→按键控制LED实验
单片机·嵌入式硬件
ye1501277745541 分钟前
4.2V升6V1A同步升压WT3213
单片机·嵌入式硬件·其他·硬件工程
有点。1 小时前
C++倍增法(练习题)
c++·算法
chase。1 小时前
【学习笔记】SimpleVLA-RL:通过强化学习扩展 VLA 训练
笔记·学习
嵌入式小站2 小时前
STM32 可移植教程 02:按键状态机,消抖、长按、释放一行也不用多写(实战篇)
chrome·vscode·stm32·单片机·嵌入式硬件