AD1674(双极性输入—5V-+5V)和MAX7221程序及proteus仿真.doc

上传人:寂**** 文档编号:19290351 上传时间:2022-06-06 格式:DOC 页数:6 大小:108.50KB
返回 下载 相关 举报
AD1674(双极性输入—5V-+5V)和MAX7221程序及proteus仿真.doc_第1页
第1页 / 共6页
AD1674(双极性输入—5V-+5V)和MAX7221程序及proteus仿真.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《AD1674(双极性输入—5V-+5V)和MAX7221程序及proteus仿真.doc》由会员分享,可在线阅读,更多相关《AD1674(双极性输入—5V-+5V)和MAX7221程序及proteus仿真.doc(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、AD1674(双极性输入5V+5V)和MAX7221程序及proteus仿真图形中P代表“+”原件清单#include#include#define uchar unsigned char #define uint unsigned int#define addo (10.0/4095.0)/转换进率,12位精度(212-1=4095),满量程为10V/*管脚定义*/sbit DIN = P25;sbit SCL = P26;sbit CS = P27;sbit STS = P20;sbit CS1 = P21;sbit A0 = P22;sbit CE = P23;sbit RC = P24

2、;static uchar disbuf8;/显示缓存/*微秒延时函数*/void delay_us(uchar n) uchar i;while(n-) for(i=0;i10;i+);/*毫秒延时函数*/void delay_ms(uint n)uchar i;while(n-) for(i=0;i100;i+);/*向MAX7221串行写一个字节的数据*/void WriteData(uchar dat)uchar i;for(i=0;ii)?1:0; SCL = 0; delay_us(2); SCL = 1; delay_us(2);/*向MAX7221中指定的地址写入数据*/voi

3、d MAX7221_Write(uchar addr,uchar dat)CS = 0;WriteData(addr);WriteData(dat);CS = 1;/*MAX7221的初始化*/void MAX7221_Initial(void)MAX7221_Write(0x0A,0x07);/LED亮度值设置为8/16MAX7221_Write(0x0B,0x07);/扫描显示器的个数为8个MAX7221_Write(0x0C,0x01);/正常操作模式(非掉电模式)MAX7221_Write(0x0F,0x00);/正常显示模式(非测试模式)MAX7221_Write(0x09,0xff

4、);/对07的8个数据进行B型BCD译码/*LED显示函数*/void display(void)uchar i;for(i=0;i8;i+) MAX7221_Write(i+1,disbufi);/*读取AD1674转换结果*/uint AD1674_Read(void) uint temp; uchar temp1,temp2; CS1 = 1; CE = 0; /初始化,关闭数据采集 CS1 = 0; A0 = 0; RC = 0; CE = 1; /CE=1,CS1=0,RC=0,A0=0启动12位温度转换 _nop_(); while(STS=1);/等待数据采集结束 CE = 0;

5、 /芯片使能关闭 RC = 1; A0 = 0; CE = 1; /CE=1,CS1=0,RC=1,12/8=1,A0=0允许高八位数据并行输出 _nop_(); temp1 = P0;/读取转换结果的高八位 CE = 0;/芯片使能关闭 RC = 1; A0 = 1; CE = 1;/CE=1,CS1=0,RC=1,12/8=0,A0=1允许低四位数据并行输出 _nop_(); temp2 = P0;/读取转换结果的低四位 CE = 0; CS1 = 1;/关闭AD1674数据采集 temp = (temp14; /返回转换结果,右移四位是因为temp2为P0口的高四位/*if(temp0x

6、000)&(temp0x800) temp=temp-0x800; disbuf0=14; return (temp);/*向缓冲器中写入要显示的数据*/void HEXTOBCD(uchar chn) uint temp; temp = (int)(AD1674_Read()*addo*10000);/转换为可显示的实际温度值 disbuf1 = temp/10000; disbuf2 = (temp%10000/1000)|0x80;/带小数点的位显示 disbuf3 = temp%1000/100; disbuf4 = temp%100/10; disbuf5 = temp%10; disbuf6 = 15;/空显示 disbuf7 = chn;/显示通道号/*主函数*/void main()MAX7221_Initial();while(1) HEXTOBCD(1);/采集第一通道的数据 display();/显示采集到的数据 delay_ms(10);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com