附件里有完整源碼和仿真
1.jpg (98 KB)
下載附件
2021-4-25 14:16 上傳
單片機程序:
- //功能:晶振11.0592M,通過采集模擬信號,讓數碼管顯示當前電壓//
- #include<reg51.h>
- sbit duancun= P2^1 ; //控制鎖存器段選
- sbit weicun= P2^2; //控制鎖存器位選
- sbit OE = P1^0; //輸出使能,OE=0高阻,OE=1 ADC轉換結果輸出到單片機
- sbit ST = P1^2; //啟動信號,上升沿復位清零ADC,下降沿啟動轉換,低電平保持轉換
- sbit ALE = P1^1;
- sbit OEC = P1^3;
- sbit p07 = P0^7;
- #define uint unsigned int
- #define uchar unsigned char
- void delay(uint x)
- {
- while(x--);
- }
- /**********************************
- 函數名:xianshi()
- 變量:i
- 功能:處理 i的數據 ,讓i能夠顯示到數碼管上
- ***********************************/
- void xianshi(uint i)
- { unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,0x80,0x90};
- unsigned char code led[]={0x00,0x01,0x02,0x04,
- 0x08,0x10,0x20,0x40,0x80};
- delay(50);
- duancun=1;
- P0=duan[i%10];
- duancun=0;
- weicun=1;
- P0=led[8];
- weicun=0;
- P0=0xff;
- delay(50);
- duancun=1;
- P0=duan[i/10%10];
- duancun=0;
- weicun=1;
- P0=led[7];
- weicun=0;
- P0=0xff;
- delay(50);
- duancun=1;
- P0=duan[i/100%10]&0x7f;
-
- duancun=0;
- weicun=1;
- P0=led[6];
- weicun=0;
- P0=0xff;
- }
- void main()
- { float qq=1.962;
- while(1)
- {
- ALE =1;
- ST =1;
- delay(5);
- ALE = 0;
- ST = 0;
- delay(5);
- ALE = 1;
- ST = 1;/*啟動A/D轉換,上升沿復位清零ADC,下降沿啟動轉換,低電平保持轉換*/
- delay(50);
- OE = 0; //輸出使能,OE=1高阻,OE=0 ADC轉換結果允許輸出到單片機
- xianshi((P3*qq)); //因為P3的數據最大只有255,電壓最大是5V,所以乘0.962就約等于500
- OE = 1; //輸出使能,OE=0高阻
- }
- }
復制代碼 需要Proteus8.8及以上版本打開
AD轉換c程序和proteus仿真.zip
(84.22 KB, 售價: 1 E幣)
2021-4-25 14:23 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發(fā)內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業(yè)交易、轉載等行為,該內容只為學習所提供,使用后發(fā)生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯(lián)系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|