创新实验.docx
- 文档编号:17113539
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:21
- 大小:298.82KB
创新实验.docx
《创新实验.docx》由会员分享,可在线阅读,更多相关《创新实验.docx(21页珍藏版)》请在冰点文库上搜索。
创新实验
Psoc开放实验报告
12240102王喆计通学院计算机科学与技术
(1)班
实验一比较器
一、实验内容
如果真值表特定的一行的变量值为1,则包含变量的名字,比如A。
如果真值表特定的一行的变量值为0,则包含变量名字的取反,比如~A。
二、实验步骤
1、新建工程
(1)启动PSoCCreator软件,点击File–New–Project…弹出新建工程对话框Design栏中使用默认选择的EmptyPSoC3Design。
(2)在“Name”框中输入新工程名称Dsign_1,在“Location”框中输入其存放路径,或通过右侧的按钮指定路径。
之后单击“Advanced”前的加号。
(3)在“Device”中显示上次选用过的芯片或一个默认芯片型号,若新项目需要其他芯片型号,则单击右侧的下箭头,选择“
(4)进入芯片选择对话框,选择CY8C3866AXI-040,点击“OK”。
(5)回到创建新工程对话框,点击“OK”,完成新工程的创建。
2、进行电路图的绘制,完成元器件的连接。
3、进行下载验证。
三、相关截图:
实验二基于逻辑表达式的门电路设计与实现
一、实验内容
术语“乘积”和“和”来自数学,用来描述与(AND)
和或(OR)逻辑操作。
“乘积”定义为多个变量之间的AND关系。
“和”定义
为任意数量逻辑变量的OR关系。
任何逻辑系统能用两种逻辑等效的方法表示,即积之和(SumofProduct,SOP)形式和和之积(ProductofSum,POS)形式。
如果真值表特定的一行的变量值为1,则包含变量的名字,比如A。
如果真值表特定的一行的变量值为0,则包含变量名字的取反,比如~A。
如果关心输出Y为‘1’的行,可以发现当m1,m3,m5时,输出Y为真。
因此,可以写Y,通过简单的逻辑“或”上最小项(这些最小项输出为1)。
输出Y可以
表示为:
二、实验步骤
1.打开PSoCCreator2.0软件,在主界面主菜单下选择File->New->Project…,弹出如图2.1所示的界面,选择Design标签。
在Design标签下,选择EmptyPSoC3Design类型。
在Location右边输入该设计的路径,Name右边给出该设计的工程名字pos_sop,然后点击“OK”按钮。
2.在WorkspaceExplorer界面中,选择Source标签,在该窗口下,选择TopDesign.cysch,鼠标双击该条目,打开原理图界面。
3.在主界面右侧“ComponentCatalog”窗口中,选择Cypress标签栏,并展开Digital,并展开。
找到Logic子条目,并展开。
可以看到在这个子条目下,提供了基本的逻辑门、D触发器、查找(LUT)、逻辑高和逻辑低等资源。
4.在原理图界面中将分别绘制POS和SOP逻辑表达式的逻辑电路。
在该设计中使用的逻辑资源有:
AND、Not、Or。
按照图中的参考电路,将所需要的逻辑门用鼠标拖到原理图界面中,并按照下图放置这些逻辑门。
5.从绘图工具栏中选择连线按钮。
将上图中的逻辑门连接一起。
6.在主界面右侧“ComponentCatalog”窗口中,选择Cypress标签栏,并展开PortsandPins,并展开。
找到DigitalInputPin。
并将DigitalInputPin分别拖到图的位置,引脚的名字分别为Pin_1,Pin_2和Pin_3。
并将其连接到设计中。
7.在主界面右侧“ComponentCatalog”窗口中,选择Cypress标签栏,并展开PortsandPins。
找到DigitaOutputPin,并将DigitalOutputPin分别拖到图的位置,引脚的名字分别为Pin_4和Pin_5。
并将其连接到设计中。
8.双击Pin_1,打开其配置界面。
将其改成A。
9.按步骤8,分别将Pin_2改名为B和将Pin_3改名为C。
在General标签下,将DriveMode改为ResistivePullUP。
10.双击Pin_4,打开配置界面。
将其名字改为Y1
;双击Pin_5,打开配置界面。
将其名字改为Y2。
11.引脚分配:
在WorkspaceExplorer界面中,选择
Source标签,在该窗口下,选择pos_sop.cydwr,鼠标双击该条目,打开引脚分配界面。
12.设计下载与测试:
a.在主界面主菜单下,选择Build->Buildpos_sop,对设计进行编译;
b.给所用的CypressPSoC发板供电,并连接相应的扩
展模块。
c.在主界面主菜单下,选择Debug->Program,将设
计下载到目标系统中;
d.改变开关的高低位置,观察此时两个LED灯按照
相同的规律变化,即验证两种表达式的等效性。
三、相关截图:
实验三计数器
一、实验内容
利用Timer定时器模块产生1s的时间间隔,计数器对该时钟信号进行计数。
计数器计数周期为20,计数结果在1602字符液晶上显示。
二、实验步骤
1、新建工程
(1)启动PSoCCreator软件,点击File–New–Project…弹出新建工程对话框,Design栏中使用默认选择的EmptyPSoC3Design。
(2)在“Name”框中输入新工程名称Counter,在“Location”框中输入其存放路径,或通过右侧的按钮指定路径。
之后单击“Advanced”前的加号。
(3)在“Device”中显示上次选用过的芯片或一个默认芯片型号,若新项目需要其他芯片型号,则单击右侧的下箭头,选择“
(4)进入芯片选择对话框,选择CY8C3866AXI-040,点击“OK”。
(5)回到创建新工程对话框,点击“OK”,完成新工程的创建。
2、选择用户模块
(1)在右侧的原件列表(ComponentCatalog)中用鼠标选择“Digital–Functions–Timer[v2.0]”,拖动到中间的原理图编辑窗口中。
(2)选择“Digital–Functions–Counter[v2.0]”,拖动到中间的原理图编辑窗口中。
(3)选择“Digital–Logic–LogicLow‘0’”,拖动到中间的原理图编辑窗口中。
(4)选择“Display–CharacterLCD[v1.50]”,拖动到中间的原理图编辑窗口中。
图4-1选择的用户模块
3、设置用户模块参数
(1)双击设置BUS_CLK时钟模块参数:
Name:
Clock_1
ClockType:
New
Source:
Specify–Frequency:
100Hz
(2)双击设置Timer_1模块参数:
Name:
Timer_1
Resolution:
8-Bit
Implementation:
UDB
Period:
100
Interrupts:
OnTC
(3)双击设置Counter_1模块参数:
Name:
Counter_1
Configure:
Resolution:
8-Bit
Implementation:
UDB
Period:
20
CompareMode:
LessThanOrEqual
CompareValue:
0
ClockMode:
DownCounter
Advanced:
ReloadCounter:
OnTC
(4)双击设置LCD_Char_1模块参数:
Name:
LCD_Char_1
LCDCustomCharacterSet:
None
在IncludeASCIItoNumber前打勾
4、原理图连线
用原理图窗口左侧的工具栏中的连线工具将Timer_1模块的tc引脚与Counter_1模块的count连接,将Counter_1模块的reset引脚连接LogicLow‘0’模块,将Timer_1和Counter_1模块的clock引脚均连接Clock_1。
5、引脚分配
双击左侧工程文件列表中的Counter.cydwr,为LCDPort[6:
0]选择管脚P6[6:
0]。
6、主程序编写
双击左侧工程文件列表中的main.c,编写主程序代码。
/*========================================
*
*CopyrightYOURCOMPANY,THEYEAR
*AllRightsReserved
*UNPUBLISHED,LICENSEDSOFTWARE.
*
*CONFIDENTIALANDPROPRIETARYINFORMATION
*WHICHISTHEPROPERTYOFyourcompany.
*
*========================================
*/
#include
#include"stdio.h"
//#defineMS_DELAY5u/*Fordelay,about5ms*/
uint32CounterValue=0;
voidmain()
{
/*CharacterarraytoholdtheCounter*/
chardisplayStr[15]={'\0'};
/*Placeyourinitialization/startupcodehere(e.g.MyInst_Start())*/
Clock_1_Start();
Timer_1_Start();
Counter_1_Start();
LCD_Char_1_Start();
LCD_Char_1_Position(0,1);
LCD_Char_1_PrintString("CounterValue:
");
/*CYGlobalIntEnable;*//*Uncommentthislinetoenableglobalinterrupts.
*/
for(;;)
{
/*Placeyourapplicationcodehere.*/
CounterValue=Counter_1_ReadCounter();
/*ConvertCountertostringanddisplayontheLCD*/
sprintf(displayStr,"%7ld",CounterValue);
LCD_Char_1_Position(1,1);
LCD_Char_1_PrintString(displayStr);
}
}
/*[]ENDOFFILE*/
7、程序编译
单击菜单Build-BuildTimer或单击工具栏中的图标,进行工程编译,在下方的输出窗口中可以看到相关信息。
8、下载
(1)用USB下载器连接PC机USB口与实验平台核心板左侧的J5下载口;
(2)将实验平台系统电源VDD选择3.3V供电(即将右侧电源区域内的推拉开关S5拨到下端),实验平台上电;
(3)再选择Debug菜单,点击SelectDebugTarget…:
展开并选择PSoC3器件,点击“connect”,点击Close按钮;
(4)点击菜单Debug–Program或点击工具图标,开始下载;
(5)下载完毕后,实验平台断电。
9、验证
(1)用拨码开关SW1连接PSoC3芯片的P6[0:
6]到1602字符液晶的LCD_DB[4:
7]、LCD_E、LCD_RS、LCD_R/W;
(2)实验平台上电,观察字符液晶模块的显示情况;
(3)实验完毕,关闭电源,取下插针线和USB下载器,将拨码开关恢复原状。
三、相关截图:
实验四方波图实验
一、实验内容:
1根据实验指导书连接相应电路
2对相关参数进行设定
3编写主程序
4对电路程序,主程序进行编译下载
5验证电路是否符合设计要求
6实验结束
二、方波图程序
#include"Opamp_1.h"
uint8Opamp_1_initVar=0u;
voidOpamp_1_Init(void)
{
Opamp_1_SetPower(Opamp_1_DEFAULT_POWER);
}
voidOpamp_1_Enable(void)
{
/*EnablenegativechargepumpsinANIF*/
Opamp_1_PUMP_CR1_REG|=(Opamp_1_PUMP_CR1_CLKSEL|Opamp_1_PUMP_CR1_FORCE);
/*Enablepowertobufferinactivemode*/
Opamp_1_PM_ACT_CFG_REG|=Opamp_1_ACT_PWR_EN;
/*Enablepowertobufferinalternativeactivemode*/
Opamp_1_PM_STBY_CFG_REG|=Opamp_1_STBY_PWR_EN;
}
voidOpamp_1_Start(void)
{
if(Opamp_1_initVar==0u)
{
Opamp_1_initVar=1u;
Opamp_1_Init();
}
Opamp_1_Enable();
}
voidOpamp_1_Stop(void)
{
/*Disablepowertobufferinactivemodetemplate*/
Opamp_1_PM_ACT_CFG_REG&=(uint8)(~Opamp_1_ACT_PWR_EN);
/*Disablepowertobufferinalternativeactivemodetemplate*/
Opamp_1_PM_STBY_CFG_REG&=(uint8)(~Opamp_1_STBY_PWR_EN);
/*DisablenegativechargepumpsforANIFonlyifallABufisturnedOFF*/
if(Opamp_1_PM_ACT_CFG_REG==0u)
{
Opamp_1_PUMP_CR1_REG&=(uint8)(~(Opamp_1_PUMP_CR1_CLKSEL|Opamp_1_PUMP_CR1_FORCE));
}
}
voidOpamp_1_SetPower(uint8power)
{
#if(CY_PSOC3||CY_PSOC5LP)
Opamp_1_CR_REG&=(uint8)(~Opamp_1_PWR_MASK);
Opamp_1_CR_REG|=power&Opamp_1_PWR_MASK;/*Setdevicepower*/
#else
CYASSERT(Opamp_1_HIGHPOWER==power);
#endif/*CY_PSOC3||CY_PSOC5LP*/
}
/*[]ENDOFFILE*/
实验结果:
示波器上出现方波图像。
三、相关截图:
实验五CapSense实验
一、实验内容
利用PSoC3器件的CapSense用户模块实现电容滑条、电容按键功能,并使用字符型小液晶实现电容滑条、电容按键被触摸的状态显示,同时使用LED灯显示电容按键的状态。
二、实验步骤
1、新建工程
(1)启动PSoCCreator软件,点击File–New–Project…弹出新建工程对话框,Design栏中使用默认选择的EmptyPSoC3Design。
(2)在“Name”框中输入新工程名称CapSense,在“Location”框中输入其存放路径,或通过右侧的按钮指定路径。
之后单击“Advanced”前的加号。
(3)在“Device”中显示上次选用过的芯片或一个默认芯片型号,若新项目需要其他芯片型号,则单击右侧的下箭头,选择“
(4)进入芯片选择对话框,选择CY8C3866AXI-040,点击“OK”。
(5)回到创建新工程对话框,点击“OK”,完成新工程的创建。
2、选择用户模块
(1)在右侧的原件列表(ComponentCatalog)中用鼠标选择“CapSense–CapSense_CSD[v2.10]”,拖动到中间的原理图编辑窗口中。
(2)选择“Display–CharacterLCD[v1.50]”,拖动到中间的原理图编辑窗口中。
(3)选择两次“PortsandPins–DigitalOutputPin[v1.50]”,拖动到中间的原理图编辑窗口中。
3、设置用户模块参数
(1)双击设置CapSense_1模块参数:
Name:
CapSense_1
General栏:
Tuningmethod:
Auto(SmartSense)
Numberofchannels:
1
RawDataNoiseFilter:
None
ScanClock:
12MHz
WidgetsConfig栏:
点击Buttons
点击AddButton按钮
Button0:
FingerThreshold:
100
NoiseThreshold:
40
Hysteresis:
5
Debounce:
5
ScanResolution:
12bits
Button1:
FingerThreshold:
100
NoiseThreshold:
40
Hysteresis:
10
Debounce:
5
ScanResolution:
12bits
点击LinearSliders
点击AddLinearSlider按钮
LinearSlider0:
General
NumberofSensorElements:
5
APIResolution:
80
Diplexing:
NonDiplexed
PositionNoiseFilter:
None
Tuning
FingerThreshold:
100
NoiseThreshold:
40
ScanResolution:
12bits
(2)双击设置LCD_Char_1模块参数:
Name:
LCD_Char_1
LCDCustomCharacterSetHorizontalBargraph
IncludeASCIItoNumber
(3)双击设置Pin_1模块参数:
Name:
LED1
Type:
DigitalOutput
General:
DriveMode:
StrongDrive,InitialState:
Low(0)
(4)双击设置Pin_2模块参数:
Name:
LED2
Type:
DigitalOutput
General:
DriveMode:
StrongDrive,InitialState:
Low(0)
4、原理图连线
本实验原理图无需连线。
5、引脚分配
双击左侧工程文件列表中的CapSense.cydwr,为sCmod选择管脚P2[7],为LS_Position_e5~LS_Position_e0选择管脚P5[4:
0],为BTN_B1选择管脚P3[0],为BTN_B2选择管脚P3[1],为LCDPort[6:
0]选择管脚P6[6:
0],为LED1选择管脚P3[6],为LED2选择管脚P3[7]。
6、主程序编写
双击左侧工程文件列表中的main.c,编写主程序代码。
7、程序编译
单击菜单Build-BuildCapSense或单击工具栏中的图标,进行工程编译,在下方的输出窗口中可以看到相关信息。
8、下载
(1)用USB下载器连接PC机USB口与实验套件核心板左侧的J5下载口;
(2)将实验平台系统电源VDD选择3.3V供电,实验平台上电;
(3)再选择Debug菜单,点击SelectDebugTarget…:
展开并选择PSoC3器件,点击“connect”,点击Close按钮;
(4)点击菜单Debug–Program或点击工具图标,开始下载;
(5)下载完毕后,实验套件断电。
9、验证
(1)用插针线连接PSoC3芯片的P3[6]到LED1、P3[7]到LED2,用拨码开关连接LS_Position_e5~LS_Position_e0到P5[4:
0]、BTN_B1到P3[0]、为BTN_B2到P3[1]、LCDPort[6:
0]到P6[6:
0];
(2)实验平台上电,用手指触摸电容滑条、电容按键,观察小液晶和LED1、LED2的显示情况;
(3)实验完毕,关闭电源,取下插针线USB下载器,将拨码开关恢复原状。
三、主程序:
#include
/*NeededforBargraph*/
externuint8constCYCODELCD_customFonts[];
uint16curPos,oldPos;
voidCapSense_DisplayState(void)
{
if(CapSense_CSD_CheckIsWidgetActive(CapSense_CSD_BUTTON0__BTN))
{
LED1_Write(1u);
}
else
{
LED1_Write(0u);
}
if(CapSense_CSD_CheckIsWidgetActive(CapSense_CSD_BUTTON1__BTN))
{
LED2_Write(1u);
}
else
{
LED2_Write(0u);
}
curPos=CapSense_CSD_GetCentroidPos(CapSense_CSD_LINEARSLIDER0__LS);
if(curPos==0xFFFFu)
{
curPos=0u;
}
if(curPos!
=oldPos)
{
oldPos=curPos;
if(curPos!
=0u)
{
LCD_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创新 实验