PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx

上传人:b****5 文档编号:20344865 上传时间:2023-01-22 格式:DOCX 页数:13 大小:122.87KB
下载 相关 举报
PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx_第1页
第1页 / 共13页
PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx_第2页
第2页 / 共13页
PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx_第3页
第3页 / 共13页
PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx_第4页
第4页 / 共13页
PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx

《PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx(13页珍藏版)》请在冰豆网上搜索。

PSOC 重庆邮电大学 电子实训2Word格式文档下载.docx

(3)通过按键设定测量报警门限,当测量电压超过门限,蜂鸣器产生报警声。

1.2系统基本方案选择和论证

要求明确,方案统一:

使用学校YF101PSOC开发板上资源实现目标功能。

1.3元件选择最终方案

对此次设计作品的方案选定:

采用PSOC3作为核心;

采用内部AD作为电压测量计;

采LCD1602字符液晶作为显示模块;

使用四个开关来控制;

蜂鸣器用作报警;

一个串口用于通讯。

第2章背景知识介绍

2.1PSOC与CypressPSOC3简介

2.1.1PSOC简介

可编程化系统单芯片(PSoC),是一种可编程化的混合讯号阵列架构,由一个芯片内建的微控制器(MCU)所控制,整合可组态的类比与数位电路,内含UART、定时器、放大器(amplifier)、比较器、数位类比转换器(ADC)、脉波宽度调变(PWM)、滤波器(Filter)、以及SPI、GPIO、I2C等元件数十种元件,协助客户节省研发时间。

Altera、Atmel、Xilinx、Lattice皆有推出PSoC产品。

实现PSoC有两种方法:

利用FPGA/CPLD;

另一是在ASIC中加入可编程模组。

凭借其独特的可配置模块阵列,PSoC®

3成为一个真正的系统级解决方案,可在单个芯片中提供微控制器单元(MCU)、存储器、模拟和数字外设功能。

CY8C32系列提供了一种新型的信号采集、信号处理和控制方法,并具有高精度、高带宽和高灵活性等特点。

其模拟功能涵盖了从热电偶信号(接近直流电压)到超声波信号的广泛信号范围。

CY8C32系列可以处理数十个数据采集通道和模拟输入,这在每个通用输入/输出(GPIO)引脚上都可实现。

CY8C32系列还是一个高性能的可配置数字系统,部分器件具有USB、多主控内部集成电路(I2C)等接口。

除了通信接口之外,CY8C32系列还具有易于配置的逻辑阵列,至所有I/O引脚的灵活走线,以及高性能的单周期8051微处理器内核。

借助PSoCCreator™这一基于层级的原理图设计输入工具,您可使用丰富的预建组件和布尔基元库来轻松创建系统级设计。

使用CY8C32系列不仅可以实现模拟和数字材料表的集成,而且只需通过简单的固件更新,即可轻松纳入最新的设计变更。

2.1.3所用实验板

YF101PSOC3实验平台

2.2LCD模块

工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)。

1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。

它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。

在PSOC中,字符LCD组件包含一组库例程,通过这些库例程易于使用遵循Hitachi44780标准4位接口的一行、两行或四行LCD模块。

该组件提供API用于实现水平和垂直条形图,您也可以创建和显示自己的自定义字符。

使用字符LCD组件可向产品用户,或在设计和调试过程中的开发人员显示文本数据。

2.3PSOC中的AD模块

`DeltaSigma模数转换器(ADC_DelSig)可为精密测量应用提供低功耗、低噪声前端。

它可用于多种应用,具体取决于分辨率、采样速率和操作模式。

它能够对16位音频进行高速低分辨率通信处理,并且能够对应变计、热电偶和其他高精度传感器进行高精度的20位低速转换。

处理音频信息时,ADC_DelSig采用连续操作模式。

当用于扫描多个传感器时,ADC_DelSig采用其中一个多样本采样模式。

用于单点高分辨率测量时,ADC_DelSig采用单一样本采样模式。

Deltasigma转换器使用过采样在更广泛的频谱上扩展量化噪声。

该噪声的形成是为了将其大部分移至输入信号的带宽之外。

内部低通滤波器用于滤出所需输入信号带宽外的噪声。

这使delta-sigma转换器能够良好地用于高速中分辨率(8至16位)和低速高分辨率(16至20位)应用。

采样速率可调整为每秒10至384000次采样,具体取决于工作模式和分辨率。

选择转换模式可简化与音频等单流信号的连接,或多个信号源间的复用。

特点:

分辨率可选,8至20位;

每个分辨率有11个输入范围;

采样速率为8到384ksps;

工作模式:

单样本采样模式、多样本采样模式、连续模式、多样本(加速)采样模式;

高输入阻抗输入缓冲器;

可选的输入缓冲器增益(1、2、4、8)或输入缓冲器旁路;

多个内部或外部电压参考选项;

自动功耗配置;

最多四个ADC动态配置。

2.4PSOC中的串口模块

UART提供异步通信,常用串行异步通信设备为RS232或RS485。

UART组件可配置为全双工、

半双工、单接收RX或单发送TX通信方式。

所有通信方式都提供相同的基本功能。

它们之间的差异仅在于使用的资源量。

为了帮助处理UART接收和传送数据,提供了独立大小可配置的缓冲区。

SRAM中的独立循环接收和发送缓冲区和硬件FIFO缓冲区可确保数据不会被遗漏。

这种机制有利于CPU利用更多的时间处理关键的实时任务而不是专职服务UART。

在多数应用中,可通过选择波特率、奇偶校验、数据位数以及起始位数轻松配置UART。

RS232最常见的配置通常列为“8N1”(全称为八个数据位、无奇偶校验、一个停止位)。

这是UART组件的默认配置。

因此,在多数应用中只需设置波特率。

UART的第二个常见用途是用于多节点RS485网络。

UART组件支持带有硬件地址检测功能的9位寻址模式,以及用于在传输过程中控制TX收发器和输出的使能信号。

UART具有悠久的历史,因此随时间推移产生了许多物理层和协议层的接口形式。

这些接口形式包括(但不限于)RS423、DMX512、MIDI、LIN总线、传统终端协议和IrDa。

为了支持常用的UART接口形式,UART组件支持对数据位数、停止位数、奇偶校验、硬件流控制以及奇偶校验生成和检测的配置。

第3章系统硬件设计

3.1电路设计框图

3.2系统硬件概述

ADC:

16-bit连续模式10000SPS参考电压1.024*6V轨到轨

UART:

双工9600Baud(8,N,1)查询方式

五个IO口:

四个按键和一个蜂鸣器

LCD:

字符型LCD屏幕

第4章系统的软件设计

4.1程序流程框图

参考文献

[1]ADC_DelSig_v3_20[EB/OL]2015.3.8

[2]Component-CharacterLCD(CharLCD)V2.0-Chinese[EB/OL]2015.3.8

[3]Datasheet-PSoC-3CY8C32_001-92498_ZH[EB/OL]2015.3.8

[4]CyPins_V_2.0_001-91644_0A_ZH[EB/OL]2015.3.8

[5]UART[EB/OL]2015.3.8

[6]ADC_DifferentialMode[EB/OL]2015.3.8

[7]USBFS_V2.70_001-92681_ZH[EB/OL]2015.3.8

附录:

整个工程的网盘分享地址:

Main.c

#include<

project.h>

int16hv=0,lv=0;

intmain()

{

charch,rstr[6]={0},bell=0;

uint16result,i;

uint32rsum=0;

isr_1_Start();

CyGlobalIntEnable;

UART_1_Start();

LCD_Start();

ADC_DelSig_1_Start();

ADC_DelSig_1_StartConvert();

LCD_Position(0u,0u);

LCD_PrintString("

Vc="

);

while

(1)

{

rsum=0;

for(i=0;

i<

1000;

i++)

while(ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_RETURN_STATUS)==0);

rsum+=ADC_DelSig_1_GetResult32();

//result=ADC_DelSig_1_CountsTo_mVolts(output);

}

result=ADC_DelSig_1_CountsTo_mVolts((rsum+500)/1000);

LCD_Position(0u,6u);

LCD_PrintNumber(result);

mV"

UART_1_PutString("

V="

UART_1_PutChar('

0'

+result/1000);

+(result%1000)/100);

+(result%100)/10);

+result%10);

mV\n"

/*Ifbytereceived*/

6;

{

ch=UART_1_GetChar();

if(ch!

=0u)

rstr[i]=ch;

if(rstr[5]!

='

E'

rstr[i]=0;

elseif(rstr[0]=='

H'

hv=(rstr[1]-'

)*1000+(rstr[2]-'

)*100+(rstr[3]-'

)*10+(rstr[4]-'

L'

lv=(rstr[1]-'

LCD_Position(1u,0u);

Vr="

if(hv==0&

&

lv==0)

LCD_Position(1u,4u);

Null"

elseif(hv<

=lv)

Error"

else

LCD_PrintNumber(lv);

LCD_PutChar('

-'

LCD_PrintNumber(hv);

mV"

Bell_Write(0x00);

if(hv>

lv)

if(result<

lv||result>

hv)

//bell=~bell;

Bell_Write(0xff);

}

}

中断服务函数头部

中断服务函数

CY_ISR(isr_1_Interrupt)

/*PlaceyourInterruptcodehere.*/

/*`#STARTisr_1_Interrupt`*/

charflag=0;

while(SET_Read==0);

isr_1_Stop();

if(ADD_Read()==1)

CyDelay(5);

if(flag==0)

lv+=100;

hv+=100;

while(ADD_Read());

if(SUB_Read()==1)

if(flag==0)

lv-=100;

if(lv<

0)

lv=0;

hv-=100;

if(hv<

hv=lv;

while(SUB_Read());

if(OK_Read()==0)

break;

while(OK_Read()==0);

if(SET_Read()==0)

flag=1;

flag=0;

if(hv<

lv)

hv=lv;

while(SET_Read()==0);

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1