|
|
74HC595顯示多個數(shù)碼管- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit ClOCK = P2^0; //HC595第11腳,串行時鐘輸入端
- sbit DATA = P2^1; //HC595第14腳,串行數(shù)據(jù)輸入端
- sbit LATCH = P2^2; //HC595第12腳,輸出鎖存脈沖輸入端
- //定義共陰數(shù)碼管段碼0-9
- uchar code segment[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};
- //串行輸出一個字節(jié)
- void HC595(uchar word)
- {
- uchar i;
- for (i=8;i>0;i--)
- {
- ClOCK=0;
- DATA=0x80&word;
- word=_crol_(word,1);
- ClOCK=1;
- _nop_();
- }
- }
- void display(uchar S1, uchar S2, uchar S3, uchar S4, uchar S5, uchar S6)
- {
- HC595(segment[S6]);
- HC595(segment[S5]);
- HC595(segment[S4]);
- HC595(segment[S3]);
- HC595(segment[S2]);
- HC595(segment[S1]);
- LATCH=1;
- _nop_();
- LATCH=0;
- }
- void main()
- {
- LATCH = 0;
- while(1)
- display(2, 0, 1, 3, 1, 4);
- }
復(fù)制代碼
|
|