DA转换程序设计.ppt

上传人:p** 文档编号:171477 上传时间:2023-03-16 格式:PPT 页数:9 大小:147KB
下载 相关 举报
DA转换程序设计.ppt_第1页
第1页 / 共9页
DA转换程序设计.ppt_第2页
第2页 / 共9页
DA转换程序设计.ppt_第3页
第3页 / 共9页
DA转换程序设计.ppt_第4页
第4页 / 共9页
DA转换程序设计.ppt_第5页
第5页 / 共9页
DA转换程序设计.ppt_第6页
第6页 / 共9页
DA转换程序设计.ppt_第7页
第7页 / 共9页
DA转换程序设计.ppt_第8页
第8页 / 共9页
DA转换程序设计.ppt_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《DA转换程序设计.ppt》由会员分享,可在线阅读,更多相关《DA转换程序设计.ppt(9页珍藏版)》请在第壹文秘上搜索。

1、D/A转换及其程序设计oDA的Proteus图形连接开头 o#include o#include o o/8155 各部件地址o#define STATE8155 XBYTE0 x7FF8o#define IOA XBYTE0 x7FF9o#define IOB XBYTE0 x7FFAo#define IOC XBYTE0 x7FFBo#define TIMERH XBYTE0 x7FFDo#define TIMERL XBYTE0 x7FFCo/adc0808 各通道地址o#define IN0 XBYTE0 xFEF8 /11111110 11111000o#define IN1 XBY

2、TE0 xFEF9 /11111110 11111001o#define IN2 XBYTE0 xFEFA /11111110 11111010全局变量定义ovolatile unsigned char addr=0; /采集通道编号ounsigned char dig_data2=0; /保存采集数据ounsigned char temp1=0; /将显示第一路,8位二进制数据ounsigned char temp2=0; /将显示第二路,8位二进制数据ofloat value1=0.0; /8位二进制,转电压值时中间变量,第一路ofloat value2=0.0; /8位二进制,转电压值时

3、中间变量,第二路ounsigned int temp1_u=0; /计算后电压值*100,第一路ounsigned int temp2_u=0; /计算后电压值*100,第二路obit flag=1; /定时器T0,选路标志 ounsigned char code DIG_CODE16=0 xC0, 0 xF9, 0 xA4, 0 xB0, 0 x99, 0 x92, 0 x82, 0 xF8,o 0 x80, 0 x90, 0 x88, 0 x83, 0 xC6, 0 xA1, 0 x86, 0 x8E;/共阳代码 /code类型数组全局函数声明odelay();omain()ooo/815

4、5初始化oSTATE8155=0 x03;oIOB=0 x00;o o/初始中断oEA=1;oEX0=1;oIT0=1;oET0=1;oo/初始化定时器T0oTMOD=0 x01;oTH0=(65536-50000)/256; oTL0=(65536-50000)%256;oTR0=1;o while(1)o o /*/ o /*显示采集到8位二进制数,的十进制形式*/o /*/oo temp2=dig_data1;o o IOB=0 x20;o IOA=DIG_CODEtemp2/100;o delay();ooooo IOB=0 x40;o IOA=DIG_CODEtemp2%100/10

5、;o delay();o o IOB=0 x80;o IOA=DIG_CODEtemp2%10;o delay(); o o o temp1=dig_data0;o odelay();o IOB=0 x01;o IOA=DIG_CODEtemp1/100;o delay();o oo IOB=0 x02;o IOA=DIG_CODEtemp1%100/10;o delay();o o o IOB=0 x04;o IOA=DIG_CODEtemp1%10;o delay(); o /显示第一路采集的电压值o /* temp1=dig_data0;o value1=(float)temp1*5.0

6、/256; / 公式:value/5V=temp2/256o temp1_u=value1*100; / 以整型形式显示 o o delay();o IOB=0 x01;o IOA=DIG_CODEtemp1_u/100&0 x7f;/第一位数码管,显示小数点,其余位不显示o delay();o oo IOB=0 x02;o IOA=DIG_CODEtemp1_u%100/10;o delay();o o o IOB=0 x04;o IOA=DIG_CODEtemp1_u%10;o delay();o /显示第二路采集的电压值o temp2=dig_data1;o value2=(float)

7、temp2*5.0/256; / 公式:value/5V=temp2/256o temp2_u=value2*100; / 以整型形式显示o o IOB=0 x20;o IOA=DIG_CODEtemp2_u/100&0 x7f; /第一位数码管,显示小数点,其余位不显示o delay();ooo IOB=0 x40;o IOA=DIG_CODEtemp2_u%100/10;o delay();o o IOB=0 x80;o IOA=DIG_CODEtemp2_u%10;o delay();*/ o o o o void T0_srv(void)interrupt 1 using 1 /定时器

8、T0,每隔50ms来一次中断o o TH0=(65536-50000)/256; / 初值重装oTL0=(65536-50000)%256; / 初值重装o flag=flag; / 置标志位o if(flag=0)oIN0=0; addr=0; /开启第一路转换oelse oIN1=0; addr=1; /开启第二路转换o ovoid Int0_srv(void)interrupt 0 using 2oo oswitch(addr)oo case 0: o dig_data0=IN0; /读取第一路转换结果o break;o case 1: o dig_data1=IN1; /读取第二路转换结果o break;o default: break;ooo delay()o o o unsigned int a=500;o while(a-);o o

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!