仿真
程序
单片机源程序如下:
- /***********************************************************
- **程序功能:通过AD0809芯片显示电压值
- **程序说明:通过增加电阻值来改变电压值 即显示可变电阻的电压值
- **通信格式:无
- **创建日期:2017/10/11
- *************************************************************/
- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
-
- uint Data; //输出数据参数
- sbit OE=P1^0; //输出使能端口
- sbit EOC=P1^1; //转换结束信号
- sbit ST=P1^2; //AD转换启动信号端
- sbit ADDA=P1^4;
- sbit ADDB=P1^5;
- sbit ADDC=P1^6; //通道选择IO口定义
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- //0-9
- void Delay();
- void Ad0809Init();
- void Display(); //函数声明
- /******************************************************************
- **函数名称:Ad0809Init()
- **函数功能:Ad0809初始化
- **输入 :无
- **输出 :无
- *******************************************************************/
- void Ad0809Init()
- {
- ADDA=1;
- ADDB=1;
- ADDC=0;
- OE=0;ST=0;
- ST=1;ST=0;
- while(EOC==0);
- OE=1;
- Data=P3;
- OE=0;
- }
- /*****************************************************************
- **函数名称:Display()
- **函数功能:显示函数 显示电压值
- **输入 :无
- **输出 :无
- ******************************************************************/
- void Display()
- {
- uint i;
- Data=Data*19.61; //将输出数据转换为电压值
- /*输出八位 二的八次方正好是255 所以最大为255 用500/255*/
- for(i=0;i<4;i++)
- {
- P0=0x00;
- switch(i)
- {
- case 0:P2=0xfe;P0=table[Data/1000]|0x80;break;
- case 1:P2=0xfd;P0=table[Data%1000/100];break;
- case 2:P2=0xfb;P0=table[Data%100/10];break;
- case 3:P2=0xf7;P0=table[Data%10];break;
- }
- Delay();
- }
- }
- /*****************************************************************
- **函数名称:Delay()
- **函数功能:延时
- **输入 :无
- **输出 :无
- ******************************************************************/
- void Delay()
- {
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
AD0809.zip
(70.8 KB, 下载次数: 195)
|