CYPRESS psoc4初次使用感想三 —— 电子温度计

PsoC4内置了温度传感模块,因此可以使用此模块取得环境温度并将结果输出到显示屏上,实现同时显示摄氏温度和绝对温度的功能。


要用到的材料:

公头杜邦线12根;

1602液晶屏一个;

PsoC4开发板一块;

1.1KOhm电阻一枚;

USB线一条。


温度信息在1602上这样显示,上方显示绝对温度, 下方显示摄氏温度:

TempK = 300.15 °K

TempS  = 27        °C


然后设计需要用到的组件:



根据针脚定义图确定接线位置:

http://blog.csdn.net/firedom/article/details/17028489

http://pan.baidu.com/s/1f7r3B 第13页说明



连接好后会像这个样子:


然后链接电源和背光线和对比度控制线:


将一个1.1KOhm电阻接在对比度控制端,使文字更容易辨认。

然后是程序:

#include <device.h>
#include <stdio.h>
#define CH0_N           0x00u
#define TEMP_CH         0x01u
#define DELAY_1SEC      1000u
volatile uint32 dataReady = 0u;
volatile int16 result[ADC_SAR_SEQ_TOTAL_CHANNELS_NUM];
volatile uint32 timer_delay = 0u;


void main()
{
    float temperature;
    LCD_Start();
    LCD_Position(0u,0u);
    LCD_PrintString("TempK =       ");
    LCD_PutChar(LCD_CUSTOM_0);
    LCD_PutChar('K');
    LCD_Position(1u,0u);
    LCD_PrintString("TempS =       ");
    LCD_PutChar(LCD_CUSTOM_0);
    LCD_PutChar('C');
    PWM_Start();
    PWM_TriggerCommand(PWM_MASK, PWM_CMD_START);
    ADC_SAR_SEQ_Start();
    ADC_SAR_SEQ_StartConvert();
    ADC_SAR_SEQ_IRQ_StartEx(ADC_SAR_SEQ_ISR_LOC);
    ISR_TIMER_StartEx(ISR_TIMER_LOC);
    CyGlobalIntEnable;

    while(1)
    {
        if((dataReady & ADC_SAR_SEQ_INJ_EOC_MASK) != 0u)
        {
            dataReady &= ~ADC_SAR_SEQ_INJ_EOC_MASK;
            temperature = DieTemp_CountsTo_Celsius(result[TEMP_CH]);
            LCD_Position(0u,8u);
            LCD_PrintString("    ");
            LCD_Position(0u,8u);      
            LCD_PrintNumber(temperature + 273);
            LCD_PutChar('.');
            LCD_PrintNumber(15);
            LCD_Position(1u,8u);
            LCD_PrintString("     ");
            LCD_Position(1u,8u);
            LCD_PrintNumber((float)temperature);
        }
    }
}



最后是成品展示:


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值