附件里有完整源码和仿真
单片机程序:
- //功能:晶振11.0592M,通过采集模拟信号,让数码管显示当前电压//
- #include<reg51.h>
- sbit duancun= P2^1 ; //控制锁存器段选
- sbit weicun= P2^2; //控制锁存器位选
- sbit OE = P1^0; //输出使能,OE=0高阻,OE=1 ADC转换结果输出到单片机
- sbit ST = P1^2; //启动信号,上升沿复位清零ADC,下降沿启动转换,低电平保持转换
- sbit ALE = P1^1;
- sbit OEC = P1^3;
- sbit p07 = P0^7;
- #define uint unsigned int
- #define uchar unsigned char
- void delay(uint x)
- {
- while(x--);
- }
- /**********************************
- 函数名:xianshi()
- 变量:i
- 功能:处理 i的数据 ,让i能够显示到数码管上
- ***********************************/
- void xianshi(uint i)
- { unsigned char code duan[]={0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,0x80,0x90};
- unsigned char code led[]={0x00,0x01,0x02,0x04,
- 0x08,0x10,0x20,0x40,0x80};
- delay(50);
- duancun=1;
- P0=duan[i%10];
- duancun=0;
- weicun=1;
- P0=led[8];
- weicun=0;
- P0=0xff;
- delay(50);
- duancun=1;
- P0=duan[i/10%10];
- duancun=0;
- weicun=1;
- P0=led[7];
- weicun=0;
- P0=0xff;
- delay(50);
- duancun=1;
- P0=duan[i/100%10]&0x7f;
-
- duancun=0;
- weicun=1;
- P0=led[6];
- weicun=0;
- P0=0xff;
- }
- void main()
- { float qq=1.962;
- while(1)
- {
- ALE =1;
- ST =1;
- delay(5);
- ALE = 0;
- ST = 0;
- delay(5);
- ALE = 1;
- ST = 1;/*启动A/D转换,上升沿复位清零ADC,下降沿启动转换,低电平保持转换*/
- delay(50);
- OE = 0; //输出使能,OE=1高阻,OE=0 ADC转换结果允许输出到单片机
- xianshi((P3*qq)); //因为P3的数据最大只有255,电压最大是5V,所以乘0.962就约等于500
- OE = 1; //输出使能,OE=0高阻
- }
- }
复制代码 需要Proteus8.8及以上版本打开
AD转换c程序和proteus仿真.zip
(84.22 KB, 售价: 1 E币)
【必读】版权免责声明
1、本主题所有言论和内容纯属会员个人意见,与本论坛立场无关。2、本站对所发内容真实性、客观性、可用性不做任何保证也不负任何责任,网友之间仅出于学习目的进行交流。3、对提供的数字内容不拥有任何权利,其版权归原著者拥有。请勿将该数字内容进行商业交易、转载等行为,该内容只为学习所提供,使用后发生的一切问题与本站无关。 4、本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 5、本网站所有软件和资料均为网友推荐收集整理而来,仅供学习用途使用,请务必下载后两小时内删除,禁止商用。6、如有侵犯你版权的,请及时联系我们(电子邮箱1370723259@qq.com)指出,本站将立即改正。
|