前幾年制作過一個“直連”方式的數(shù)碼管測試器,最近突發(fā)奇想,想用單片機再次制作一個數(shù)碼管測試器,這個測試器要充分利用單片機功能,用多種方式對數(shù)碼管進行測試,比如,先逐段點亮,然后再從0~9分別顯示,周而復始。
用“Proteus 8”設計了電路原理圖(PNP管驅(qū)動共陰數(shù)碼管)。
00 電路原理圖(共陰 PNP驅(qū)動).jpg (500.64 KB, 下載次數(shù): 48)
下載附件
2023-12-12 21:47 上傳
考慮到庫存有大量的拆機P-MOS管(型號為:A7SHB),所以,又設計了采用P-MOS管驅(qū)動的電路。
01 電路原理圖(共陰 P-MOS驅(qū)動).jpg (495.49 KB, 下載次數(shù): 34)
下載附件
2023-12-12 21:47 上傳
NPN管驅(qū)動共陽LED數(shù)碼管電路原理圖:
02 電路原理圖(共陽 NPN驅(qū)動).jpg (489.03 KB, 下載次數(shù): 34)
下載附件
2023-12-12 21:47 上傳
經(jīng)實驗,共陽數(shù)碼管不需要三極管放大,直接通過I/O口驅(qū)動即可。由于單片機有多余的I/O口,所以共陰、共陽數(shù)碼管合并在一起,共陰由P2口驅(qū)動,共陽由P3口驅(qū)動。
03 完整電路.jpg (531.02 KB, 下載次數(shù): 38)
下載附件
2023-12-12 21:47 上傳
單片機采用“STC15F2K08S2”,該單片機有內(nèi)部RC振蕩器,可以省略外部晶振。
用面包板搭電路,運行正常。
04 面包板實驗.jpg (343.31 KB, 下載次數(shù): 40)
下載附件
2023-12-12 21:47 上傳
05 面包板實驗.jpg (300.67 KB, 下載次數(shù): 34)
下載附件
2023-12-12 21:47 上傳
用“立創(chuàng)”的EDA設計了PCB板:
08 PCB設計(紅 正).jpg (218.65 KB, 下載次數(shù): 39)
下載附件
2023-12-12 21:47 上傳
焊接完成后的成品:
10 成品.jpg (205.26 KB, 下載次數(shù): 38)
下載附件
2023-12-12 21:47 上傳
局部展示:
IMG_20230804_230146.jpg (1.13 MB, 下載次數(shù): 32)
下載附件
2023-12-12 21:47 上傳
第一次焊接0402的電阻,這可能是我能焊接的最小電阻了。
LED數(shù)碼管測試實例(0.56寸共陰數(shù)碼管)。
IMG_20230804_233554.jpg (168.61 KB, 下載次數(shù): 41)
下載附件
2023-12-12 21:47 上傳
LED數(shù)碼管測試實例(1寸共陽數(shù)碼管)。
IMG_20230804_233640.jpg (172.89 KB, 下載次數(shù): 42)
下載附件
2023-12-12 21:47 上傳
代碼:
- #include <STC15.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- void Delay1ms( uint k );
- uchar da = 0xFE; //11111110
- uchar code table[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共陽段碼
- void main()
- {
- while(1)
- {
- uchar i = 0;
- for( i=0; i<8; i++ ) //依次顯示各段:a~h
- {
- P2 = da; //共陰
- P3 = da; //共陽 Delay1ms(500);
- da = _crol_( da,1 );
- }
-
- for( i=0; i<10; i++ ) //依次顯示數(shù)字:0~9
- {
- P2 = table[i];
- P3 = table[i];
- Delay1ms(500);
- }
- }
- }
- void Delay1ms( uint n ) <a>//@12.000MHz</a>
- {
- uint k;
- for( k=0; k<n; k++ )
- {
- unsigned char data i, j;
- i = 12;
- j = 169;
- do
- {
- while (--j);
- } while (--i);
- }
- }
復制代碼
|