找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 830|回复: 7
收起左侧

大佬们可以抽时间帮忙看看嘛,谢谢各位大佬

[复制链接]
ID:1109973 发表于 2024-1-29 00:33 | 显示全部楼层 |阅读模式
有大佬可以帮忙看一下这个嘛,下面是程序,然后这个所运行出来的效果如视频所示,如果我想达到照片中的效果,这个程序应该怎么改呀,感谢各位大佬https://v.youku.com/v_show/id_XNjM3MDY0OTA0MA==.html
  1. #include <REGX52.H>

  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define smg_port P0

  5. sbit smg_a=P2^2;
  6. sbit smg_b=P2^3;
  7. sbit smg_c=P2^4;

  8. uchar smg_code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x4f};

  9. void Delay1000ms(void)
  10. {
  11.         unsigned char data i, j, k;

  12.         _nop_();
  13.         i = 8;
  14.         j = 1;
  15.         k = 243;
  16.         do
  17.         {
  18.                 do
  19.                 {
  20.                         while (--k);
  21.                 } while (--j);
  22.         } while (--i);
  23. }



  24. void smg_play(void)
  25. {
  26.         uchar i=0;
  27.        
  28.         for(i=0;i<8;i++)
  29.         {
  30.                 switch(i)
  31.                 {
  32.                         case 0:smg_c=1;smg_b=1;smg_a=1;break;
  33.                         case 1:smg_c=1;smg_b=1;smg_a=0;break;
  34.                         case 2:smg_c=1;smg_b=0;smg_a=1;break;
  35.                         case 3:smg_c=1;smg_b=0;smg_a=0;break;
  36.                         case 4:smg_c=0;smg_b=1;smg_a=1;break;
  37.                         case 5:smg_c=0;smg_b=1;smg_a=0;break;
  38.                         case 6:smg_c=0;smg_b=0;smg_a=1;break;
  39.                         case 7:smg_c=0;smg_b=0;smg_a=0;break;
  40.                 }
  41.                 smg_port=smg_code[i];
  42.                 Delay1000ms();
  43.         }
  44. }
  45.                
  46. void main()
  47. {
  48.         while(1)
  49.         {
  50.                  smg_play();
  51.         }
  52. }
复制代码


想要达到的效果

想要达到的效果
回复

使用道具 举报

ID:1109973 发表于 2024-1-29 00:36 | 显示全部楼层
就是想要这8个数字同时显现,但是我运行出来一次只能显现出一个数字,应该在程序上加一些东西还是删掉一些东西啊,麻烦各位大佬给我这个门槛还没有摸到的小虾米解答一下,谢谢谢谢谢谢谢谢!!!
回复

使用道具 举报

ID:213173 发表于 2024-1-29 06:25 | 显示全部楼层
桦木醇 发表于 2024-1-29 00:36
就是想要这8个数字同时显现,但是我运行出来一次只能显现出一个数字,应该在程序上加一些东西还是删掉一些 ...

你把延时函数改为1ms就能达到想要的效果。
回复

使用道具 举报

ID:844772 发表于 2024-1-29 06:56 来自手机 | 显示全部楼层
把Delay1000ms();去掉
回复

使用道具 举报

ID:1004920 发表于 2024-1-29 08:15 | 显示全部楼层
是你的延时时间太长了,改成几毫秒看看吧
回复

使用道具 举报

ID:391543 发表于 2024-1-29 08:23 | 显示全部楼层
Delay1000ms();延时时间太长
回复

使用道具 举报

ID:546198 发表于 2024-1-29 08:29 | 显示全部楼层
桦木醇 发表于 2024-1-29 00:36
就是想要这8个数字同时显现,但是我运行出来一次只能显现出一个数字,应该在程序上加一些东西还是删掉一些 ...

每个数字显示几ms就行了,同时显示其实就是利用眼睛视觉残留达到同时亮的效果。
回复

使用道具 举报

ID:883242 发表于 2024-1-30 04:17 | 显示全部楼层
楼主解决了问题吱一声也让热心群众不失望。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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