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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10152|回復: 25
收起左側

5腳2位半數碼管如何用單片機驅動?

  [復制鏈接]
ID:604162 發表于 2019-8-27 14:35 | 顯示全部樓層 |閱讀模式
188類數碼管,五個腳位188的數碼管如何驅動?
161417ufojzip8iiq9ue9l.png

188數碼管-XLD-2353R-5 188.pdf

134.65 KB, 下載次數: 263

回復

使用道具 舉報

ID:235200 發表于 2019-8-27 18:33 | 顯示全部樓層
只需要5個三極管或類似5個3極管的IC,如ULN2003 74LS245等均可,假設三極管導通提供電源(高電平),截止時電壓接近于0(低電平),關鍵是程序需采用掃描的方式編寫,當1腳的三極管導通提供電源時,234腳要控制相應三極管為低電平,此時有3A 3C 3E三段能點亮,如果只需3A一段亮,需控制2腳三極管低電平輸出 34腳三極管高電平輸出,其它段類似控制,需要把各顯示內容做一個真值表,顯示時把掃描顯示即可
回復

使用道具 舉報

ID:332444 發表于 2019-8-27 18:40 | 顯示全部樓層
16個段引腳看你要如何與蛋騙雞連接,5個共同端并聯即可,段各接限流電阻.用8個IO口驅動或使用16個IO口驅動設計起來就不一樣.
回復

使用道具 舉報

ID:604162 發表于 2019-8-27 18:44 | 顯示全部樓層
想法是這樣,但是點亮數字的時候會被干擾到
回復

使用道具 舉報

ID:604162 發表于 2019-8-27 18:52 | 顯示全部樓層
csmyldl 發表于 2019-8-27 18:33
只需要5個三極管或類似5個3極管的IC,如ULN2003 74LS245等均可,假設三極管導通提供電源(高電平),截止時電壓 ...

就像要點亮3A 3B時候就出現問題
回復

使用道具 舉報

ID:170318 發表于 2019-8-27 21:26 | 顯示全部樓層
共陽端1-5腳作為數碼管位,用動態掃描,驅動可用三極管8550;1、2、3、4作為數碼管段位
回復

使用道具 舉報

ID:604162 發表于 2019-8-28 10:14 | 顯示全部樓層
xianfajushi 發表于 2019-8-27 18:40
16個段引腳看你要如何與蛋騙雞連接,5個共同端并聯即可,段各接限流電阻.用8個IO口驅動或使用16個IO口驅動設 ...

這個只用單片機的5個io口來控制而已1 2 3 4 5 對應的是5個io口,對應的數字是連接在一起的
回復

使用道具 舉報

ID:86130 發表于 2019-8-28 10:37 | 顯示全部樓層
LcdDrive_init:
        movlw        00001011b
        andwf        pt1en,1
;        movlw        00000000b
;        andwf        pt5en,1
        clrf        R_Temp1
        clrf        R_Temp2       
       
        movfw        R_LcdDate_Ge
        call        LcdData_Tab0
        btfsc        R_TimeFlag,B_FirstOnMode2
        movlw        FFH
        btfsc        R_TimeFlag,B_Error_En
        movlw        FFH               
        movwf        R_Temp1
       
        movfw        R_LcdDate_Shi
        call        LcdData_Tab0
        btfsc        R_TimeFlag,B_FirstOnMode2
        movlw        FFH
        btfsc        R_TimeFlag,B_Error_En
        movlw        FFH       
        movwf        R_Temp2
       
        btfss        R_LcdDate_Bai,0
        goto        LcdDrive_Deal
        bsf                R_Temp1,7
        bsf                R_Temp2,7
       
LcdDrive_Deal:                                                       
        movfw        R_LcdCom_Cnt
        andlw        00001111b
        addpcw
        goto        LcdDrive_Com1                                   ;1-2        seg - com
        goto        LcdDrive_Com2                                        ;2-1
        goto        LcdDrive_Com3                                        ;1-3
        goto        LcdDrive_Com4                                        ;3-1
        goto        LcdDrive_Com5                                        ;1-4
        goto        LcdDrive_Com6                                        ;4-1
        goto        LcdDrive_Com7                                        ;5-1
        goto        LcdDrive_Com8                                        ;2-3
        goto        LcdDrive_Com9                                        ;3-2
        goto        LcdDrive_Com10                                        ;4-3
        goto        LcdDrive_Com11                                        ;4-2
        goto        LcdDrive_Com12                                        ;5-2
        goto        LcdDrive_Com13                                        ;5-3
        goto        LcdDrive_Com14                                        ;5-4
        goto        LcdDrive_Com15                                        ;3-4
        goto        LcdDrive_Com16                                        ;2-4
       
LcdDrive_Com1:                                               
        btfss        R_Temp1,6
        return
        call        Set_Seg1
        call        Set_Com2       
        return
       
LcdDrive_Com2:                                                       
        btfss        R_Temp1,5
        return
        call        Set_Seg2
        call        Set_Com1       
        return
       
LcdDrive_Com3:                                                       
        btfss        R_Temp1,4
        return
        call        Set_Seg1
        call        Set_Com3       
        return
       
LcdDrive_Com4:                                                       
        btfss        R_Temp1,3
        return
        call        Set_Seg3
        call        Set_Com1       
        return
       
LcdDrive_Com5:                                                       
        btfss        R_Temp1,2
        return
        call        Set_Seg1
        call        Set_Com4       
        return
       
LcdDrive_Com6:                                                       
        btfss        R_Temp1,1
        return
        call        Set_Seg4
        call        Set_Com1       
        return       
       
LcdDrive_Com7:                                                       
        btfss        R_Temp1,0
        return
        call        Set_Seg5
        call        Set_Com1       
        return
       
LcdDrive_Com8:                                                       
        btfss        R_Temp2,6
        return
        call        Set_Seg2
        call        Set_Com3       
        return
       
LcdDrive_Com9:                                                       
        btfss        R_Temp2,5
        return
        call        Set_Seg3
        call        Set_Com2       
        return
       
LcdDrive_Com10:                                                       
        btfss        R_Temp2,4
        return
        call        Set_Seg4
        call        Set_Com3       
        return
       
LcdDrive_Com11:                                                       
        btfss        R_Temp2,3
        return
        call        Set_Seg4
        call        Set_Com2       
        return
       
LcdDrive_Com12:                                                       
        btfss        R_Temp2,2
        return
        call        Set_Seg5
        call        Set_Com2       
        return
       
LcdDrive_Com13:                                                       
        btfss        R_Temp2,1
        return
        call        Set_Seg5
        call        Set_Com3       
        return
       
LcdDrive_Com14:                                                       
        btfss        R_Temp2,0
        return
        call        Set_Seg5
        call        Set_Com4       
        return
       
LcdDrive_Com15:                                                       
        btfss        R_Temp2,7
        return
        call        Set_Seg3
        call        Set_Com4       
        return
       
LcdDrive_Com16:                                                       
        btfss        R_Temp1,7
        return
        call        Set_Seg2
        call        Set_Com4       
        return       
       
Set_Seg1:
        bsf                PT_Seg1,P_Seg1               
        bsf                PT_Seg1_En,P_Seg1
        return
       
Set_Seg2:
        bsf                PT_Seg2,P_Seg2               
        bsf                PT_Seg2_En,P_Seg2
        return
       
Set_Seg3:
        bsf                PT_Seg3,P_Seg3               
        bsf                PT_Seg3_En,P_Seg3
        return       
       
Set_Seg4:
        bsf                PT_Seg4,P_Seg4               
        bsf                PT_Seg4_En,P_Seg4
        return
       
Set_Seg5:
        bsf                PT_Seg5,P_Seg5               
        bsf                PT_Seg5_En,P_Seg5
        return
       
Set_Com1:
        bcf                PT_Com1,P_Com1
        bsf                PT_Com1En,P_Com1
        return       
       
Set_Com2:
        bcf                PT_Com2,P_Com2
        bsf                PT_Com2En,P_Com2
        return       
       
Set_Com3:
        bcf                PT_Com3,P_Com3
        bsf                PT_Com3En,P_Com3
        return       
       
Set_Com4:
        bcf                PT_Com4,P_Com4
        bsf                PT_Com4En,P_Com4
        return
       
LcdData_Tab0:
        andlw        0fh
        addpcw
        retlw        01111110B        ;0
        retlw        00110000B        ;1
        retlw        01101101B        ;2
        retlw        01111001B        ;3
        retlw        00110011B        ;4
        retlw        01011011B        ;5
        retlw        01011111B        ;6
        retlw        01110000B        ;7
        retlw        01111111B        ;8
        retlw        01111011B        ;9
        retlw        01111011B        ;9
        retlw        01111011B        ;9
        retlw        01111011B        ;9
        retlw        01111011B        ;9
        retlw        01111011B        ;9
        retlw        01111011B        ;9
回復

使用道具 舉報

ID:604162 發表于 2019-8-28 14:08 | 顯示全部樓層
天涯落客 發表于 2019-8-28 10:37
LcdDrive_init:
        movlw        00001011b
        andwf        pt1en,1

這匯編看得一頭霧水
回復

使用道具 舉報

ID:604162 發表于 2019-8-28 15:28 | 顯示全部樓層
Mgc666 發表于 2019-8-28 14:08
這匯編看得一頭霧水

有沒有C的的提示?
回復

使用道具 舉報

ID:612920 發表于 2020-3-17 15:34 | 顯示全部樓層
可以咨詢數碼管的生產廠家 深圳市新亮點電子有限公司,有完整的驅動方案
回復

使用道具 舉報

ID:612920 發表于 2020-3-17 15:34 | 顯示全部樓層
可以聯系數碼管的驅動廠家 深圳市新亮點電子有限公司,他們有完整的驅動方案
回復

使用道具 舉報

ID:733801 發表于 2020-4-20 21:52 | 顯示全部樓層
C:\Users\sj\Desktop\asd.png
u16 w1Tab[2]={0x0000,0x0480};
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x0833,0x0837,0x0910,0x0937,0x0933};
u16 w3Tab[10]={0xf240,0x5000,0xb208,0xd208,0x5048,0xc248,0xe248,0xd000,0xf248,0xd248};
u8  ywTab[16]={1,2,3,0,2,3,0,1,3,0,1,2,0,1,2,3};
u8  stp=0;


void display(u8 dt)
{
  u8 odt;
        u16 dm = w1Tab[dt/100]|w2Tab[(dt%100)/10]|w3Tab[dt%10];
        if(stp>=16)stp=0;
        odt = 0x1f & (~((((dm&(0x0001<<(15-stp)))==(0x0001<<(15-stp)))?1:0)<<ywTab[stp]));                
  GPIOA->BSRR =((((u32)(~odt))<<16)|(u32)(odt));
        stp++;
}
回復

使用道具 舉報

ID:733801 發表于 2020-4-20 21:58 | 顯示全部樓層
來個精簡版的
u16 w1Tab[2]={0x0000,0x0480};
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x0833,0x0837,0x0910,0x0937,0x0933};
u16 w3Tab[10]={0xf240,0x5000,0xb208,0xd208,0x5048,0xc248,0xe248,0xd000,0xf248,0xd248};
u8  ywTab[16]={1,2,3,0,2,3,0,1,3,0,1,2,0,1,2,3};
u8  stp=0;


void display(u8 dt)
{
  u8 odt;
  u16 dm = w1Tab[dt/100]|w2Tab[(dt%100)/10]|w3Tab[dt%10];
  if(stp>=16)stp=0;
  odt = 0x1f & (~((((dm&(0x0001<<(15-stp)))==(0x0001<<(15-stp)))?1:0)<<ywTab[stp]));                
  GPIOA->BSRR =((((u32)(~odt))<<16)|(u32)(odt));
  stp++;
}

asd.png
回復

使用道具 舉報

ID:311661 發表于 2020-4-22 14:42 | 顯示全部樓層
jacks888 發表于 2020-4-20 21:58
來個精簡版的
u16 w1Tab[2]={0x0000,0x0480};
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x083 ...

很不錯的分享,慢慢研究一下
回復

使用道具 舉報

ID:261473 發表于 2020-10-30 17:15 | 顯示全部樓層
jacks888 發表于 2020-4-20 21:58
來個精簡版的
u16 w1Tab[2]={0x0000,0x0480};
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x083 ...

u16 w1Tab[2]={0x0000,0x0480};
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x0833,0x0837,0x0910,0x0937,0x0933};
u16 w3Tab[10]={0xf240,0x5000,0xb208,0xd208,0x5048,0xc248,0xe248,0xd000,0xf248,0xd248};
u8  ywTab[16]={1,2,3,0,2,3,0,1,3,0,1,2,0,1,2,3};
解釋一下
回復

使用道具 舉報

ID:92781 發表于 2024-7-2 16:02 | 顯示全部樓層
wangshouyun001 發表于 2020-10-30 17:15
u16 w1Tab[2]={0x0000,0x0480};
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x0833,0x0837,0x0 ...

u16 w1Tab[2]={0x0000,0x0480};   //第一位0,1
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x0833,0x0837,0x0910,0x0937,0x0933};//第二位0-9
u16 w3Tab[10]={0xf240,0x5000,0xb208,0xd208,0x5048,0xc248,0xe248,0xd000,0xf248,0xd248}; //第三位0-9
u8  ywTab[16]={1,2,3,0,2,3,0,1,3,0,1,2,0,1,2,3};//移位
回復

使用道具 舉報

ID:1125252 發表于 2024-7-17 18:56 | 顯示全部樓層
jjy1039 發表于 2024-7-2 16:02
u16 w1Tab[2]={0x0000,0x0480};   //第一位0,1
u16 w2Tab[10]={0x0936,0x0110,0x0925,0x0931,0x0113,0x0 ...

沒用過動態的,請教下,如果我用的IO腳不同的話,這個真值表需要變更嗎?
回復

使用道具 舉報

ID:811253 發表于 2024-7-18 22:45 | 顯示全部樓層
這個跟普通的4*8一樣的驅動原理,4*8就是一次點亮一個8,而這種一次只是點亮一筆,即一個LED,利用快速掃瞄顯出一個個8字。只要掃完一周的頻率大于60HZ基本人眼就看不到閃爍了。
回復

使用道具 舉報

ID:811253 發表于 2024-7-18 22:47 | 顯示全部樓層
每次只能有兩個I0做輸出,一個輸出高,一個輸出低,另外的不用全做高阻輸入狀態,這樣其它不相關的LED就會不被點亮。
回復

使用道具 舉報

ID:621063 發表于 2024-7-20 08:28 | 顯示全部樓層
這個對單片機有要求。普通數碼管,是一位一位的掃描;這個是一段一段的掃描,且只能有一段,其它腳要為高阻態。
回復

使用道具 舉報

ID:1034262 發表于 2024-7-20 11:08 | 顯示全部樓層
Mgc666 發表于 2019-8-27 18:44
想法是這樣,但是點亮數字的時候會被干擾到

大量的移動電源使用,不會有問題的,看我下面的驅動描述。
回復

使用道具 舉報

ID:1034262 發表于 2024-7-20 11:09 | 顯示全部樓層
Mgc666 發表于 2019-8-27 18:52
就像要點亮3A 3B時候就出現問題

大量的移動電源使用,不會有問題的,看我下面的驅動描述。
回復

使用道具 舉報

ID:1034262 發表于 2024-7-20 11:17 | 顯示全部樓層
本帖最后由 coody_sz 于 2024-7-21 21:04 編輯

說顯示有問題的朋友,可能沒有編程驅動過。
大量的移動電源使用,不會有問題的。
樓主的這個比較好驅動,最簡單的是5腳輸出高電平,1~4腳輸出低就能控制4個。
5腳輸出高阻或低電平,則1~4腳輪流有一個輸出高,其余3個要顯示就輸出低,不顯示就高阻。
其實這是分時驅動共陰、共陽的接法,比如8個SEGMENT和8個COMMENT就可以驅動16個數碼管,即16個IO驅動16個數碼管,很常用的接法,一些MCU直接支持,比如STC8H4K64TL的24個IO就可以驅動32個數碼管256段。
早幾天我剛好買了一些無線話筒的顯示模塊,7個IO顯示40段(最多可以42段)。
無線話筒LED顯示屏-1.png

回復

使用道具 舉報

ID:43600 發表于 2024-7-21 19:14 | 顯示全部樓層
很多情況下,一次點亮數個LED,只能專用,用途受限。
回復

使用道具 舉報

ID:92781 發表于 2024-9-19 11:14 | 顯示全部樓層
1481509156 發表于 2024-7-17 18:56
沒用過動態的,請教下,如果我用的IO腳不同的話,這個真值表需要變更嗎?

需要,樓主用的GPIOA這一組,是按組使用io的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线毛片网| 欧美日韩在线免费观看 | 精品国产女人 | 99精品在线观看 | 日本一本在线 | 亚洲精品www久久久 www.蜜桃av | 久久久久久av | 日日干日日操 | 亚洲精品一区二区三区蜜桃久 | 欧美国产免费 | 天堂成人国产精品一区 | 日韩高清黄色 | 久久精品亚洲精品国产欧美 | 天天天久久久 | 日本欧美国产在线观看 | 亚洲香蕉| 国产精品久久a | 久久这里有精品 | 欧美日韩成人在线观看 | 国产精品自拍视频 | 毛片入口 | 一级免费在线视频 | 国产精品久久久久久久7电影 | 亚洲一区中文字幕在线观看 | 精品国产欧美一区二区三区不卡 | av中文字幕在线观看 | www成人免费 | 久久亚洲国产精品日日av夜夜 | 日韩中文在线视频 | 精品亚洲一区二区三区 | 精品国产青草久久久久福利 | 午夜精品一区二区三区在线观看 | 国产精品久久久久aaaa樱花 | 美女一区 | 国产丝袜一区二区三区免费视频 | 在线观看国产网站 | 中文字幕亚洲一区二区三区 | 日韩一级 | 天堂一区二区三区 | 91av小视频 | 日日夜夜天天 |