- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于51单片机AD pcf8951 C程序
/*用单片机控制AD (PCF8951)进行模数转换,当拧动实验板上A/D旁边的电位器
RE2时,在数码管的前三位以十进制方式动态显示出A/D转换后的数字量
(8位A/D转换后数值在0~255变化)*/
#includereg52.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
sbit sda=P2^0;
sbit scl=P2^1;
uchar a;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay1(uchar x) //延时函数
{
uchar a,b;
for(a=x;a0;a--)
for(b=100;b0;b--);
}
void delay()
{ ;; }
void display(uchar ge,uchar shi,uchar bai) //数码管显示
{
P0=table[bai];
P1=0xef;
delay1(1);
P0=table[shi];
P1=0xdf;
delay1(1);
P0=table[ge];
P1=0xbf;
delay1(1);
}
void start() //开始信号
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
void stop() //停止
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void respons() //应答
{
uchar i;
scl=1;
delay();
while((sda==1)(i250))i++;
scl=0;
delay();
}
void init()
{
sda=1;
delay();
scl=1;
delay();
TMOD=0x21; //定时器1的工作方式2;8位初值自动重装定时器
SCON=0x50; //8位数据允许串行接受
TH1= 0xfd; //产生波特率
TL1= 0xfd;
EA=1;
TR0=1;
}
void write_byte(uchar date) //写一个字节
{
uchar i,temp;
temp=date;
for(i=0;i8;i++)
{
temp=temp1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar read_byte() //读一个字节
{
uchar i,k;
scl=0;
delay();
sda=1;
delay();
for(i=0;i8;i++)
{
scl=1;
delay();
k=(k1)|sda;
scl=0;
delay();
}
return k;
}
void ad_zhuan() //初始化AD转换
{
start(); //启动信号
write_byte(0x90); //寻pcf8591址
respons();
write_byte(0x40);
respons();
stop();
}
uchar read_ad() //读AD转换
{
uchar temp;
start(); //启动信号
write_byte(0x91); //寻pcf8591址
respons();
temp=read_byte(); //读一个字节
respons();
stop();
return temp;
}
void main()
{
uchar a,A1,A2,A3,adval;
init(); //初始化
//write_add(23,0xaa); 向EEPROM写
delay1(100);
//P1=read_add(23); 读EEPROM中数据
while(1)
{
for(a=10;a0;a--)
{
display(A1,A2,A3);
}
// display();
adval=read_ad();
A1=adval/100;
您可能关注的文档
- 《手持式电动工具安全 第二部分:电钻与冲击电钻专用要求》GB.doc
- 焊缝隐蔽工程检查验收记录(通用表格).doc
- 《教材教法辅导》PPT 小学信息技术 四下.ppt
- 《文本编辑》说课稿 沈阳出版社.doc
- 《岳阳楼记》主.ppt
- 《新标准英语》第九册教材分析与教学建议.ppt
- 《最后姿势》教学设计(第一课时).doc
- 《思维导图与小学英语教学》PPT.ppt
- 《必威体育精装版五笔字型速成培训教程》第5章:汉字编码规则与输入.ppt
- 《念奴娇·赤壁怀古》优秀(新人教版必修4).ppt
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)