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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于單片機IO口直接驅動數碼管程序調試

查看數: 4143 | 評論數: 8 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-6-20 01:35

正文摘要:

利用STC單片機IO口推挽輸出方式直接驅動4位數碼管,最大限度地節省外圍電路,電路原理圖如下所示。P3.2 - P3.5推挽輸出,每位驅動1位數碼管;P1口每個時序驅動1段數碼管,降低單片機的輸出負載。如果需要降低顯示亮 ...

回復

ID:884147 發表于 2022-12-7 11:38
liangtiancong 發表于 2022-12-6 22:32
在公共段加限流電阻的電路,有沒有辦法軟件去平均亮度?

雖然這種設計不合理,但是很多產品都在使用,比如有些焊臺、即熱水器等,可能為了控制成本。其實用軟件是可以平均亮度的,根據亮的段數控制點亮時長,實際上就相當于控制占空比,顯示1時間長點,顯示8時間短點
ID:1034262 發表于 2022-12-7 11:16
段驅動要串聯電阻(一般300歐姆或以上),避免過流燒IO。
ID:213173 發表于 2022-12-7 09:26
給你一個硬件略圖和修改后的代碼,解釋并解決你的問題。適用于IO口可設置推挽模式的MCU。
  1. #include <reg51.H>
  2. sfr P1M1    =   0x91;
  3. sfr P1M0    =   0x92;
  4. sfr P3M1    =   0xb1;
  5. sfr P3M0    =   0xb2;

  6. //反序共陰極數碼管段碼表,段碼a-h順序接PX7-PX0
  7. unsigned char code DIGITS_SEG_TAB[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x1a,0x7a,0x9e,0x8e,0x00,0xee,0x1c,0x02,
  8.                                    //0    1    2    3    4    5    6    7    8    9    a    b    c    d    e    f    <sp>  A    L    -
  9.                                      0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7,0xef,0x3f,0x1b,0x7b,0x9f,0x8f,0x01,0xef,0x1d,0x03};
  10.                                    //0.   1.   2.   3.   4.   5.   6.   7.   8.   9.   a.   b.   c.   d.   e.   f.   <sp>. A.   L.   -.
  11. unsigned char Digits_Buf[4];        //顯存4字節,4個數碼管
  12. unsigned int num=1234;

  13. void main(void)
  14. {
  15.         unsigned char i;
  16.         unsigned int t;
  17.         P1M1=0x00;
  18.         P1M0=0xff;//P1推挽模式
  19.         P3M1=0x00;
  20.         P3M0=0x00;//P3準雙向模式

  21.         while (1)
  22.         {
  23.                 switch(i)
  24.                 {
  25.                         case 0: Digits_Buf[0]=DIGITS_SEG_TAB[num/1000%10]; break;
  26.                         case 1: Digits_Buf[1]=DIGITS_SEG_TAB[num/100%10]|0x01; break;//加點
  27.                         case 2: Digits_Buf[2]=DIGITS_SEG_TAB[num/10%10]; break;
  28.                         case 3: Digits_Buf[3]=DIGITS_SEG_TAB[num%10]; break;
  29.                 }
  30.                 P1=0x00;
  31.                 P3&=0xc3;
  32.                 P3|=~(0x04<<i);
  33.                 P1=Digits_Buf[i];
  34.                 i=++i%4;
  35.                 t=1000;
  36.                 while(t--);//少許延時
  37.         }
  38. }
復制代碼





ID:308903 發表于 2022-12-7 08:55
從問題倒推問題
數碼管各字符顯示亮度不均勻并伴隨閃爍

閃爍:
說明導通時間大于人眼分辨時間--->間隔不穩定
亮度不均勻:
說明電流大小不一致。--->間隔不穩定

但是,為啥要使其間隔不穩定? 沒明白

ID:374653 發表于 2022-12-6 22:32
名字不是重點 發表于 2021-6-21 13:44
。亮度不均!沒有限流,當顯示8與顯示1時,亮度就能看出差別了

在公共段加限流電阻的電路,有沒有辦法軟件去平均亮度?
ID:824490 發表于 2021-6-21 13:44
。亮度不均!沒有限流,當顯示8與顯示1時,亮度就能看出差別了
ID:734017 發表于 2021-6-21 12:44
yzwzfyz 發表于 2021-6-21 10:58
這個硬件設計是欠妥的。應該考慮一下,IO口所能輸出與吸入的電流,與LED的電流、亮度是否有沖突。
另外必 ...

感謝,這是網上的的例程,最后說的那兩句程序好像不對,發出來請教一下。實際中每路IO口肯定會加電阻,謝謝
ID:123289 發表于 2021-6-21 10:58
這個硬件設計是欠妥的。應該考慮一下,IO口所能輸出與吸入的電流,與LED的電流、亮度是否有沖突。
另外必要的限流是需要的,否則CPU會受到意外傷害。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠操狠狠干 | 毛片入口 | 亚洲国产一区在线 | 97国产精品视频人人做人人爱 | av大片| 国产精品欧美一区喷水 | 国产精品久久久久久吹潮 | 老司机深夜福利网站 | 欧美精品综合 | 日本不卡在线视频 | 精品一二三 | 亚洲网站免费看 | 亚洲在线一区二区三区 | 国产一区二区自拍 | 国产成人99久久亚洲综合精品 | 无人区国产成人久久三区 | 国产成人精品久久 | 日本理论片好看理论片 | 成人精品鲁一区一区二区 | 成人影院一区二区三区 | 欧美精品三区 | 欧美视频第三页 | 成人高清视频在线观看 | 91一区二区| 日韩视频在线观看一区二区 | 九九伊人sl水蜜桃色推荐 | 免费黄色a级毛片 | 国产精品视频网 | 性网站免费 | 国产激情精品一区二区三区 | 久久国产精品色av免费观看 | 日韩免费一区二区 | 精品久久久久久久久久久 | 国产一区二区三区在线 | 国产女人与拘做受视频 | 国产分类视频 | 久草福利| 成人一级片在线观看 | 亚洲精彩免费视频 | 国产成人免费视频网站视频社区 | 国产视频在线观看一区二区三区 |