單片機學習--8*8點陣圖


聲明:1、我使用的單片機是STC89C52

   2、 使用74HC595來擴展I\O口

   3、其實點陣屏的原理很簡單,所以這里着重講74HC595芯片 串入並出的使用。


 

點陣圖原理

                                                這是常見點陣圖所看到的背面引腳部分。引腳的辨認依靠圖中下方凸起的小點辨認引腳號。

 

 

 其實點陣圖的使用與數碼管類似。都是點亮小的二極管,來達到顯示字符的功能。值的注意的是,它的顯示,也是利用了人眼視覺留存效果。


 

重點來了:74HC595的使用。(可級聯)

      對於未知芯片的使用解決辦法-------看pdf手冊

      這里我們主要看它的管腳說明、真值表、時序圖。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

從這兩張來看如何連接該元器件

看這張表可以得出如何使用該元器件

看完表我該抓住的點:1、(10腳)SLCR   低電平時,(復位)移位寄存器清零    通常將它接vcc

          2、 (11腳)SCK   上升沿有效,數據串行輸入,在移位寄存器內具體移位 Q0->Q1->Q2.......->Q7

          3、  (13腳)OE    高電平時禁止輸出  通常接地

          4、    (12腳)RCK 上升沿時,將數據Q0.....Q7並行輸出。

          5、    (14腳) SI   數據串聯輸入,級聯時,接上一個元器件的 (9腳)SQH 

          6、     (9腳)  SQH  串聯數據輸出腳

 


 

 這里附一張圖是在b站時看視頻截圖得來點陣連接圖

 

 這里還是得強調一下串行數據是怎么輸入的:

            1、單片機通過DI線依次傳入8位數據  從高位開始傳送。傳送到74HC595內的移位寄存器的低位。之后開始上移。

 1 /*點亮一個小燈*/
 2 #include <reg52.h>
 3 sbit DIO  = P3^4; //串行數據口
 4 sbit S_CLK = P3^5;//移位寄存器時鍾
 5 sbit R_CLK = P3^6;//輸出鎖存器時鍾
 6 void main()
 7 {
 8     //ROW 0x80 , COL 0xfe
 9     unsigned char i, dat;//i循環次數  dat需要發送的數據
10     dat = 0xfe;//發送列值     
11     for(i=0; i<8; i++)//循環8次
12     {
13         S_CLK = 0;//拉低移位寄存器時鍾
14         R_CLK = 0;//拉低輸出鎖存器時鍾
15         if(dat & 0x01)//發送1
16             DIO = 1;
17         else          //發送0
18             DIO = 0;
19         S_CLK = 1;//拉高移位寄存器時鍾,數據移位
20         dat >>= 1;//數據右移
21     }
22     dat = 0x80;//發送行值      剛發送的列值就被壓到第二片中的移位寄存器
23     for(i=0; i<8; i++)//循環8次
24     {
25         S_CLK = 0;//拉低移位寄存器時鍾
26         R_CLK = 0;//拉低輸出鎖存器時鍾
27         if(dat & 0x01)//發送1
28             DIO = 1;
29         else          //發送0
30             DIO = 0;
31         S_CLK = 1;//拉高移位寄存器時鍾,數據移位
32         dat >>= 1;//數據右移
33     }
34     R_CLK = 1;//拉高輸出鎖存器時鍾,並行輸出數據
35     while(1);
36 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM