久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1668|回復: 4
收起左側

單片機代碼下到板子上數碼管亮度低怎么辦?

[復制鏈接]
ID:1084057 發表于 2023-6-14 15:10 | 顯示全部樓層 |閱讀模式
這個代碼下到板子上數碼管亮度低怎么辦

單片機源程序如下:
  1. #include <REGX52.H>
  2. #define smg P0
  3. typedef unsigned int U16;
  4. sbit S18=P2^0;
  5. sbit S19=P2^1;
  6. sbit S20=P2^2;
  7. void delay(U16 i)
  8. {
  9. while(i--);
  10. }
  11. int i;
  12. void an()
  13. {
  14.         if(S18==0)
  15.         {
  16.         delay(5);
  17.         if(S18==0)
  18.         {
  19.                 i++;
  20.                 if(i==9999)
  21.         {
  22.         i=0;
  23.         }
  24.         }
  25.         while(!S18);
  26.         }        
  27. if(S19==0)
  28.         {
  29.         delay(5);
  30.         if(S19==0)
  31.         {
  32.                 i--;
  33.                 if(i==0)
  34.         {
  35.         i=9999;
  36.         }
  37.         }
  38.         while(!S19);
  39.         }
  40.         if(S20==0)
  41.         {
  42.         delay(5);
  43.         if(S20==0)
  44.         {
  45.                 i=0;
  46.         }
  47.         while(!S20);
  48.         }
  49. }
  50. void main()
  51. {
  52.         
  53.         int q,b,s,g;
  54.         int sz[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  55.         i=0;
  56. while(1)
  57. {

  58.   an();
  59.   q=i/1000;
  60.   b=i%1000/100;
  61.   s=i%100/10;
  62.   g=i%10;
  63.         delay(5);
  64.         P0_0=1;
  65.         P0_1=1;
  66.   P0_2=1;
  67.         P0_3=1;
  68.         
  69.         
  70.         P0_0=0;
  71.         P1=sz[q];
  72.         P0_0=1;
  73.         P1=0xff;
  74.         delay(5);
  75.         
  76.         P0_1=0;
  77.         P1=sz[b];
  78.         P0_1=1;
  79.         P1=0xff;
  80.         delay(5);
  81.         
  82.         P0_2=0;
  83.         P1=sz[s];
  84.         P0_2=1;
  85.         P1=0xff;
  86.         delay(5);
  87.         
  88.         P0_3=0;
  89.         P1=sz[g];
  90.         P0_3=1;
  91.         P1=0xff;
  92.         delay(5);        
  93. }
  94. }
復制代碼

回復

使用道具 舉報

ID:712097 發表于 2023-6-14 16:46 | 顯示全部樓層
單片機IO驅動能力不足,加三極管或MOS管驅動。
回復

使用道具 舉報

ID:332444 發表于 2023-6-14 16:48 | 顯示全部樓層
調節數碼段顯示時間到合適
回復

使用道具 舉報

ID:883242 發表于 2023-6-14 17:06 | 顯示全部樓層
74行消隱和75行延遲顯然搞反了,下面一大堆類似錯誤。

正常流程是:
顯示
延遲
消隱(防止本段顯示數據漏到下一段,關閉顯示)
顯示下一個
延遲
消隱
…………

你剛剛顯示就關閉了,然后延遲,反復循環,到底是幾個意思???
回復

使用道具 舉報

ID:213173 發表于 2023-6-14 20:46 | 顯示全部樓層
數碼管顯示時間太短,消隱時間太長。改一下。
  1. #include <REG52.H>
  2. #define smg P0
  3. typedef unsigned int U16;

  4. sbit S18=P2^0;
  5. sbit S19=P2^1;
  6. sbit S20=P2^2;

  7. unsigned char sz[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
  8. unsigned char qbsg[4];
  9. unsigned char i;
  10. int num;

  11. void delay(U16 i)
  12. {
  13.         while(i--);
  14. }

  15. void an()
  16. {
  17.         static unsigned char count=0;
  18.         static bit sign=0;
  19.         if(!S18||!S19||!S20)
  20.         {
  21.                 if(++count>=20 && sign==0)
  22.                 {
  23.                         sign=1;
  24.                         if(!S18)
  25.                         {
  26.                                 num++;
  27.                                 if(num>9999)num=0;
  28.                         }
  29.                         if(!S19)
  30.                         {
  31.                                 num--;
  32.                                 if(num<0)num=9999;
  33.                         }
  34.                         if(!S20)
  35.                         {
  36.                                 num=0;
  37.                         }
  38.                 }
  39.         }
  40.         else
  41.         {
  42.                 count=0;
  43.                 sign=0;
  44.         }
  45. }
  46. void main()
  47. {        
  48.         while(1)
  49.         {
  50.                 an();
  51.                 qbsg[0]=sz[num/1000%10];
  52.                 qbsg[1]=sz[num/100%10];
  53.                 qbsg[2]=sz[num/10%10];
  54.                 qbsg[3]=sz[num%10];

  55.                 P1=0xff;
  56.                 P0=0x01<<i;
  57.                 P1=qbsg[i];
  58.                 i=++i%4;
  59.                 delay(100);
  60.         }
  61. }
復制代碼

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人干人人干人人干 | 中文字幕 在线观看 | 一区二区伦理电影 | 亚洲精品久久嫩草网站秘色 | 91精品国产综合久久婷婷香蕉 | 91精品国产综合久久小仙女图片 | 精品久久影院 | 99re6在线视频精品免费 | 91免费在线 | 日韩视频a | 一区二区在线免费观看 | 国产欧美一区二区三区久久 | 天天操网 | 日韩精品一区二区三区中文在线 | 日韩成人免费av | 在线激情视频 | 精品麻豆剧传媒av国产九九九 | 日本在线免费视频 | 日韩久久久久久 | 国产1区2区 | 成人午夜在线 | av在线播放不卡 | 黄色毛片免费 | 国产精品www| 综合久久一区 | 亚洲一区二区三区在线视频 | 91精品国产777在线观看 | 欧美一区二区三区精品免费 | 中文字幕一区在线观看视频 | 亚洲成人99 | 美女三区| h在线| 神马久久久久久久久久 | 欧美极品在线观看 | 欧美色综合一区二区三区 | 国产精品综合 | 久久激情视频 | 最新国产视频 | 中文字幕一区二区三区四区五区 | 澳门永久av免费网站 | 日韩免费激情视频 |