ADC0808采集電壓并且用數碼管顯示仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (16.17 KB, 下載次數: 59)
下載附件
2018-10-19 03:26 上傳
0.png (48.53 KB, 下載次數: 44)
下載附件
2018-10-19 03:27 上傳
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- sbit CLK=P1^3;
- sbit ST=P1^2;
- sbit EOC=P1^1;
- sbit OE=P1^0;
- void DelayMS(uint ms)
- {
- uchar i;
- while(ms--)
- for(i=0;i<120;i++);
- }
- /******************顯示采集的電壓**********************************/
- void Display_Result(uchar d)
- {
- P2=0xf7;
- P0=DSY_CODE[d%10]; //注意:當d變為2*d時候,顯示正確,但不知why
- DelayMS(5);
- P2=0xfb;
- P0=DSY_CODE[d%100/10];
- DelayMS(5);
- P2=0xfd;
- P0=DSY_CODE[d/100]|0x80;
- DelayMS(5);
- }
- void main()
- {
- // uchar guo;
- TMOD=0x02;
- TH0=0x14;
- TL0=0x00;
- IE=0x82;
- TR0=1;
-
- P1=0x3f; //通道選擇
-
- while(1)
- {
- ST=0;ST=1;ST=0; //ADC啟動
- while(EOC==0); //轉換結束信號
- OE=1; //輸出使能
- // guo=(P3/256)*5*100;
- Display_Result(P3);
- OE=0;
- }
- }
- void Timer0_INT() interrupt 1
- {
- CLK=~CLK;
- }
復制代碼
所有資料51hei提供下載:
ADC0808采集電壓并且用數碼管顯示0.zip
(67.46 KB, 下載次數: 146)
2018-10-18 21:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|