adc0809模數轉換設計,學課設計,自己寫的
單片機源程序如下:
- #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=P3^3; //時鐘信號
- sbit ST=P3^0; //啟動信號
- sbit EOC=P3^7; //轉換結束信號
- sbit OE=P3^6; //輸出使能
- sbit a=P2^0;
- sbit b=P2^1;
- sbit c=P2^2;
- //延時
- void DelayMS(uint ms)
- {
- uchar i;
- while(ms--) for(i=0;i<50;i++);
- }
- //顯示轉換結果
- void Display_Result(uchar f)
- {
- uchar d=(f-57)/4;
- a=1;
- b=1;
- c=0;
-
- P0=DSY_CODE[d/100];
- DelayMS(1);
- a=1;
- b=0;
- c=1;
-
- P0=DSY_CODE[d%100/10];
- DelayMS(1);
- a=0;
- b=1;
- c=1;
- P0=DSY_CODE[d%10];
- DelayMS(1);
- }
- //主程序
- void main()
- {
- TMOD=0x02; //T1 工作模式 2
- TH0=0x14;
- TL0=0x00;
- IE=0x82;
- TR0=1;
- while(1)
- {
- ST=0;ST=1;ST=0; //啟動 A/D 轉換
- while(EOC==0); //等待轉換完成
- OE=1;
- Display_Result(P1);
- OE=0;
- }
- }
- //T0 定時器中斷給 ADC0808 提供時鐘信號
- void Timer0_INT() interrupt 1
- {
- CLK=~CLK;
- }
復制代碼
所有資料51hei提供下載:
ad轉換數碼管顯示.zip
(789 Bytes, 下載次數: 13)
2018-3-19 17:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|