标题:
单片机键盘控制PCF8591 DA转换器来控制流水灯的亮度 带仿真原理图
[打印本页]
作者:
xxx铁xx
时间:
2018-11-10 16:17
标题:
单片机键盘控制PCF8591 DA转换器来控制流水灯的亮度 带仿真原理图
新人帖子,利用PCF8591DA转换功能来控制LED流水灯亮度。压缩包内有Proteus 仿真和程序
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(21.55 KB, 下载次数: 42)
下载附件
2018-11-11 00:25 上传
0.png
(17.34 KB, 下载次数: 31)
下载附件
2018-11-11 00:25 上传
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#include"i2c.h"
#include"lcd.h"
#define WRITEADDR 0x90
#define READADDR 0x91
unsigned char Time;
#define GPIO_LED P1
sbit K1=P3^2;
sbit K2=P3^3;
long int vol=180;
void Pcf8591DaConversion(unsigned char value);
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a,b;
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
/*******************************************************************************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void main()
{
GPIO_LED=0XFE;
LcdInit();
LcdWriteCom(0x80+4);
LcdWriteData('D');
LcdWriteData('a');
LcdWriteData('n');
LcdWriteData(' ');
LcdWriteData('Y');
LcdWriteData('a');
LcdWriteData(':');
TMOD = 0x01; //选择工作方式1
TH0 = 0x3C; //设置初始值,定时50MS
TL0 = 0xB0;
EA = 1; //打开总中断
ET0 = 1;TR0 = 1; //打开定时器0中断//启动定时器0
while(1)
{
LcdWriteCom(0xc0+6);
LcdWriteData('0'+vol*5/255%10);
LcdWriteData('.');
LcdWriteData('0'+vol*50/255%10);
LcdWriteData('0'+vol*500/255%10);
LcdWriteData('V');
Pcf8591DaConversion(vol); //DAC 数模转换
if(K1==0)
{
Delay10ms(1);
if(K1==0)
{
vol=vol+10;
if(vol>255)
vol=255;
while(K1==0);
}
}
if(K2==0)
{
Delay10ms(1);
if(K2==0)
{
vol=vol-10;
if(vol<0)
vol=0;
while(K2==0);
}
}
}
}
void Pcf8591DaConversion(unsigned char value)
{
I2cStart();
I2cSendByte(WRITEADDR);//发送写器件地址
I2cSendByte(0x40);//开启DA写到控制寄存器
I2cSendByte(value);//发送转换数值
I2cStop();
}
void Timer0() interrupt 1
{
TH0 = 0x3C; //设置初始值
TL0 = 0xB0;
Time++;
if(Time>=10)
{
GPIO_LED=_crol_(GPIO_LED,1);
Time=0;
}
}
复制代码
所有资料51hei提供下载:
程序仿真.rar
(103.09 KB, 下载次数: 60)
2018-11-10 16:16 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
MoFanart
时间:
2019-6-11 21:35
i2c.h找不到怎么班
作者:
HearingWings
时间:
2019-6-12 14:59
谢谢你的分享
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1