該電路主要采用STC89C52芯片和ADC0804芯片來完成一個簡單的電壓表,可以對輸入在0—5V的模擬直流電壓進行測量,并通過一個4位一體的LED數碼管顯示。(ADC0804是一款逐次逼近式8位單通道A/D轉化芯片,可以將模擬量轉化為數字量,其轉換時間大約為100us)該電路由三個模塊組成:A/D轉化模塊、數據處理模塊和顯示模塊。A/D轉化主要由ADC0804芯片來完成,它負責把采集到的模擬量轉化成相應的數字量再傳輸到數據處理模塊。數據處理則由芯片STC89C52來完成,其負責把ADC0804傳來的數字量進行處理,產生相應的顯示碼并送到顯示模塊進行顯示。
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (47.72 KB, 下載次數: 39)
下載附件
2018-12-3 03:21 上傳
212946lw5pwzwp9buhhu8j.png (121.44 KB, 下載次數: 26)
下載附件
2018-12-3 03:22 上傳
單片機源程序如下:
- #include
- #include
- #define uchar unsigned char
- #define uint unsigned int
- #define wei P2
- #define duan P0
- #define data P1
- sbit csad=P3^5;
- sbit adwr=P3^6;
- sbit adrd=P3^7;
-
- uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- void delayms(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void display(uchar qian,uchar bai,uchar shi,uchar ge)
- {
- duan=table[qian]&0x7f;
- wei=0xfe;
- delayms(3);
- duan=0x00;
- wei=0x00;
- delayms(5);
-
- duan=table[bai];
- wei=0xfd;
- delayms(3);
- duan=0x00;
- wei=0x00;
- delayms(5);
-
- duan=table[shi];
- wei=0xfb;
- delayms(3);
- duan=0x00;
- wei=0x00;
- delayms(5);
-
- duan=table[ge];
- wei=0xf7;
- delayms(3);
- duan=0x00;
- wei=0x00;
- delayms(5);
- }
- void main()
- {
- uchar a,A1,A2,A3,A4,adval;
- csad=0;
- while(1)
- {
- adwr=1;
- _nop_();
- adwr=0;
- _nop_();
- adwr=1;
- for(a=10;a>0;a--)
- {
- display(A1,A2,A3,A4);
- }
- data=0xff;
- adrd=1;
- _nop_();
- adrd=0;
- _nop_();
- adval=P1;
- adrd=1;
- A1=adval/51; //求余,去整留余
- A2=adval%51*10/51;
- A3=adval%51*10%51*10/51;
- A4=adval%51*10%51*10%51*10/51;
- }
- }
復制代碼 所有資料51hei提供下載:
原理圖PCB工程文件.zip
(12.14 MB, 下載次數: 30)
2018-12-2 12:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
程序 (1).zip
(4.08 KB, 下載次數: 19)
2018-12-2 12:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|