[Atmel] 用AtmelStudio6.2跑mega16例程(73)压力传感器

[复制链接]
914|0
 楼主| ddllxxrr 发表于 2014-12-23 21:13 | 显示全部楼层 |阅读模式
本程使用MPX4250。程序运行时,传感器向单片机输入电压信号,经A/D转换后,根据技术手册提供的公式进行,最后显示在数码管上。

Proteus仿真截图:



Atmel Studi6.2 运行截图:


程序清单:

  1. /*
  2. * GccApplication38.c
  3. *
  4. * Created: 2014-12-23 20:48:39
  5. *  Author: Administrator
  6. */

  7. #define F_CPU 4000000UL
  8. #include <avr/io.h>
  9. #include <util/delay.h>
  10. #include <stdint.h>
  11. const uint8_t SEG_CODE[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
  12. uint8_t SEG_Display_Buffer[] = {0xF3,0,0,0};
  13.         
  14. void Show_PRESS_ON_DSY()
  15. {
  16.         uint8_t i = 0;
  17.         for(i=0;i<4;i++)
  18.         {
  19.                 PORTD = ~_BV(i);
  20.                 PORTC = SEG_Display_Buffer[i];
  21.                 _delay_ms(4);
  22.         }
  23. }        


  24. int main(void)
  25. {
  26.     int AD_Result,Pressure_Value;
  27.         DDRA = 0x7F; PORTA = 0xFF;
  28.         DDRC = 0xFF; PORTC = 0xFF;
  29.         DDRD = 0xFF; PORTD = 0xFF;
  30.         ADCSRA = 0xe6;
  31.         _delay_ms(2000);
  32.         ADMUX = 0x07;
  33.         
  34.         
  35.         while(1)
  36.     {
  37.         AD_Result = ADCL + (ADCH << 8);
  38.                 Pressure_Value = (AD_Result * 5.0/1023.0/5.1 - 0.04)/0.00369 + 1.99;
  39.                 SEG_Display_Buffer[1] = SEG_CODE[Pressure_Value/100];
  40.                 SEG_Display_Buffer[2] = SEG_CODE[Pressure_Value/10 % 10];
  41.                 SEG_Display_Buffer[3] = SEG_CODE[Pressure_Value%10];
  42.                 if(SEG_Display_Buffer[1]==0x3F)
  43.                 {
  44.                        SEG_Display_Buffer[1] = 0x00;
  45.                            if(SEG_Display_Buffer[2] == 0x3F)SEG_Display_Buffer[2] = 0x00;
  46.                 }
  47.                 Show_PRESS_ON_DSY();
  48.     }
  49. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部