有了显示系统,就可以设计功能更强的应用系统了,如发挥GPIO功能的位控装置,利用A/D转换功能的模拟信号采集、分析系统等多方面应用。若配以各种传感器的使用,则更能增强应用的领域。例如使用光敏二极管可感知周围环境的光线变化;如使用热敏电阻,则能感知温度的变化;如使用热释传感器,则能感知周围是否有人员活动;如配置气体传感器则能感知周围是否存在危险气体异常的状况。 在获得采集的模拟信号后,若配置相应的限制,则能自动判别出所处的状态。配上蜂鸣器或继电器,则能够给出声音的提示或自动进行相应的调节控制。 下面这段程序与前面的LCD5110显示系统相结合,能够对外部的模拟信号完成采集处理。 模拟信号采集程序如下: - /******************************************************************************* Function name: main
- ** Descriptions: 软件触发16位单端ADC采集,使用PE20管脚输入,参考源
- 选择电源,使用查询的方式读取ADC
- ******************************************************************************/
- int main (void)
- { INT16U Vout = 0;
- SIM_SCGC5 |= (SIM_SCGC5_PORTA_MASK
- | SIM_SCGC5_PORTB_MASK
- | SIM_SCGC5_PORTC_MASK
- | SIM_SCGC5_PORTD_MASK
- | SIM_SCGC5_PORTE_MASK );
- SystemCoreClockUpdate();
- /* 使能PORT时钟 */
- PORT_ENABLE_CLK(MKL_PORTD);
- LCD_Init();
- LCD_Clear();
- adcInit(); /* 初始化adc */
- while (1) {
- Vout = adcGetUint(); /* 获取adc值 */
- //用LCD5110显示数值, 可改为按键设置限值来进行判别控制。
- LCD_write_english_string(0,3,"V=");
- n=Vout/100+’0’;
- LCD_write_char(n);
- n=Vout%100/10+’0’;
- LCD_write_char(n);
- n=Vout%10+’0’;
- LCD_write_char(n);
- myDelay(100);
- }
- }
复制代码有现在的基础,相信你能按照实际的需求设计出功能强的作品,注意不要忘了分享呀!
|