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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

單片機(jī)+4位數(shù)碼管怎么驅(qū)動(dòng)合理?

查看數(shù): 4196 | 評(píng)論數(shù): 35 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2022-10-2 17:54

正文摘要:

各位好:4位數(shù)碼管怎么驅(qū)動(dòng)合理呢?我是按照普中A2開(kāi)發(fā)板原理圖焊了一個(gè)電路,是可以運(yùn)行的。但他是用了2個(gè)4位共陰數(shù)碼管,用了74H245八線雙向收發(fā)器接P0口,74HC138接P2.2,P2.3,P2.4,實(shí)現(xiàn)3個(gè)IO控制8位數(shù)碼管陽(yáng)極的 ...

回復(fù)

ID:1044091 發(fā)表于 2022-10-25 08:48
188610329 發(fā)表于 2022-10-25 01:36
P_SW2 |= 0x80;    //這個(gè)最好放在  void main() 的第一句,  開(kāi)了就不用關(guān)了。
P3PU =0xc0;

感謝大師指點(diǎn)!已經(jīng)完全正常了。
ID:624769 發(fā)表于 2022-10-25 01:36
P_SW2 |= 0x80;    //這個(gè)最好放在  void main() 的第一句,  開(kāi)了就不用關(guān)了。
P3PU =0xc0;

ID:624769 發(fā)表于 2022-10-24 15:39
ningsy 發(fā)表于 2022-10-24 11:21
多謝高手指點(diǎn)!經(jīng)測(cè)試完全可行。手頭沒(méi)有4.7K電阻,只有10K的。設(shè)為準(zhǔn)雙向口模式,加一個(gè)仍舊黑屏,并兩 ...

STC8系列  有個(gè) PnUP 寄存器  可以開(kāi)啟 內(nèi)部的 4.7K 上拉,你不需要外接上拉電阻, 只要 開(kāi)漏模式 + 內(nèi)部上拉,就可以驅(qū)動(dòng) TM1650,
有些知識(shí),隨著使用的單片機(jī)進(jìn)化,要跟著進(jìn)化。
進(jìn)入STC8 系列時(shí)代,如果不是對(duì)功耗有特別的需要,盡可能的用   開(kāi)漏+內(nèi)部上拉 取代  準(zhǔn)雙向模式。
ID:1044091 發(fā)表于 2022-10-24 11:21
lkc8210 發(fā)表于 2022-10-24 09:48
準(zhǔn)雙向模式的拉電流只有270~150uA
拉不動(dòng)1650,要加上拉電阻(通常是4.7k)

多謝高手指點(diǎn)!經(jīng)測(cè)試完全可行。手頭沒(méi)有4.7K電阻,只有10K的。設(shè)為準(zhǔn)雙向口模式,加一個(gè)仍舊黑屏,并兩個(gè)點(diǎn)亮,電壓2.2V;并三個(gè)電壓2.49V。單片機(jī)電流也降了幾個(gè)mA。
那為何STC8G1K08 系列準(zhǔn)雙向口模式可以點(diǎn)亮呢?難道是由于制造誤差,處在臨界值上了?
ID:161164 發(fā)表于 2022-10-24 09:48
ningsy 發(fā)表于 2022-10-24 09:23
請(qǐng)教:還是TM1650驅(qū)動(dòng)的問(wèn)題。

為什么用STC8H系列(STC8H1K08,STC8H8K64U)驅(qū)動(dòng)TM1650 I/O口必須要開(kāi)強(qiáng) ...

準(zhǔn)雙向模式的拉電流只有270~150uA
拉不動(dòng)1650,要加上拉電阻(通常是4.7k)



ID:1044091 發(fā)表于 2022-10-9 15:47
188610329 發(fā)表于 2022-10-9 11:38
tm1650的代碼其實(shí)很少,你覺(jué)得多,因?yàn)槟阌玫?9c52,就好比如果你沒(méi)有硬件串口,要軟件模擬串口,你也會(huì) ...

多謝大佬指導(dǎo)!您說(shuō)的這些我還沒(méi)學(xué)到,有點(diǎn)暈我一定去找資料看一下。感覺(jué)這個(gè)小項(xiàng)目越做要學(xué)的東西越多啊。我已經(jīng)入了一塊STC8,下一步準(zhǔn)備把代碼搬過(guò)去。
ID:624769 發(fā)表于 2022-10-9 11:38
ningsy 發(fā)表于 2022-10-8 14:38
有道理,1650的代碼實(shí)在有些多,不好理解。

tm1650的代碼其實(shí)很少,你覺(jué)得多,因?yàn)槟阌玫?9c52,就好比如果你沒(méi)有硬件串口,要軟件模擬串口,你也會(huì)覺(jué)得代碼繁瑣,其實(shí)說(shuō)白了,大多網(wǎng)上傳的所謂的“通用庫(kù)”大多都是不利用硬件資源的,就好比ds1302,網(wǎng)上你能找到的范例都是用io直接驅(qū)動(dòng)的,但是,如果用半雙工spi直接驅(qū)動(dòng),或者串口直接驅(qū)動(dòng),代碼就會(huì)簡(jiǎn)單很多。tm1650也一樣,硬件驅(qū)動(dòng),代碼會(huì)少很多。
ID:867081 發(fā)表于 2022-10-8 15:10
IO可以直接控制的,但是四位數(shù)碼管驅(qū)動(dòng)代碼還是比較冗長(zhǎng)的,所以更換一下硬件選擇,這樣代碼也可以變得更加簡(jiǎn)潔
ID:1044091 發(fā)表于 2022-10-8 14:38
Y_G_G 發(fā)表于 2022-10-8 10:10
如果條件允許,最好是IO直接控制,有強(qiáng)推挽模式的就串聯(lián),沒(méi)有這個(gè)模式的就上拉
在實(shí)際項(xiàng)目中,是完全可以用IO ...

有道理,1650的代碼實(shí)在有些多,不好理解。
ID:401564 發(fā)表于 2022-10-8 10:10
如果條件允許,最好是IO直接控制,有強(qiáng)推挽模式的就串聯(lián),沒(méi)有這個(gè)模式的就上拉
在實(shí)際項(xiàng)目中,是完全可以用IO直接驅(qū)動(dòng)的
245和138都是多余的
這是最優(yōu)先選擇的方案,首先是程序簡(jiǎn)單,對(duì)于不是很精通編程的人來(lái)說(shuō),代碼簡(jiǎn)單易懂比很多東西都重要
最怕就是出了問(wèn)題,你找半天都不知道是你自己的代碼有問(wèn)題還是別人的驅(qū)動(dòng)代碼有問(wèn)題
但TM1650之類的外圍你是肯定要學(xué)會(huì)使用的,畢竟,TM1650的優(yōu)點(diǎn)就擺在那,當(dāng)你的PCB是主控和顯示是分離的,它的好處就顯現(xiàn)了,IO直接驅(qū)動(dòng)要12根線.....
ID:685684 發(fā)表于 2022-10-7 10:02
TM1650確實(shí)好用,又便宜又省引腳。IIC驅(qū)動(dòng)到處都有例程能用,自己刷新還不用占用程序時(shí)間
ID:1044091 發(fā)表于 2022-10-6 23:03
188610329 發(fā)表于 2022-10-6 15:58
確實(shí),IO空著不用也是浪費(fèi), 但是,提議 TM1650 是基于,你打算用 HC24+ HC138 的前提下,建議你用 TM165 ...

感謝大佬指導(dǎo)!我已經(jīng)準(zhǔn)備使用TM1650了,只是這兩天商家放假,發(fā)貨很慢,還沒(méi)收到。

至于STC32,我今天實(shí)在忍不住下單買了一個(gè),心想早晚要用上的吧(以后接12864或TFT屏)。如果看到您的建議,我可能會(huì)同時(shí)入一個(gè)STC8,不過(guò)沒(méi)關(guān)系,我再買一次就是了。
ID:624769 發(fā)表于 2022-10-6 15:58
ningsy 發(fā)表于 2022-10-2 21:07
感謝指點(diǎn),我這就去查資料。
我本來(lái)想89C52的IO這么多,用不上也得閑著,現(xiàn)在看來(lái)可以再找款I(lǐng)O少的MCU了 ...

確實(shí),IO空著不用也是浪費(fèi), 但是,提議 TM1650 是基于,你打算用 HC24+ HC138 的前提下,建議你用 TM1650  更經(jīng)濟(jì),以及更方便。 如果要 IO 直接驅(qū)動(dòng), 自然是可以的,但是動(dòng)態(tài)掃描這個(gè)工作,負(fù)擔(dān)會(huì)加在 MCU上,同時(shí),還牽涉到 限流電阻等等的額外電路。這就要考慮“必要性”的問(wèn)題了。畢竟成本來(lái)講 TM1650 實(shí)在是太便宜了……,便宜到,我覺(jué)得 限流電阻太貴了。

最后,看你打算用 STC32,  雖然STC32本身不錯(cuò),但是,基于你 單片機(jī)基礎(chǔ)還薄弱,不建議 步子一下子邁那么大, 先STC8 系列 過(guò)渡一下,可能會(huì)更好。
以上,純屬個(gè)人建議。
ID:272119 發(fā)表于 2022-10-6 08:28
ningsy 發(fā)表于 2022-10-4 11:40
您說(shuō)的有道理,我用的89C52內(nèi)存8K已經(jīng)快滿了!還有很多功能沒(méi)有加。這幾天在重新選MCU,想一步到位換成ST ...

完全可行啊,燒錄口后期當(dāng)通訊口用,隨時(shí)想升級(jí)就升級(jí). STC32了解過(guò)還沒(méi)有買回來(lái)體驗(yàn),后期好的話共享下體驗(yàn),謝謝!
ID:1044091 發(fā)表于 2022-10-4 11:40
qq603599910 發(fā)表于 2022-10-3 20:37
看MCU還要什么功能,用多少PIN,基本都是STC15或者STC8系列,89系列已經(jīng)很老很少用在產(chǎn)品上了.關(guān)于顯示驅(qū)動(dòng) ...

您說(shuō)的有道理,我用的89C52內(nèi)存8K已經(jīng)快滿了!還有很多功能沒(méi)有加。這幾天在重新選MCU,想一步到位換成STC32G12K128 DIP40,價(jià)格便宜量又足。

再請(qǐng)教一下:我這是個(gè)蠕動(dòng)泵控制器,原理也不復(fù)雜,準(zhǔn)備做基礎(chǔ)版(數(shù)碼管顯示),高級(jí)版(12864及TFT顯示),其實(shí)功能一樣的,就是操作體驗(yàn)不同,顏值不一樣。想做成向下兼容的,用同一塊板子同一款U同時(shí)留出數(shù)碼管和顯示屏接口,燒寫不同的軟件,能否可行?

還有我感覺(jué)基礎(chǔ)版用STC32G12K128+數(shù)碼管,U的性能可能過(guò)剩了,有啥影響么?
ID:1044091 發(fā)表于 2022-10-4 11:17
mengsiu 發(fā)表于 2022-10-3 15:18
TM1650驅(qū)動(dòng),使用51單片機(jī)。
注意:TM1650不是IIC器件!!!不能接在IIC線路上。

非常感謝您的驅(qū)動(dòng)代碼!器件到了試一下
ID:1046594 發(fā)表于 2022-10-4 10:28
使用1650 IIC通信
ID:272119 發(fā)表于 2022-10-3 20:37
ningsy 發(fā)表于 2022-10-2 21:07
感謝指點(diǎn),我這就去查資料。
我本來(lái)想89C52的IO這么多,用不上也得閑著,現(xiàn)在看來(lái)可以再找款I(lǐng)O少的MCU了 ...

看MCU還要什么功能,用多少PIN,基本都是STC15或者STC8系列,89系列已經(jīng)很老很少用在產(chǎn)品上了.關(guān)于顯示驅(qū)動(dòng)我也偏向于用TM1650專業(yè)芯片,我用TM1650還幾年沒(méi)有給我惹過(guò)禍,升級(jí)固件和換硬件都不用管那一塊,根本不用考慮顯示時(shí)基和刷新率.
ID:16255 發(fā)表于 2022-10-3 15:18
TM1650驅(qū)動(dòng),使用51單片機(jī)。
  1. /*--------------------------------------------------------------------------
  2. TM1650.H
  3. 四位數(shù)碼管驅(qū)動(dòng) TM1650 讀寫程序
  4. --------------------------------------------------------------------------*/
  5. #ifndef __TM1650_H__
  6. #define __TM1650_H__

  7. sbit CLK = P3^7;
  8. sbit DIO = P3^6;

  9. void Set1650(uchar add,uchar dat);
  10. uchar Scan_Key(void);

  11. uchar BL = 1;          //亮度等級(jí)
  12. uchar CODE[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0~9顯示代碼
  13.                                 // 0    1    2    3    4    5    6    7    8    9

  14. void Init1650(){
  15.         Set1650(0x48,(BL*16+0x01));//設(shè)定亮度,開(kāi)顯示八段顯示方式,后一個(gè)字節(jié)中高位用于亮度,低位用于七段或八段顯示方式和開(kāi)關(guān)顯
  16.                                                                 //如:0x71為七級(jí)亮度,八段顯示方式,開(kāi)顯示;0x79為為七級(jí)亮度,七段顯示方式,開(kāi)顯示
  17. }

  18. void Delay_us(uint i){ //us延時(shí)
  19.         for(;i>0;i--){
  20.                 _nop_();
  21.                 _nop_();
  22.                 _nop_();
  23.                 _nop_();
  24.                 _nop_();
  25.         }
  26. }

  27. void Start1650(void){//開(kāi)始信號(hào)
  28.         CLK = 1;
  29.         DIO = 1;
  30.         Delay_us(5);
  31.         DIO = 0;
  32. }

  33. void Ask1650(void){ //ACK信號(hào)
  34.         uchar timeout = 1;
  35.         CLK = 1;
  36.         Delay_us(5);
  37.         CLK = 0;
  38.         while((DIO)&&(timeout<=100)){
  39.                 timeout++;
  40.         }
  41.         Delay_us(5);
  42.         CLK = 0;
  43. }

  44. void Stop1650(void){ //停止信號(hào)
  45.         CLK = 1;
  46.         DIO = 0;
  47.         Delay_us(5);
  48.         DIO = 1;
  49. }

  50. void WrByte1650(uchar oneByte){//寫一個(gè)字節(jié)高位在前,低位在后
  51.         uchar i;
  52.         CLK = 0;
  53.         Delay_us(1);
  54.         for(i=0;i<8;i++){
  55.                 oneByte = oneByte<<1;
  56.                 DIO = CY;
  57.                 CLK = 0;
  58.                 Delay_us(5);
  59.                 CLK = 1;
  60.                 Delay_us(5);
  61.                 CLK = 0;
  62.         }
  63. }

  64. uchar Scan_Key(void){  // 按鍵掃描
  65.         uchar i;
  66.         uchar rekey;
  67.         Start1650();
  68.         WrByte1650(0x49);//讀按鍵命令
  69.         Ask1650();
  70.         //DIO = 1;
  71.         for(i=0;i<8;i++){
  72.                 CLK = 1;
  73.                 rekey = rekey<<1;
  74.                 if(DIO){
  75.                 rekey++;
  76.                 }
  77.                 Delay_us(5);
  78.                 CLK = 0;
  79.         }
  80.         Ask1650();
  81.         Stop1650();
  82.         return(rekey);
  83. }

  84. void Set1650(uchar add,uchar dat){ //數(shù)碼管顯示
  85.                                                                 //寫顯存必須從高地址開(kāi)始寫
  86.         Start1650();
  87.         WrByte1650(add); //第一個(gè)顯存地址
  88.         Ask1650();
  89.         WrByte1650(dat);
  90.         Ask1650();
  91.         Stop1650();
  92. }

  93. #endif
復(fù)制代碼
注意:TM1650不是IIC器件!!!不能接在IIC線路上
ID:88256 發(fā)表于 2022-10-3 12:39
ningsy 發(fā)表于 2022-10-3 11:10
綜合您和以上老師的建議,我決定采用TM1650的方案驅(qū)動(dòng)。還有一種AIP650應(yīng)該是同一種IC,我在論壇里已經(jīng)找 ...

TM1650用的地方很多,很可能你拆一個(gè)電磁爐的控制板就是用的TM1650
ID:1044091 發(fā)表于 2022-10-3 11:02
lwq1947 發(fā)表于 2022-10-3 07:00
最簡(jiǎn)單低成本就用公陰4位數(shù)碼管和一只1K排阻就能驅(qū)動(dòng),因?yàn)楝F(xiàn)在的數(shù)碼管都是高亮的2,3毫安就很亮了。

這個(gè)應(yīng)該要整體考慮程序、單片機(jī)、數(shù)碼管的選型匹配吧!我這方面的功力還不夠,客戶端的環(huán)境和用戶習(xí)慣千差萬(wàn)別,如果一旦客戶抱怨(我能想到的:比如亮度不夠,抗干擾不行等等)就很麻煩了。
ID:1044091 發(fā)表于 2022-10-3 10:26
npn 發(fā)表于 2022-10-2 21:52
IO口配置為強(qiáng)推挽即可直接驅(qū)動(dòng) (STC89、90除外)

總是看到“強(qiáng)推挽”這種用法,一直沒(méi)弄明白具體怎么用,原來(lái)是我的STC89C52不支持啊
ID:1044091 發(fā)表于 2022-10-3 10:24
xianfajushi 發(fā)表于 2022-10-2 20:53
硬件基礎(chǔ)差了點(diǎn),正確應(yīng)該查單片機(jī)IO驅(qū)動(dòng)電流,看描述未觸及問(wèn)題根本。

有道理,還沒(méi)怎么想過(guò)驅(qū)動(dòng)電流這個(gè)問(wèn)題。
ID:213173 發(fā)表于 2022-10-3 07:56
設(shè)計(jì)學(xué)習(xí)(開(kāi)發(fā))板的目的是讓初學(xué)者用有限的資源學(xué)習(xí)掌握更多的外圍硬件操控。但就某一項(xiàng)功能而言,學(xué)習(xí)板上的硬件配置未必是最佳。MCU的IO口輸出能力畢竟有限,直接驅(qū)動(dòng)數(shù)碼管等其它功耗器件有點(diǎn)不堪重負(fù),74H245、74HC138等外圍IC既可以提高驅(qū)動(dòng)力,又可以擴(kuò)展應(yīng)用范圍。仿真只要邏輯正確基本都能成功。與實(shí)際電路還是有較大差距。做實(shí)際項(xiàng)目首先要考慮安全、可靠。玩具、民用、工控及醫(yī)療電器的行業(yè)安全標(biāo)準(zhǔn)不同,設(shè)計(jì)方案選擇有所區(qū)別。高規(guī)格產(chǎn)品還要考慮冗余、抗擾、容錯(cuò)。單就怎么合理驅(qū)動(dòng)4位數(shù)碼管而言,使用專用集成電路TM1650的方案較佳,還能附加16個(gè)按鍵。當(dāng)然MCU直接驅(qū)動(dòng)數(shù)碼管,只要在設(shè)計(jì)、選材和軟件上用點(diǎn)心也完全可能。
ID:997011 發(fā)表于 2022-10-3 07:00
ningsy 發(fā)表于 2022-10-2 21:07
感謝指點(diǎn),我這就去查資料。
我本來(lái)想89C52的IO這么多,用不上也得閑著,現(xiàn)在看來(lái)可以再找款I(lǐng)O少的MCU了 ...

最簡(jiǎn)單低成本就用公陰4位數(shù)碼管和一只1K排阻就能驅(qū)動(dòng),因?yàn)楝F(xiàn)在的數(shù)碼管都是高亮的2,3毫安就很亮了。
ID:57657 發(fā)表于 2022-10-2 21:52
IO口配置為強(qiáng)推挽即可直接驅(qū)動(dòng) (STC89、90除外)
ID:88256 發(fā)表于 2022-10-2 21:23
188610329 發(fā)表于 2022-10-2 18:21
用tm1650吧,兩個(gè)io就可以了。限流電阻都省了。

是啊,還帶按鍵處理功能,還能調(diào)亮度的
ID:1044091 發(fā)表于 2022-10-2 21:07
188610329 發(fā)表于 2022-10-2 18:21
用tm1650吧,兩個(gè)io就可以了。限流電阻都省了。

感謝指點(diǎn),我這就去查資料。
我本來(lái)想89C52的IO這么多,用不上也得閑著,現(xiàn)在看來(lái)可以再找款I(lǐng)O少的MCU了。
ID:332444 發(fā)表于 2022-10-2 20:53
硬件基礎(chǔ)差了點(diǎn),正確應(yīng)該查單片機(jī)IO驅(qū)動(dòng)電流,看描述未觸及問(wèn)題根本。
ID:624769 發(fā)表于 2022-10-2 18:21
用tm1650吧,兩個(gè)io就可以了。限流電阻都省了。

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 拍真实国产伦偷精品 | 亚洲综合成人网 | 69电影网 | 日韩中文一区二区三区 | 91视频入口| 中文字幕亚洲区一区二 | 91超碰caoporn97人人 | 九九九久久国产免费 | 国产视频一区二区 | 超碰欧美 | 91久久精品国产 | av国产精品 | 亚洲欧美综合精品久久成人 | 国产精品久久久久久久免费大片 | 国产精品久久av | 人人叉| 日本色综合 | 亚洲一区二区视频在线观看 | 国产精品中文字幕在线播放 | 国产91在线 | 中日 | 可以免费看的毛片 | 久久久久久成人 | 午夜视频免费在线观看 | 久久久久国产精品 | 97视频成人 | 精品蜜桃一区二区三区 | aaa在线| 国家一级黄色片 | 亚洲高清视频在线 | 国产一级片免费视频 | 亚洲视频一区 | 久久伊人一区 | 美女日批免费视频 | 日韩一区二区在线观看视频 | 日本免费一区二区三区 | 青春草在线 | 免费在线观看黄色av | 久久精品色欧美aⅴ一区二区 | 国产人久久人人人人爽 | 亚洲精品黑人 | 在线免费观看a级片 |