|
這是我做的基于adc0832的電壓表,模擬電壓輸入0-5v,adc0832模數(shù)轉(zhuǎn)換
運(yùn)用四位數(shù)碼管顯示,精確到第三位小數(shù)點(diǎn),protues仿真,單片機(jī)型號(hào)為stc89c52
單片機(jī)源程序如下:
- #include<AT89x51.h>
- #include<intrins.h> //頭文件聲明
- #define uchar unsigned char
- #define uint unsigned int //定義數(shù)據(jù)類型
- sbit CS=P2^3; //0832的cs為單片機(jī)p2.3
- sbit CLK=P2^2; //0832的clk為單片機(jī)p2.2
- sbit DO=P2^1; //0832的do為單片機(jī)p2.1
- sbit DI=P2^0; //0832的di為單片機(jī)p2.0
- uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};//共陽(yáng)數(shù)碼管編碼
- uint vvv,i; //聲明電壓值vvv
- void delay (int tt) //延時(shí)函數(shù),時(shí)間為tt*0.5ms
- {
- while(tt--)
- {
- for(i=0;i<300;i++);
- }
- }
- uchar Get_AD_Result()
- {
- uint j=0;
- uchar dat1=0;
- CS=1;
- CLK=0; _nop_(); _nop_();
- CS = 0; _nop_(); _nop_();
- CLK = 1; _nop_(); _nop_(); //第一個(gè)上升沿
- DI = 1; _nop_(); _nop_(); //起始信號(hào)
- CLK = 1; _nop_(); _nop_();
- CLK = 0;DI = 1; _nop_(); _nop_(); //第一個(gè)下降
- CLK = 1; _nop_(); _nop_();
- CLK = 0;DI = 1; _nop_(); _nop_(); //第二個(gè)下降
- CLK = 1;DI = 0; _nop_(); _nop_();
- CLK = 0;DI = 1; _nop_(); _nop_(); //第三個(gè)下降后,須將DI置高,準(zhǔn)備接收數(shù)據(jù)
- for(j=0;j<8;j++)
- {
- CLK = 1; _nop_(); _nop_(); //第四個(gè)下,一位一位的讀取數(shù)據(jù)
- CLK = 0; _nop_(); _nop_();
- if(DO) //如果這一位數(shù)據(jù)為1,dat1與0x01或等,最后一位變?yōu)?
- {
- dat1|=0x01;
- }
- else //或者這一位數(shù)據(jù)為0,將dat1于0xfe與等,最后一位變成0
- {
- dat1&=0xfe;
- }
- CLK=0;
- _nop_();
- CLK=1; //上升沿,輸出數(shù)據(jù)
- dat1=dat1<<1; //將數(shù)據(jù)進(jìn)行左移運(yùn)算,一直到8位移入完成
- }
- CS = 1; //使能置高,禁用AD芯片
- return dat1; //返回AD值
- }
- void display(uint dat) //顯示函數(shù)程序
- {
- P1=0xff; //消隱 ,顯示方式為動(dòng)態(tài)顯示
- P0=0x08; //通過p0口驅(qū)動(dòng),顯示最高位,個(gè)位
- P1=tab[dat/100]&0x7f; //計(jì)算出個(gè)位數(shù)字,并帶小數(shù)點(diǎn)進(jìn)行顯示
- delay(1); //延時(shí)
- P1=0xff;
- P0=0x04; //顯示小數(shù)點(diǎn)后第一位
- P1=tab[dat%100/10];
- delay(1);
- P1=0xff;
- P0=0x02; //顯示小數(shù)點(diǎn)后第二位
- P1=tab[dat%10];
- delay(1);
- P1=0xff;
- P0=0x01; //顯示最后一位
- P1=tab[dat%1];
- delay(1);
- P1=0xff;
- } //主函數(shù)
- void main()
- {
- //P1=0xff; //清零
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
adc0832.rar
(63.36 KB, 下載次數(shù): 80)
2017-6-8 03:00 上傳
點(diǎn)擊文件名下載附件
|
|