12回答

4收藏

[原创] 【PSOC4】+内部资源充分利用--ADC、UART、LCD、CapSense等

 

英飞凌 英飞凌 11002 人阅读 | 12 人回复 | 2013-11-24

本帖最后由 abu315 于 2013-11-24 17:52 编辑

file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image02***

主要功能:

1、 控制信号输入:
a) 按键:设备通过判断是否有按键按下,实现功能的切换:LCD显示ADC值或是显示PWM的占空比;

b) CapSense:PSoC 4200 使用Delta-Sigma 调制器 (CSD) 来感测外部电容变化,并且可以通过模拟总线连到任意一个GPIO 引脚。硬件连接如下图:

设备通过判断是否有手指按下且按下的位置发生变化来实现功能的切换。当手指在不同的区域按下,LED的颜色随之发生变化。
2、 显示部分
a) Led灯显示:Led灯每一秒闪烁一次,并通过颜色的不同告知用户,设备处于不同的工作状态或功能下;


b) PSoC4包含一个LCD控制器,可以驱动多达四个公共端和32个段。设备应用LCD模块控制LCD1602,用以显示测试数据等,LCD1602的硬件连接如下图:

3、 串口通讯:设备配有RS232串口通讯接口,采用全双工异步通讯方式进行通讯。数据帧共10位,第一位为起始位,中间8位数据位,无奇偶校验位,最后一位为停止位。波特率为9600bps。

a) 读数功能
发送:0x7B 01 FF 7D
接收:dat [0]~ dat [5]
dat[0]= 0x7B;                    //联机命令字"{"
                dat[1]= 0x01;                 //命令字
                dat[2] = Volt_adc >> 8;         //电压高字节
                dat[3] = Volt_adc;             //电压低字节
                dat[4]= Flag_led;              //LED颜色变量
     dat[5] = 0x7D;                    //联机命令字 "}"
b) 设定PWM的占空比
发送:0x7B 02 xx 7D
接收:0x7B 02 xx 7D
xx :PWM的占空比(0~100)
c) 设定LED的颜色
发送:0x7B 03 xx 7D
接收:0x7B 03 xx 7D
01:蓝色
02:绿色
03:红色
4、 信号测量及信号控制等外围电路
a) 定时器的使用
设置定时器每10ms进一次中断,时间变量“Flag_number”自动加1,“Flag_number”每累计100为1s。
b) SAR ADC
设备通过ADC模块对“P1.7”(如下图)的模拟信号进行采样,并将所得的ADC值进行数据处理使之具有意义,并交由LCD显示或串口通讯传给上位机。

c) PWM
设备通过PWM模块产生一个1000Hz的PWM波,初始化时占空比为50%,用于点亮开发板上的LED。通过RS232通讯,设定占空比,调节LED的亮度。


Design01_131111.rar

1.8 MB, 下载次数: 214

分享到:
回复

使用道具 举报

回答|共 12 个

倒序浏览

沙发

newbobde163

发表于 2013-11-25 00:07:10 | 只看该作者

支持一下,很有用的资料
板凳

sacq12

发表于 2013-11-25 09:14:21 | 只看该作者

不错~~。。。。
地板

xiaopaohu123

发表于 2013-11-26 21:59:10 | 只看该作者

支持下哦
5#

fj1161

发表于 2013-11-28 13:43:19 | 只看该作者

赞一个~~~~~~~~~~~~~
第五年了,这次一定要坚持到底,不留遗憾!!!
6#

szwtyh

发表于 2014-6-19 14:12:41 | 只看该作者

学习了!谢谢分享!
7#

夏醒醒

发表于 2015-10-25 21:49:57 | 只看该作者

psoc 5 CY8CKIT-050开发板,

t1=ADC_GetResult16();
t2=ADC_CountsTo_mVolts(t1);
LCD_Position(0,0);
LCD_PrintNumber(t1);
LCD_Position(1,0);
LCD_PrintNumber(t2);
LCD显示的结果为:
255(ADC的分辨率是8位)
5089

请问,通过滑动变阻器,我的模拟输入明明是0~3.3V,为什么会得出5089mv(5.089V),而不是3300mV呢?在线等,请各位高手帮忙分析一下。
8#

名火海

发表于 2015-11-15 16:04:08 | 只看该作者

谢谢楼主,帮我大忙了!!!!!!!1
9#

名火海

发表于 2015-11-16 09:09:30 | 只看该作者

楼主可否将电路截个图,我按上面连得1602没有反应。。。
10#

liyonglin-154679

发表于 2016-1-29 15:36:45 | 只看该作者


学习了!谢谢分享!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条