msp430F149测电压显示在12864上外接一个led

发布者:未来画家最新更新时间:2020-07-29 来源: 51hei关键字:msp430F149  测电压  led 手机看文章 扫描二维码
随时随地手机看文章

注释接口那边不准确,自己判断吧


单片机源程序如下:

/*********************************************************

程序功能:MCU的片内ADC对P6.0端口的电压进行转换

          将模拟电压值显示在1602液晶上。

----------------------------------------------------------

测试说明:调节电位器W1的旋钮观察液晶显示数字变化。

*********************************************************/

#include 

#include  "cry12864.h"

#include  "cry12864.c"

#include  "LED.c"

//typedef unsigned char uchar;

//typedef unsigned int  uint;


#define   Num_of_Results   32


uchar shuzi[] = {"0123456789."};

uchar tishi[] = {"voltage:"};


static uint results[Num_of_Results];    //保存ADC转换结果的数组                                                     // is not used for anything.

void Trans_val(uint Hex_Val);           


/************************主函数****************************/

void main(void)

{

  WDTCTL = WDTPW+WDTHOLD;                   //关闭看门狗

  

  

  /*下面六行程序关闭所有的IO口*/

    P1DIR = 0XFF;P1OUT = 0XFF;

    P2DIR = 0XFF;P2OUT = 0XFF;

    P3DIR = 0XFF;P3OUT = 0XFF;

    P4DIR = 0XFF;P4OUT = 0XFF;

    P5DIR = 0XFF;P5OUT = 0XFF;

    P6DIR = 0XFF;P6OUT = 0XFF;

  

  P6DIR |= BIT2;P6OUT |= BIT2;              //关闭电平转换

  P5DIR|=BIT5;P5OUT&=~BIT5;               //关闭数码管显示

  P6DIR|=BIT6;P6OUT&=~BIT6;                 //半闭数码管显示

  P6DIR|=BIT5;P6OUT&=~BIT5;                 //半闭数码管显示

  LcdReset();                               //复位1602液晶

  DispNChar(0,0,7,tishi);                  //显示提示信息

  Disp1Char(12,1,'V');                      //显示电压单位

  P6SEL |= 0x01;                            // 使能ADC通道

  ADC12CTL0 = ADC12ON+SHT0_8+MSC;           // 打开ADC,设置采样时间

  ADC12CTL1 = SHP+CONSEQ_2;                 // 使用采样定时器

  ADC12IE = 0x01;                           // 使能ADC中断

  ADC12CTL0 |= ENC;                         // 使能转换

  ADC12CTL0 |= ADC12SC;                     // 开始转换

  

  _EINT();

  LPM0;


}


/*******************************************

函数名称:ADC12ISR

功    能:ADC中断服务函数,在这里用多次平均的

          计算P6.0口的模拟电压数值

参    数:无      

返回值  :无

********************************************/

#pragma vector=ADC_VECTOR

__interrupt void ADC12ISR (void)

{

  static uint index = 0;


  results[index++] = ADC12MEM0;               // Move results

  if(index == Num_of_Results)

  {

        uchar i;

        unsigned long sum = 0;


        index = 0;

        for(i = 0; i < Num_of_Results; i++)

        {

            sum += results[i];

        }

        sum >>= 5;                            //除以32

        

        Trans_val(sum);

  }

}


/*******************************************

函数名称:Trans_val

功    能:将16进制ADC转换数据变换成三位10进制

          真实的模拟电压数据,并在液晶上显示

参    数:Hex_Val--16进制数据

          n--变换时的分母等于2的n次方      

返回值  :无

********************************************/

void Trans_val(uint Hex_Val)

{   

    unsigned long caltmp;

    uint Curr_Volt;

    uchar t1,i;

    uchar ptr[4];

   

    caltmp = Hex_Val;

    caltmp = (caltmp << 5)+(caltmp << 4)+(caltmp << 1);           //caltmp = Hex_Val * 33

    caltmp = (caltmp <<3) + (caltmp << 1);     //caltmp = caltmp * 10

   

    Curr_Volt = caltmp >> 12;  

    if(Curr_Volt>300)

             {   

               P6OUT = ~(P6OUT&BIT1);      

             }

             //Curr_Volt = caltmp / 2^n

    ptr[0] = Curr_Volt / 100;                   //Hex->Dec变换

    t1 = Curr_Volt - (ptr[0] * 100);

    ptr[2] = t1 / 10;

    ptr[3] = t1 - (ptr[2] * 10);

    ptr[1] = 10;                                //shuzi表中第10位对应符号"."

    //在液晶上显示变换后的结果

   

    for(i = 0;i < 4;i++)

     Disp1Char((8+ i),1,shuzi[ptr[i]]);

   

           

   

}


关键字:msp430F149  测电压  led 引用地址:msp430F149测电压显示在12864上外接一个led

上一篇:mpu6050六轴传感器msp430驱动程序
下一篇:msp430f5529捕获加串口源码

推荐阅读最新更新时间:2024-11-13 10:16

LED分流器应用于汽车尾灯
应用于汽车照明的严格的照明应用要求电路确保持续的光输出,即使部分LED发生故障。安森美半导体的LED分流器允许电流绕过开路故障的LED。本演示视频展示两个单独的LED分流器应用于汽车尾灯。
[电源管理]
定时器0,中断,控制LED闪烁
#include reg52.h #include stdio.h #define uchar unsigned char #define uint unsigned int sbit LED = P2^2; void timer_init() { TMOD |= 0x01; TH0 = 0x4C; TL0 = 0x00; EA = 1; ET0 = 1; TR0 = 1; } void trigger_timer0() interrupt 1 { static uint i = 0; TH0 = 0x4C; TL0 = 0x00;
[单片机]
高亮度LED的高精度高性价比测试
可见光发光二极管(LED)兼具高效率和长寿命的特点。目前,它们的应用十分广泛。制造商们通过对LED器件的深入研究已经研制出了具有更高光通量、更长寿命、更多色彩和更高每瓦流明数的新器件。精确而高性价比的测试对于确保器件的可靠性和质量至关重要。 LED测试在生产的不同阶段具有不同类型的测试序列,例如设计研发阶段的测试、生产过程中的晶圆级测试、以及封装后的最终测试。尽管LED的测试一般包含电气和光学测量,本文着重探讨电气特征分析,只在适当的位置介绍部分光学测量技术。图1给出了典型二极管的电气I-V曲线。完整的测试应该包含大量 的电压值与对应的电流工作点,但是一般情况下有限的采样点就足以测试出器件的品质因数。 图1. 典型LED的直
[测试测量]
高亮度<font color='red'>LED</font>的高精度高性价比测试
jz2440裸板开发之GPIO:点亮一个led灯(1)
实验目的:点亮一个led灯。(使用arm汇编指令) 实验原理: 在这里点亮一个nLED_2,其对用的引脚是GPF5,在GPIO中,每个引脚对有配置寄存器和数据寄存器,对于本例其配置寄存器为GPFCON:0x56000050,和数据寄存器GPFDATA:0x56000054.要设置GPF5(GPF5为GPFCON的第十和十一引脚,【11,10】=01时为输出)为输出引脚,并根据电路原理图,可知是设为低电平,才能点亮LED2.所以 =0x00000400). =0x00000000 实验步骤: 在linux下编辑源程序,然后利用自己编写的Makefile来对源程序的编译和链接生成bin文件,最后通过文件传输到wi
[单片机]
S3C2440学习之GPIO按键控制LED
/* 名称:S3C2440学习之GPIO按键控制LED灯 说明:这是实验2440GPIO的输入功能。基本的流程和51单片机开发的差不多。都是对GPIO端口寄存器的控制不同的是,51单片机可以直接对进行位控制,而2440中GPIO只能对32位的寄存器进行写入或者读出。这样的话,对于有些逻辑操作要稍微复杂点。还有个不同的是,无论是STM32还是51在进行IO按键输入的时候,都需要进行按键消抖,在这里却没又体现出来按键消抖,这是为什么呢?据我了解是这样,在进行51和STM32实验的时候,按键控制的是数码管(数字增加,降低),所以按键的机械抖动会给数码管数字的变化带来显著的影响。在这里是按键控制led灯的亮和灭,虽然仍然存在机械抖动,
[单片机]
科普LED灯珠损坏的可能原因
LED死灯现象在LED照明行业经常出现,严重影响到了产品的质量和可靠性,也是众厂家关心的问题。LED死灯是由什么原因引起?该如何避免LED死灯的现象是本文探讨的重点。   LED死灯的原因   LED死灯的原因不外乎两种情况:其一,LED的漏电流过大造成PN结失效,使LED灯点不亮,这种情况一般不会影响其他的LED灯的工作;   其二,LED灯的内部连接引线断开,造成LED无电流通过而产生死灯,这种情况会影响其他的LED灯的正常工作,原因是由于LED灯工作电压低(红黄橙 LED工作电压1.8V-2.2V,蓝绿白LED工作电压2.8-3.2V),一般都要用串、并联来联接,来适应不同的工作电压,串联的LED灯越多影响越大,只
[模拟电子]
科普<font color='red'>LED</font>灯珠损坏的可能原因
36V双通道、1.6A同步降压驱动器简化LED调光控制
LT3964可运作于4V至36V的宽广输入范围,提供两个独立控制而可以高达2MHz切换的LED驱动器,透过小型外部零组件构成了高整合度、精省的解决方案。 亚德诺半导体(Analog Devices, Inc.,ADI)宣布推出Power by Linear的LT3964,该元件为一款双通道、36V、高效率、同步、降压型LED驱动器,具内部40V、1.6A电源开关和I2C介面,借此简化LED调光控制。 LT3964运用固定频率、电流模式控制,并作为具准确电流调节的定电流和定电压源运行,以在汽车、工业和建筑照明应用中提供最佳LED照明。在全电流负载时,两个通道同步运行可产生高于94%的效率。 该元件的400kHz I2C介
[半导体设计/制造]
全彩LED显示屏用非对称节能型LAMP器件的设计
  下视角增大后,在同等条件下,非对称器件与常规器件相比,下视角可视范围内亮度提升了 30%。同时,配光的一致性也获得了明显提升,降低了色偏差。由于上视角减小,也减少了上视角范围内的亮度造成的光污染。   关 键 词:光强分布曲线,透镜,非对称,下倾角,光污染   Abstract: The LED Display is usually used in the situation of head-up watching. The luminous intensity distribution in the upward 50% power angle is wasted. This paper presents a new
[电源管理]
全彩<font color='red'>LED</font>显示屏用非对称节能型LAMP器件的设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved