- /********************************************************************
- *
- * 程序功能 : 数码转换实验
- *
- * 应用软件 : KEIL C
- *
- * 硬 件 : W2041
- *
- * 创建时间 : 2015-12-16
- *
-
- ********************************************************************/
- #include <reg52.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit dian=P0^7;//小数点位
- sbit led_e=P2^7;//液晶使能端口
- uchar temp,ad;
- uchar code table1[12]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf}; //数码管段选
- sbit CS=P3^3; //片选
- sbit CLK=P2^6; //时钟
- sbit DAT=P2^7; //数据
- uchar bdata ADCdata;
- sbit ADbit=ADCdata^0; //定义可为选址变量
- /********************************************************************
- 函 数 名:TLC549ADC()
- 功 能:A/D转换子程序
- 说 明:读取上一次A/D转换的数据,启动下一次A/D转换
- ***********************************************************************/
- void Delay_MS(uint ms)
- {
- uint x,y;
- for(x=ms;x>0;x--)
- for(y=110;y>0;y--);
- }
- uchar TLC549ADC(void)
- {
- uchar i;
- CS=1;
- CLK=0;
- DAT=1;
- CS=0;
- for(i=0;i<8;i++)
- {
- CLK=1;
- // Delay_MS(5);
- _nop_(); _nop_();_nop_();
- _nop_();
- ADbit=DAT;
- ADCdata<<=1; //AD转换
- CLK=0;
- // Delay_MS(5);
- _nop_(); _nop_();_nop_();
- }
- return (ADCdata);
- }
- /********************************************************************
- 函 数 名:main()
- 功 能:主程序
- 说 明:
- 入口参数:无
- 返 回 值:无
- ***********************************************************************/
- void main()
- {
- uchar i,AD_DATA; //定义A/D转换数据变量
- while(1)
- {
- // TLC549ADC(); //启动一次A/D转换
- // for(i=0xff;i>0;i--) //延时
- // {_nop_();}
- AD_DATA=TLC549ADC(); //读取当前电压值A/D转换数据
- led_e=0; //防止液晶影响
- P1=0xFD; //电压个位
- P0=table1[AD_DATA/100];
- for(i=0xff;i>0;i--) //延时
- {_nop_();}
- for(i=0xff;i>0;i--) //延时
- {_nop_();}
- // P0=0XFF; //关闭数码,消除余辉
-
- P1=0xFB; //小数点第一位
- P0=table1[(AD_DATA%100)/10];
- // dian=0;
- for(i=0xff;i>0;i--) //延时
- {_nop_();}
- for(i=0xff;i>0;i--) //延时
- {_nop_();}
- // P0=0XFF;
-
- P1=0xF7; //小数点第二位
- P0=table1[AD_DATA%10];
- for(i=0xff;i>0;i--) //延时
- {_nop_();}
- for(i=0xff;i>0;i--) //延时
- {_nop_();}
- // P0=0XFF;
- }
- }
复制代码
TLC594工程文件和仿真文件下载
22-AD转换TLC549.zip
(63.14 KB, 下载次数: 138)
|