|
前幾年制作過(guò)一個(gè)“直連”方式的數(shù)碼管測(cè)試器,最近突發(fā)奇想,想用單片機(jī)再次制作一個(gè)數(shù)碼管測(cè)試器,這個(gè)測(cè)試器要充分利用單片機(jī)功能,用多種方式對(duì)數(shù)碼管進(jìn)行測(cè)試,比如,先逐段點(diǎn)亮,然后再?gòu)?~9分別顯示,周而復(fù)始。
用“Proteus 8”設(shè)計(jì)了電路原理圖(PNP管驅(qū)動(dòng)共陰數(shù)碼管)。
00 電路原理圖(共陰 PNP驅(qū)動(dòng)).jpg (500.64 KB, 下載次數(shù): 48)
下載附件
2023-12-12 21:47 上傳
考慮到庫(kù)存有大量的拆機(jī)P-MOS管(型號(hào)為:A7SHB),所以,又設(shè)計(jì)了采用P-MOS管驅(qū)動(dòng)的電路。
01 電路原理圖(共陰 P-MOS驅(qū)動(dòng)).jpg (495.49 KB, 下載次數(shù): 34)
下載附件
2023-12-12 21:47 上傳
NPN管驅(qū)動(dòng)共陽(yáng)LED數(shù)碼管電路原理圖:
02 電路原理圖(共陽(yáng) NPN驅(qū)動(dòng)).jpg (489.03 KB, 下載次數(shù): 34)
下載附件
2023-12-12 21:47 上傳
經(jīng)實(shí)驗(yàn),共陽(yáng)數(shù)碼管不需要三極管放大,直接通過(guò)I/O口驅(qū)動(dòng)即可。由于單片機(jī)有多余的I/O口,所以共陰、共陽(yáng)數(shù)碼管合并在一起,共陰由P2口驅(qū)動(dòng),共陽(yáng)由P3口驅(qū)動(dòng)。
03 完整電路.jpg (531.02 KB, 下載次數(shù): 38)
下載附件
2023-12-12 21:47 上傳
單片機(jī)采用“STC15F2K08S2”,該單片機(jī)有內(nèi)部RC振蕩器,可以省略外部晶振。
用面包板搭電路,運(yùn)行正常。
04 面包板實(shí)驗(yàn).jpg (343.31 KB, 下載次數(shù): 40)
下載附件
2023-12-12 21:47 上傳
05 面包板實(shí)驗(yàn).jpg (300.67 KB, 下載次數(shù): 34)
下載附件
2023-12-12 21:47 上傳
用“立創(chuàng)”的EDA設(shè)計(jì)了PCB板:
08 PCB設(shè)計(jì)(紅 正).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ù)碼管測(cè)試實(shí)例(0.56寸共陰數(shù)碼管)。
IMG_20230804_233554.jpg (168.61 KB, 下載次數(shù): 41)
下載附件
2023-12-12 21:47 上傳
LED數(shù)碼管測(cè)試實(shí)例(1寸共陽(yáng)數(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}; //共陽(yáng)段碼
- void main()
- {
- while(1)
- {
- uchar i = 0;
- for( i=0; i<8; i++ ) //依次顯示各段:a~h
- {
- P2 = da; //共陰
- P3 = da; //共陽(yáng) 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);
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|