




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 分布式电压采集系统设计报告 班级:通信091 姓名: 学号:0910920120 同组: 一实验要求1基本设计要求(1)甲机用于电压信号的采集,要求采集2路电压信号(信号源可由电位器分压得到),将当前采样的通道号和电压值在数码管或LCD进行显示。(2)实现甲机和乙机的数据通信,采用RS-232方式完成通信接口。(3)乙机通过键盘设置甲机的采集电压通道,并将给信息发送给甲机。4发挥部分(1)乙机控制甲机电压采集通道,并接收甲机的采集电压数据在乙机的数码管或LCD上进行显示。(2)增加实现2路信号的同时采集的功能,并进行采样电压的同时显示。5.注意事项:(1).通信时两个单片机必须使用相同的晶振
2、,相同的波特率。 (2).注意ADC0809、1602LCD的操作时序,并用正确的C语言程序进行控制。 (4)通过Proteus完成仿真工作,精简C语言程序。 (5)完成后进行必要的测试,检测系统的优劣。二设计所用单片机以及相关芯片介绍1. AT89S51单片机及其引脚说明AT89S51是一个有40个引脚的芯片,引脚配置如图2 AT89S51引脚配置所示。AT89S51芯片的40个引脚功能为:VCC 电源电压。GND 接地。RST 复位输入。XTAL1反向振荡放大器输入及内部时钟工作电路的输入XTAL2 来自反向振荡放大器的输出。P0 一组8位漏极开路型双向I/O口。即地址/数据总线复用口。校
3、验时,要求外接上拉电阻。P2 一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲级可驱动4个TTL逻辑门电路。P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)2 ADC0809引脚结构及应用介绍:ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1). ADC0809各脚功能如下:D7-D0:数字量
4、输出引脚IN0-IN78位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大.ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁
5、存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(),VREF()为参考电压输入。 ADC0809工作时序图:(2) ADC0809应用说明 a ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 b 初始化时,使ST和OE信号全为低电平。 c 送要转换的哪一通道的地址到A,B,C端口上。 d 在ST端给出一个至少有100ns宽的正脉冲信号。 e 是否转换完毕,我们根据EOC信号来判断
6、。 f 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 g. 进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在1602上液晶显示。 3.1602LCD液晶显示器引脚说明及工作指令(1).1602LCD主要技术参数 显示容量为16×2个字符;芯片工作电压为4.55.5V;工作电流为2.0mA(5.0V);(2).引脚功能说明
7、160; 编号符号引脚说明编号符号引脚说明1VSS电源地9D2Date I/O2VDD电源正极10D3Date I/O3VL液晶显示偏压信号11D4Date I/O4RS数据/命令选择端(V/L)12D5Date I/O5R/W读/写选择端(H/L)13D6Date I/O6E使能信号14D7Date I/O7D0Date I/O15BLA背光源正极8D1Date I/O16BLK背光源负极 1、是工作电源 5V 供电。3、VL 是调节对比度的引脚调节此脚上的电压可以改变黑白对比度.4、RS 是很多液晶上都有的引脚 是命令/数据选择引脚 该脚电平为高时表示将进行数据操作;为低时表示进行命令操作
8、。5、RW 也是很多液晶上都有的引脚 是读写选择端 该脚电平为高是表示要对液晶进行读操作;为低时表示要进行写操作。6、E 同样很多液晶模块有此引脚 通常在总线上信号稳定后给一正脉冲通知把数据读走,在此脚为高电平的时候总线不允许变化。714.D0D7 8 位双向并行总线,用来传送命令和数据。15、 BLA是背光源正极。16、BLK是背光源负极。 写操作时序(包括但不限于初始化、调节显示位置、清除显示)(4)1602LCD的指令码(命令码)此液晶上电需要初始化 支持的指令码有 指
9、令码功能00111000设置16×2显示,5×7点陈,8位数据接口 指令码功能00001DCBD=1 开显示;D=0 关显示C=1 显示光标;C=0 不显示光标B=1 光标闪烁;B=0 光标不显示000001NSN=1 当读或写一个字符后地址指针加一,且光标加一N=0 当读或写一个字符后地址指针减一,且光标减一S=1 当写一个字符,整屏显示左移(N=1) 或右移(N=0),以得到光标不移动而屏幕移动的效果。S=1 当写一个字符,整屏显示不移动指
10、令码功能80H+地址码(0-27H,40H-67H)设置数据地址指针用该指令码可以把光标移动到想要的位置指令码功能01H显示清屏:1.数据指针清零 2.所有显示清零02H显示回车:1数据指针清零4. 用555芯片产生的时钟的电路原理图(f=1.43/(R1+2R2)*C)三硬件电路原理图设计及说明整体设计框图 整体设计思路用8通道的AD0809的通道0和通道1进行电压采集,可令ADDB、ADDC接地,利用程序分别使ADDA等于0和1,从而实现对通道0和通道1的分时采集,给ADC0809提
11、供5V的工作电压,时钟用555芯片产生。参考电压REF=5V,通过滑动变阻器控制采集电压的大小。(采样功能模块)把通过ADC0809获得的采样值通过D0D7送入单片机甲,但是由于采样值是以二进制的形式传给甲机的,所以若想在液晶上直接显示电压值,则需要进行转化。设与采样值相对应的十进制数是aa,则所采样电压值可表示为:U=aa*5/256 不难发现,若想再1602LCD上显示三位有效数字,则只需把电压值乘以100,即U=aa*5*100/256此时只要把这个数分成个位,十位,百位显示在液晶上即可,其中百位表示整数电压,个位及十位表示不足整数的电压值。为了计算方便可取U=aa*5*100/256=
12、2*aa。此时误差也仅为2.4% (下图为通信功能模块)经过处理获取电压后,通过串口双机通信把电压值发送给单片机乙,最终通过乙机的P0口把数据送入1602LCD的D0D7端口进行LCD液晶显示。与此同时用乙机通过外部中断把控制甲机的采样通道的信号发送给甲机。(如此可实现单通道,双通道的采集)单片机甲机和乙机进行数据收发的波特率均设定为2400bps,晶振用11.0592M。(液晶显示模块) 四C语言程序代码及仿真结果1. 单通道显示(通过外部中断0控制通道的采集)甲机:#include <reg52.h>#define uchar unsigned char void delay(
13、uchar x);void csh();void init1();void init2();sbit EOC=P23;sbit EO=P24;sbit ALE=P25;sbit ADDA=P26;sbit START=P27;uchar aa;void main()csh();while(1)if(SBUF=0)/显示通道1init1();aa=P1;ES=0;TI=0;SBUF=aa;while(!TI);TI=0;ES=1;if(SBUF=1)init2();/显示通道2aa=P1;ES=0;TI=0;SBUF=aa;while(!TI);TI=0;ES=1;void init1()/采集
14、通道1初始化ADDA=0;ALE=0;START=0;ALE=1;START=1;EO=0;START=0;while(EOC=0);EO=1; void init2()/采集通道2初始化ADDA=1;ALE=0;START=0;ALE=1;START=1;EO=0;START=0;while(EOC=0);EO=1; void csh()TMOD=0X20;TH1=0xF4;TL1=0XF4;SCON=0x50;PCON=0;EA=1;IT0=1;TR1=1;void delay(uchar x) /延时程序,i是形式参数,i为1时 延时约1MSuchar i,j;for(i=x;i>
15、0;i-) for(j=0;j<110;j+); void intrr() interrupt 4 /接收中断 RI=0;乙机:#include <reg52.h>#define uchar unsigned char /数据类型的宏定义#define uint unsigned int /数据类型的宏定义 void delay(uint x);void write_com(uchar com);void write_data(uchar date);void display();void csh();void init();sbit rs=P20;sbit en=P22;s
16、bit a0=P24;uint i,j,aa,bb,cc,dd,bai,shi,ge;uchar code table1="tongdao1:"uchar code table2="tongdao2:"uchar code table3="0123456789"uchar code table4=".V "void main()csh();/中断init();/ADc0809初始化while(1)aa=17*bb/10;bai=aa/100;shi=aa%100/10;ge=aa%10;write_com(0x80
17、);if(a0=1)/通道1for(i=0;i<9;i+)write_data(table1i);delay(5);display();/显示电压值write_com(0x80);if(a0=0)/通道2for(i=0;i<9;i+)write_data(table2i);delay(5);display();/显示电压值void write_com(uchar com)/写命令rs=0;P0=com;delay(5);en=1;delay(5);en=0;void write_data(uchar date)/写数据rs=1;P0=date;delay(5);en=1;delay
18、(5);en=0;void display()write_data(table3bai);delay(5);write_data(table40);delay(5);write_data(table3shi);delay(5);write_data(table3ge);delay(5);write_data(table41); delay(5);void delay(uint x) /延时程序,i是形式参数,i为1时 延时约1MSuint i,j;for(i=x;i>0;i-) for(j=0;j<110;j+); void csh()/定时器1、波特率和中断的初始化TMOD=0X
19、20;TH1=0xF4;TL1=0XF4;SCON=0x50;PCON=0;EA=1;EX0=1;/外部中断0IT0=1;/下降沿ES=1;/串口中断TR1=1;/kai ding shi void init()/1602LCD初始化en=0;write_com(0x38);/两行16*2write_com(0x0c);/无光标write_com(0x06);/zhi zhen Jiayiwrite_com(0x01);/qing pingvoid waiT() interrupt 0 /用按键控制甲机的通道1或2ES=0;SBUF=a0;while(!TI);/等待发送完毕TI=0;a0=a
20、0;ES=1;void intrr() interrupt 4/接收中断 RI=1 串口中断bb=SBUF;RI=0;仿真电路图2. 双通道显示甲机:#include <reg52.h>#define uchar unsigned char /数据类型的宏定义#define uint unsigned int /数据类型的宏定义 void delay(uint x);void csh();void init1();void init2();sbit EOC=P23;sbit EO=P24;sbit ALE=P25;sbit ADDA=P26;sbit START=P27;void
21、main()csh();while(1)uint aa,bb;init1();aa=P1;init2();bb=P1;ES=0;TI=0;SBUF=aa;while(!TI);TI=0;SBUF=bb;while(!TI);TI=0;ES=1;void init1()ADDA=0;ALE=0; START=0;ALE=1;START=1;EO=0;START=0;while(EOC=0);EO=1; void init2()ADDA=1;ALE=0;START=0;ALE=1;START=1;EO=0;START=0;while(EOC=0);EO=1; void csh()TMOD=0X20
22、;TH1=0xF4;TL1=0XF4;SCON=0x50;PCON=0;EA=1;TR1=1;void delay(uint x) /延时程序,i是形式参数,i为1时 延时约1MSuint i,j;for(i=x;i>0;i-) /变量i由实际参数传入一个值,因此i不能赋初值for(j=0;j<110;j+); 乙机:#include <reg52.h>#define uchar unsigned char /数据类型的宏定义#define uint unsigned int /数据类型的宏定义 void delay(uint x);void write_com(uch
23、ar com);void write_data(uchar date);void csh();void init();void display();sbit rs=P20;sbit en=P22;sbit a0=P23;sbit a1=P24;uint i,j,aa,bb,cc,bai,shi,ge;uchar code table1="tongdao1:"uchar code table2="tongdao2:"uchar code table3="0123456789"uchar code table4=".v"
24、;void main()csh();/中断初始化init();while(1)aa=17*bb/10;/显示1通道bai=aa/100;shi=aa%100/10;ge=aa%10;write_com(0x80);for(i=0;i<9;i+)write_data(table1i);delay(5);display();aa=2*cc;/显示2通道bai=aa/100;shi=aa%100/10;ge=aa%10;write_com(0x80+0x40);for(i=0;i<9;i+) write_data(table2i);delay(5);display();void write_com(uchar com) rs=0;P0=com;delay(5);en=1;delay(5);en=0;void write_data(uchar date) rs=1;P0=date;delay(5);en=1;delay(5);en=0;void display()write_data(table3bai);delay(5);write
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国银行2025巴音郭楞蒙古自治州秋招笔试英语题专练及答案
- 邮储银行2025来宾市半结构化面试15问及话术
- 交通银行2025娄底市秋招结构化面试经典题及参考答案
- 建设银行2025鄂尔多斯市笔试英文行测高频题含答案
- 2025年3D打印的伦理争议
- 交通银行2025荆州市秋招笔试专业知识题专练及答案
- 2025行业市场规模增长动力分析
- 农业银行2025贺州市数据分析师笔试题及答案
- 农业银行2025清远市半结构化面试15问及话术
- 邮储银行2025兰州市半结构化面试15问及话术
- 肝性脑病(课件)
- 【名校】《三思而后行》 完整版课件
- 公司内部程序文件(格式模版)
- 泛光施工招标文件
- 旅游策划实务整套课件完整版电子教案课件汇总(最新)
- DB23∕T 2661-2020 地热能供暖系统技术规程
- 人工挖孔桩施工监测监控措施
- 国家职业技能标准 (2021年版) 6-18-01-07 多工序数控机床操作调整工
- 办公楼加层改造施工组织设计(100页)
- 渗透检测培训教材(1)
- 空调专业常用英文词汇
评论
0/150
提交评论