如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
4.1A/D采集与LED显示实验目的:实现A/D采集和LED显示,即在参考电压为5V的情况下,从外部输入0~5V电压,经过芯片处理后使LED逐个点亮。实验步骤:1):打开PSOCDesigner,进入模块选择界面,选择12位的A/D转换器——ADCINC12,选择4个PWM8模块,以及一个PGA模块;2):进入连接模块界面,将所有的模块安放,并将4个PWM8依次连接P20~P23四个I/O口;3):配置模块参数,以及总资源参数;4):所有配置及连接图如下所示:(图一)总资源配置,其他的都不变只是将VC1,VC2,VC3以及VC3Divider配置为图中所示即可;图(二)ADCINC12资源配置;图(三)PGA_1资源配置;图(四)PWM8_1资源配置;PWM8_2,PWM8_3,PWM8_4和PWM8_1的其他配置一样,只有CompareOut输出不同,依次选择Row_0_Output_0,Row_0_Output_1,Row_1_Output_2,Row_1_Output_3;5):按照上述配置好资源后,即可以编写程序了,进入编写程序界面,输入下面程序:#include<m8c.h>//partspecificconstantsandmacros#include"PSoCAPI.h"//PSoCAPIdefinitionsforallUserModulesintiResult,n;//ADCresultvariablevoidmain(){BYTEb,c;//BarGraphpositionPGA_1_Start(PGA_1_MEDPOWER);//TurnonPGApowerADCINC12_1_Start(ADCINC12_1_MEDPOWER);//TurnonADCpowerADCINC12_1_GetSamples(0);//SampleforeverM8C_EnableGInt;//EnableGlobalinterruptswhile(1)//Mainloop{if(ADCINC12_1_fIsDataAvailable()!=0)//IfADCsampleisready...{iResult=ADCINC12_1_iGetData();//Getresult,converttounsignedandclearflagADCINC12_1_ClearFlag();n=(int)(iResult/512+2);switch(n){case0:PWM8_1_Stop();//所有的LED都灭PWM8_2_Stop();PWM8_3_Stop();PWM8_4_Stop();break;case1://点亮一个LEDPWM8_1_Start();PWM8_1_EnableInt();PWM8_2_Stop();PWM8_3_Stop();PWM8_4_Stop();break;case2://点亮两个LEDPWM8_2_Start();PWM8_2_EnableInt();PWM8_3_Stop();PWM8_4_Stop();break;case3://点亮三个LEDPWM8_3_Start();PWM8_3_EnableInt();PWM8_4_Stop();break;case4://点亮四个LEDPWM8_4_Start();PWM8_4_EnableInt();break;}}}}实验结果:输入程序后调试好后即可以运行程序;在连接开发板和电脑后需要对软件进行设置:在project里选择setting,选择USB如下图:在tools里的option里选择如下图:当旋转电位器时可以看到四个LED将逐个被点亮或者熄灭。4.2数字脉宽调制PWM模块实验PSoC器件集成了8位和16位的通用可编程脉宽调制模块,脉宽调制模块通常要占用1~2个PSoC数字模块资源,这主要取决于要使用的PWM模块的位宽。它具有周期和脉宽编程实时修改的特点,模块的时钟和使能信号具有多个信号源,方便用户使用。实验目的:通过本实验实现用PWM来控制,使LED闪烁;实验步骤:1):打开PSOCDesigner,进入模块选择界面,选择四个PWM8模块;2)::进入连接模块界面,安放模块,并将4个PWM8依次连接P20~P23四个I/O口;3):配置模块参数,以及总资源参数;4):所有配置及连接图如下所示:(图一)总资源配置,其他的都不变只是将VC1,VC2,VC3以及VC3Divider配置为图中所示即可;图(二)PWM资源配置;PWM8_2,PWM8_3,PWM8_4和PWM8_1的