找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3612|回复: 10
收起左侧

51单片机C程序修改 显示管从99减到00,并停留在00不断闪烁

[复制链接]
ID:922299 发表于 2021-5-17 11:54 来自手机 | 显示全部楼层 |阅读模式
51单片机C程序各位大佬帮忙看看怎么修改才能实现功能:显示管从99减到00,并停留在00不断闪烁,51单片机电路如图。  #include<regx51.h>
  unsigned char num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  void delay()
  {
          unsigned int a=500;
          while(a--);
          }
          void main()
          {
                         unsigned char i,j;
                         while(1)
                   {
                          j++;
                          if(j>100)
                          {
                                  j=0;
                                  i--;
                                  if(i<99) i=0;
                                  }
                                 P1=num[i/10]; P3_0=0;P3_1=1;
                                  delay();
                                  P3_0=1;P3_1=1;
                                  P1=num[i%10];P3_0=1;P3_1=0;
                                  delay();
                                  P3_0=1;P3_1=1;
                                 
IMG_20210516_163728_7.jpg
回复

使用道具 举报

ID:451718 发表于 2021-5-17 14:30 | 显示全部楼层
1,先搞清楚,显示两个数字如何操作。
2,再搞清楚,显示空白如何操作。
3,再搞清楚,通过定时器来递减一个变量。
4,判断当变量小于等于0时,变量一直等于0。
5,然后将这个变量显示出来。
6,闪烁其实就是500毫秒显示变量,500毫秒显示空白的操作。
回复

使用道具 举报

ID:922299 发表于 2021-5-17 19:11 来自手机 | 显示全部楼层
robinsonlin 发表于 2021-5-17 14:30
1,先搞清楚,显示两个数字如何操作。
2,再搞清楚,显示空白如何操作。
3,再搞清楚,通过定时器来递减 ...

就是搞不清啊,求大佬指导一下我该如何学习?
回复

使用道具 举报

ID:451718 发表于 2021-5-17 21:05 | 显示全部楼层
liuan 发表于 2021-5-17 19:11
就是搞不清啊,求大佬指导一下我该如何学习?

都想拥有武林秘籍,一夜功成名就。 殊不知 “黄蓉比郭靖聪明百倍,就是学不会降龙十八掌” 。  已经给你把知识点分解成最小的步骤了,如果还不知如何办,就从头开始学C语言,从头开始学寄存器吧。
回复

使用道具 举报

ID:332444 发表于 2021-5-18 08:04 | 显示全部楼层
数码管显示随意控制要在哪位显示就在哪位显示。  闪烁可参https://blog.csdn.net/xianfajush ... ase&utm_term=51  倒计时可参https://blog.csdn.net/xianfajush ... ase&utm_term=51  或https://blog.csdn.net/xianfajush ... ase&utm_term=51
回复

使用道具 举报

ID:213173 发表于 2021-5-18 09:43 | 显示全部楼层
从99减到00,并停留在00不断闪烁
#include<regx51.h>
unsigned char num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay()
{
        unsigned int a=500;
        while(a--);
}
void main()
{
        unsigned char i=99,j;
        bit flag=0;
        while(1)
        {
                j++;
                if(j>100)
                {
                        j=0;
                        if(i>0)
                                i--;
                        flag=~flag;
                }
                P1=0x00;
                if(i>0)P3_0=0;
                else P3_0=flag;
                P3_1=1;
                P1=num[i/10];
                delay();
                P1=0x00;
                if(i>0)P3_1=0;
                else P3_1=flag;
                P3_0=1;
                P1=num[i%10];
                delay();
        }
}
回复

使用道具 举报

ID:922299 发表于 2021-5-18 19:59 来自手机 | 显示全部楼层
wulin 发表于 2021-5-18 09:43
从99减到00,并停留在00不断闪烁
#include
unsigned char num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x ...

谢谢!
回复

使用道具 举报

ID:889094 发表于 2021-5-18 21:29 来自手机 | 显示全部楼层
学习这个事还是要从基础学起,如果是要做工程的话就直接去某一个宝弄就行了,这里没人能从基础一点点讲起
回复

使用道具 举报

ID:857551 发表于 2021-5-18 22:18 | 显示全部楼层
慢慢从基础打起吧,不能超之过急
回复

使用道具 举报

ID:332444 发表于 2021-5-21 15:01 | 显示全部楼层
1.gif
无标题.png
回复

使用道具 举报

ID:466183 发表于 2021-5-21 19:14 | 显示全部楼层

你好,你的这个仿真软件是叫Proteus吧,由于本站不支持下载.我去百度搜索一个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表