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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5590|回復: 23
打印 上一主題 下一主題
收起左側

請問單片機+數碼管(共陰、共陽)及鎖存器怎么選用?

  [復制鏈接]
跳轉到指定樓層
樓主
ID:575020 發表于 2019-12-1 00:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學個51單片機三天打魚兩天曬網,led點燈閃爍馬馬虎虎了,流水跑馬什么的程序還沒深入研究,現在想學數碼管了,最開始百度說共陽的數碼管好操作,于是買了幾個共陽的,后來看單片機教程及成品開發板上用的共陰的,又買了幾個共陰的,同時買了幾個138和595的鎖存器,還沒搞明白,又看到有些好多案例里用573,又買了幾個573芯片,又看到一個仿真圖里用245芯片,又買了幾個245,嘗試很多方案都沒成功,請問到底哪種方案簡單,最好能有詳細點的教程。
請問單看仿真圖能看出數碼管是共陰還是共陽的么,如下2圖。





還有想問一下數碼管還沒學明白,直接學1602有難度么,個人感覺估計1602簡單些,好像沒那么多種鎖存器。
最后還想問一下128x64買哪一種比較好,我先買了備著,學到那直接就拿來用了,省的臨時買,看開發板上128x64的接口是20針的,也只能買20針的屏么,還有帶中文字庫的和不帶的么?還有看到有oled的屏有4針的和7針的,買哪一種比較好啊!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2019-12-1 09:06 | 只看該作者
用單片機驅動數碼管動態顯示的方案很多,沒有哪種更好的說法。只要單片機的資源夠用當然是外圍器件越少就越合理。使用138、595、573、245等外圍器件可以少占用或共用端口,精簡代碼、合理分配資源等等。一個完善的仿真圖是可以辨識出數碼管是共陰還是共陽。但仿真元件屬理想元件,與實際電路還是有較大差距。只要沒有邏輯錯誤,仿真基本都能成功。這也會因為只看圖不看程序而誤判數碼管是共陰還是共陽。從這兩個圖看數碼管是共陰的可能性大,因為51單片機不能提供足夠的高電平驅動電流,位碼低電平驅動才合理。
至于直接學1602有沒有難度這不好說,由簡到繁循序漸進的學習就不會覺得難。買12864帶不帶中文字庫的和你要解決的問題關聯。有中文字庫適合做菜單,無中文字庫適合做圖形。oled的屏有4針的和7針的,買哪一種比較好的問題只能說適合自己就好。
回復

使用道具 舉報

板凳
ID:235200 發表于 2019-12-1 10:10 | 只看該作者
數碼管共陰還是共陽,在電路里是可以看出的,數碼管由8個發光二極管構成,要使8個發光二極管點亮,一般要使發光二極管有足夠的電流,第一圖用共陰數碼管,245能夠提供電流,當一個數碼管的8個發光二極管都點亮時,公共端匯集了較大的電流,所以實際應用中公共端也需要加三極管或驅動電路,以防損壞CPU
245 573均是并行輸出,同時具備驅動作用,138是譯碼器,一般作為共陰數碼管的位驅動,第2圖也是共陰數碼管,仿真可以,實際應用電路不建議這樣連接
回復

使用道具 舉報

地板
ID:235200 發表于 2019-12-1 10:15 | 只看該作者
液晶1602和液晶12864的顯示原理與數碼管不同,不需要象多個數碼管一樣動態掃描顯示,只需要把數據送入液晶模塊中的顯示緩沖區,傳送數據到顯示緩沖區的方法有并行方式和串行方式,只需要弄清顯示緩沖區與顯示的對應關系,掌握顯示控制命令即可
回復

使用道具 舉報

5#
ID:245004 發表于 2019-12-1 12:38 | 只看該作者

數碼管明顯是共陰的,假如是共陽的,那么供電從何而來?單片機管腳內部是弱上拉。因此明顯為共陰。
上面電路245加在段碼前沒有必要,圖中實際電路應在245和段碼之間加限流電阻。
上面電路245加在單片機和數碼管公共端之間有必要,那么數碼管用共陽共陰都可以驅動。當然程序代碼要匹配。
1602是協議通訊,和數碼管是兩個概念,因此不能對比哪個簡單,1602應用內容也很多,簡單應用的話一般來說不復雜。
數碼管動態顯示也不需要鎖存器(245不是),看具體應用環境了。
12864一般同時支持并口和串口通訊方式,一般并口應用簡單些。帶字庫當然簡單些,一步步來。
OLED常見的有I2C通訊和SPI通訊,學習單片機都會學到,所以簡單用I2C的,SPI的也支持I2C。
綜上所述,隨便買一種就可以,都買上以后想用更方便。


回復

使用道具 舉報

6#
ID:275826 發表于 2019-12-1 13:02 | 只看該作者
單片機數碼管的原理大概是這樣的,分別對一個字節進行編碼,暫且將其叫a,b,c,d,e,f,g,h,當取不同的值時,將會得到不同的顯示,那為什么是八位呢,因為在計算機里8位剛好是一個字節,這樣就使其變的合理起來,可以把一個字節的數據送到某個寄存器里面,然后再送給數碼管,得到相應的顯示。編碼如下:
----------------------------------------------------
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
0        1        2 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
6 7 8 9 A B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
C D E F 無顯示
------------------------------------------------------
為了節約資源,又引入了2個鎖存器(74HC573),這樣就可以使用少的單片機引腳達到完全控制數碼管的目的。為什么會選擇鎖存器呢,,其實,我模電學的太菜了,里面的原理還不明白,以后有空的話,會去看看補充一下。
再說說鎖存器的功能,就是鎖存器有一個控制位,當她的高位電位不同,會有不同的效果,當是高電平的時候,導通,當是低電平的時候,就斷開了,并且保持右邊的電位狀態。所以利用這一功能,就可以達到控制數碼管的目的。
因此,可以如下示例程序:效果是點亮2個數碼管,顯示0
#include<reg52.h>
sbit wela=P2^7;
sbit dula=P2^6;
void main()
{
   wela=0;
   P0=0xc0;
   wela=1;

   dula=0;
   P0=0x06;
   dula=1;
}
回復

使用道具 舉報

7#
ID:575020 發表于 2019-12-2 00:07 | 只看該作者
還買了數碼管模塊,4位的和8位的都只有5根線,正負極和SCLK、RCLK、DIO,另一頭也是5個孔,DIO變成了QH,模塊反面有2個芯片,都是74hc595的,也不知道怎么用的。

IMG_20191201_211138.jpg (59.3 KB, 下載次數: 67)

IMG_20191201_211138.jpg

IMG_20191201_211232.jpg (72.58 KB, 下載次數: 56)

IMG_20191201_211232.jpg

IMG_20191201_211352.jpg (75.57 KB, 下載次數: 74)

IMG_20191201_211352.jpg

IMG_20191201_211529.jpg (106.82 KB, 下載次數: 74)

IMG_20191201_211529.jpg
回復

使用道具 舉報

8#
ID:96682 發表于 2019-12-2 04:02 來自觸屏版 | 只看該作者
全面了解遇到的這些器件,怎么組合不就心中有數了么,編程以現在受過高等教育的學生來說不是很難
回復

使用道具 舉報

9#
ID:470332 發表于 2019-12-2 08:40 | 只看該作者
先學好C語言,先看手冊,剩下的看例程,然后你大概就會了
回復

使用道具 舉報

10#
ID:213173 發表于 2019-12-2 09:06 | 只看該作者
singrain 發表于 2019-12-2 00:07
還買了數碼管模塊,4位的和8位的都只有5根線,正負極和SCLK、RCLK、DIO,另一頭也是5個孔,DIO變成了QH,模 ...

這數碼管模塊使用很簡單,給你一個測試程序,SCLK、RCLK、DIO分別接P1.1、P1.2、P1.0。
回復

使用道具 舉報

11#
ID:213173 發表于 2019-12-2 09:15 | 只看該作者
singrain 發表于 2019-12-2 00:07
還買了數碼管模塊,4位的和8位的都只有5根線,正負極和SCLK、RCLK、DIO,另一頭也是5個孔,DIO變成了QH,模 ...

SCLK、RCLK、DIO分別接P1.1、P1.2、P1.0。程序是按共陰數碼管寫的,如果是共陽數碼管只要把顯示程序中預留的兩條代碼替換一下即可,如果模塊的位碼和段碼與程序發送順序不一致,只要把顯示程序中兩者順序對調一下即可。
  1. #include <reg51.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit HC595_DIO   = P1^0;
  5. sbit HC595_SCLK  = P1^1;
  6. sbit HC595_RCLK  = P1^2;

  7. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,//共陰數碼管段碼0~f
  8.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  9. uchar code dis_buf[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//共陰數碼管位碼

  10. /******************1ms延時子程序(12MHz)*******************/
  11. void delayms(uint k)
  12. {
  13.         uint i,j;
  14.         for(i=k;i>0;i--)
  15.                 for(j=125;j>0;j--);
  16. }
  17. /**************** 向HC595發送一個字節函數 ******************/
  18. void Send_595(uchar dat)
  19. {               
  20.         uchar i;
  21.         for(i=0;i<8;i++)
  22.         {
  23.                 HC595_DIO=(dat&0x80)>>7;//由高位到低位賦值數據輸出端
  24.                 HC595_SCLK = 1;        //移位時鐘
  25.                 HC595_SCLK = 0;
  26.                 dat <<= 1;                        //dat左移一位
  27.         }
  28. }
  29. /**************** 數碼管顯示函數 ******************/
  30. void DisplayScan()
  31. {       
  32.         static uchar i=0;
  33.         Send_595(dis_buf[i]);//向HC595發送位碼(共陰數碼管)
  34.         Send_595(table[i]);        //向HC595發送段碼(共陰數碼管)
  35. //        Send_595(~dis_buf[i]);//向HC595發送位碼(共陽數碼管)
  36. //        Send_595(~table[i]);        //向HC595發送段碼(共陽數碼管)
  37.         HC595_RCLK = 1;                //鎖存輸出數據
  38.         HC595_RCLK = 0;
  39.         i++;
  40.         i%=8;
  41. }

  42. void main()
  43. {
  44.         HC595_SCLK  = 0;        //初始化移位時鐘端
  45.         HC595_RCLK  = 0;        //初始化鎖存輸出端
  46.         while(1)
  47.         {
  48.                 DisplayScan();        //數碼管顯示函數
  49.                 delayms(1);                //延時1ms
  50.         }
  51. }
復制代碼
回復

使用道具 舉報

12#
ID:575020 發表于 2019-12-3 21:30 | 只看該作者
wulin 發表于 2019-12-2 09:15
SCLK、RCLK、DIO分別接P1.1、P1.2、P1.0。程序是按共陰數碼管寫的,如果是共陽數碼管只要把顯示程序中預 ...

還是驗證不通過,顯示有亂碼,改成共陽的數組也不行,1.1和1.2對換也不行。
回復

使用道具 舉報

13#
ID:575020 發表于 2019-12-3 21:59 | 只看該作者
百度說595是串轉并信號用的,573是鎖存器,
個人感覺估計573簡單一些,就是開門關門,關門的時候也能維持供電斷電,還有就是不需要io口輸出電流,就是所謂的增加驅動電流把!那個595什么串行信號并行信號轉換的完全不明白啊!新手也不需要節省io口,還是先把573搞明白再說了。
回復

使用道具 舉報

14#
ID:245004 發表于 2019-12-7 14:43 | 只看該作者
singrain 發表于 2019-12-3 21:30
還是驗證不通過,顯示有亂碼,改成共陽的數組也不行,1.1和1.2對換也不行。

數碼管的“段碼”的“代碼”表格是要根據實際端口重新定義賦值的。
公共端端口排列、驅動芯片端口,都是要和實際一致的。結合芯片手冊,再看別人的代碼,才容易理解。
回復

使用道具 舉報

15#
ID:575020 發表于 2019-12-7 23:07 | 只看該作者
還是搞不懂數碼管用共陰的好還是共陽的好。
回復

使用道具 舉報

16#
ID:164602 發表于 2019-12-8 10:21 | 只看該作者
singrain 發表于 2019-12-7 23:07
還是搞不懂數碼管用共陰的好還是共陽的好。

如果用單片機直接驅動數碼管,則共陽的好。
單片機的輸出電流不大,大型的數碼管亮度不一定夠,但單片機的灌入電流要稍大一些,數碼管亮度就夠了。
如果用其它電路驅動數碼管(如用三極管、你買的套件是595等),那就無所謂了,只是改變數碼管的顯示編碼而已(其實編碼都可以不變,取反就行)。
回復

使用道具 舉報

17#
ID:245004 發表于 2019-12-8 11:46 | 只看該作者
singrain 發表于 2019-12-7 23:07
還是搞不懂數碼管用共陰的好還是共陽的好。

不能說用哪種好,有些條件下用共陽,有些條件下用共陰。
例如:51單片機動態驅動數碼管,一般選擇共陽比較方便,因為公共端可以用驅動三極管或者IC控制,段碼可以經過限流電阻用單片機管腳控制,而無需上拉(供電)電阻,符合低功耗要求;而通過鎖存器等靜態顯示的條件下,用共陰也很方便,當然也可以用共陽。
所以用哪種好是根據實際電路和供電條件等因素選擇的。
回復

使用道具 舉報

18#
ID:637591 發表于 2019-12-19 19:58 | 只看該作者
我這是573 驅動共陰數碼管  想找個程序實驗一次  在網上找的 總編譯錯誤  

51hei圖片20191219195555.jpg (581.15 KB, 下載次數: 50)

51hei圖片20191219195555.jpg
回復

使用道具 舉報

19#
ID:637591 發表于 2019-12-19 20:00 | 只看該作者
wulin 發表于 2019-12-2 09:15
SCLK、RCLK、DIO分別接P1.1、P1.2、P1.0。程序是按共陰數碼管寫的,如果是共陽數碼管只要把顯示程序中預 ...

大佬  573驅動4位共陰數碼管 的程序  有木有
回復

使用道具 舉報

20#
ID:575020 發表于 2019-12-31 23:40 | 只看該作者
2048858214 發表于 2019-12-19 19:58
我這是573 驅動共陰數碼管  想找個程序實驗一次  在網上找的 總編譯錯誤

你有電路原理圖么?
回復

使用道具 舉報

21#
ID:672205 發表于 2020-1-2 19:52 來自觸屏版 | 只看該作者
去查芯片資料
回復

使用道具 舉報

22#
ID:575020 發表于 2021-6-8 00:37 | 只看該作者

573和595還沒弄明白,又發現有TM1637和MAX7219似乎更好,(其中TM家族還有1638,1640,1650等)。也不知道該深入學習啥好了。


















回復

使用道具 舉報

23#
ID:88256 發表于 2021-6-8 09:53 | 只看該作者
學習不能“請問到底哪種方案簡單”就用哪種,而是學習的方式,單片機注重的是底層,不像Arduino,所以必須對外圍器件進行了解才能夠驅動得起來,建議樓主一步步慢慢來,對涉及的器件都去了解一下。對于數碼管模塊,關注點是采用什么芯片以及芯片與數碼管之間是怎么連接的,
樓主的開發板都沒有配外圍的嗎?我感覺樓主好像和我一樣,對顯示的特別感興趣,邏輯芯片我也收集了不少
回復

使用道具 舉報

24#
ID:401564 發表于 2021-6-8 09:58 | 只看該作者
兩年了!這帖子兩年了
工作中如果用不到這些東西,直接丟了
它們不是寶貝,也沒有收藏價值
除非是在高速電路或者低成本電路中,這些數字電路IC用處不大的,特別是用來擴展端口的,這年頭單片機40個IO以上的大把的,你要是量多,300個IO也是常有的事
對于數字電路IC,你要做的不是專門去學哪個IC型號的使用方法,74系列和CD系列加一塊估計有上千個型號,你能看得完?
你要做是學會看真值表和時序圖,這些在數據手冊中都有
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美13videosex性极品 | 干干干操操操 | 国产成人精品网站 | 国产精品区二区三区日本 | 日韩欧美在线观看一区 | 污片在线免费观看 | 亚洲区一区二区 | 精品自拍视频 | 日韩电影中文字幕 | 日韩欧美一区二区三区四区 | 亚洲高清一区二区三区 | 国产精品毛片av | 在线三级电影 | 欧美日韩国产精品一区 | 欧美视频免费在线 | 免费久 | 日韩av在线一区二区 | 成人依人 | 国产精品久久久久久久毛片 | 国产精品欧美一区二区三区 | 久久久久久久久久久久亚洲 | 亚洲精品成人免费 | 久久久999免费视频 999久久久久久久久6666 | 国产精品特级毛片一区二区三区 | 日韩免费中文字幕 | 国产成人高清在线观看 | 久久国产精品99久久久久 | 欧洲精品视频一区 | 欧美一级淫片免费视频黄 | 在线观看中文字幕一区二区 | 97免费视频在线观看 | 欧美日韩一区在线观看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 欧美日高清 | 91传媒在线播放 | av网站观看| 国产精品1区 | 久久成人在线视频 | 免费特黄视频 | 国产免费视频 | 91精品欧美久久久久久久 |