|
純模數電電路,這電路可比用單片機控制難多了,其實隨便改改也可以變成單片機電路,與門譯碼器都去掉,然后根據電壓比較結果給模擬開關對應口導通就行了,反而不用想那些數電的邏輯變化.
1,純模數電電路
0~1v放大5倍,1~2V放大2倍,2~3v放大1倍,3V以上放大0.1倍,當然,放大倍數隨你定,只要改一下反饋電阻,實際電路要注意正負供電,有些模擬開關是雙電源才能正常工作。電路中想換交流的自己動手連一下,把直流輸入換成整流鑒幅電路的輸出端,而原來連到741的線去掉連到交流信號,這是燦佳一個活動做的,初步驗證還行,就是電路里忘了加濾波電容,小信號會影響較大(<0.3v).
2,單片機控制
今天把它改成單片機控制的了,上面那個已經明確說明是純模電數電的電路,沒有用到單片機,所以沒有坑爹,單片機電路反而電路更加簡單,注意電路是運放的,只顯示檔位,不顯示大小,因為我以前做的題目沒有要求,當然,換成測電壓電路就可以顯示電壓結果了,用自帶A/D轉換的電路或者用A/D轉換芯片都可以,我這里沒有,因為做這個沒用處,又不比賽,也不好玩
因為沒啥功能所以程序很短
- #include<REG52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code dofly[]={0x3f,0x06,0x5b,0x4f};
- void deal()
- {
- uchar temp,AB;
- temp=(P2&0x07);
- switch(temp)
- {
- case 0x00:{P0=dofly[0];AB=0X00;break;}
- case 0 x01:{P0=dofly[1];AB=0X01;break;}
- case 0x03:{P0=dofly[2];AB=0X02;break;}
- case 0x07:{P0=dofly[3];AB=0X03;break;}
-
- }
- P1=AB;
- }
- void main(void)
- {
- while(1)
- {
- deal();
- }
- }
復制代碼
0.png (101.25 KB, 下載次數: 171)
下載附件
2016-9-28 13:15 上傳
0.png (364.9 KB, 下載次數: 167)
下載附件
2016-9-28 13:15 上傳
0.png (400.13 KB, 下載次數: 182)
下載附件
2016-9-28 13:15 上傳
0.png (1.16 MB, 下載次數: 168)
下載附件
2016-9-28 13:15 上傳
|
-
-
夢想起航2.zip
2016-9-28 13:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
29.37 KB, 下載次數: 40, 下載積分: 黑幣 -5
-
-
用單片機的protues仿真.zip
2016-9-28 13:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
27.73 KB, 下載次數: 41, 下載積分: 黑幣 -5
|