历史上的今天
返回首页

历史上的今天

今天是:2025年07月29日(星期二)

正在发生

2020年07月29日 | msp430F149测电压显示在12864上外接一个led

2020-07-29 来源:51hei

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


单片机源程序如下:

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

程序功能: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]]);

   

           

   

}


推荐阅读

史海拾趣

DBM REFLEX公司的发展小趣事

DBM REFLEX公司成立于本世纪初,初期以提供光学组件的小规模定制服务为主。创始人对光学技术的深刻理解和对市场的精准把握,使公司迅速在光学器件领域崭露头角。随着技术的不断积累和市场需求的增长,DBM REFLEX逐渐扩大了产品线,开始为LED市场设计、铸模和生产高质量的光学器件。

Chip Technologies Inc公司的发展小趣事

Chip Technologies Inc自成立以来,一直致力于芯片技术的研发与创新。在某一年,公司成功研发出一款具有划时代意义的芯片,这款芯片在功耗、性能及集成度等方面均达到了行业领先水平。这一技术突破迅速赢得了市场的认可,公司订单量激增,业绩大幅提升。随着技术的不断迭代与完善,Chip Technologies Inc逐渐在电子行业树立起了技术领先的形象,并成功吸引了众多投资者的关注。

G24 Innovations公司的发展小趣事

进入21世纪第二个十年,电子行业迎来了前所未有的变革。新技术、新产品的不断涌现,给传统企业带来了巨大挑战。远阳公司敏锐地意识到这一点,迅速启动了转型升级战略。公司加大了对新技术、新工艺的研发投入,不断提升产品的技术含量和附加值。同时,远阳还积极探索智能制造、绿色生产等新模式,推动企业向高质量发展迈进。这一系列的举措,使远阳在激烈的市场竞争中保持了领先地位。

GE Oil & Gas Digital Solutions公司的发展小趣事
在电子技术教学实验中,作为演示电阻测量原理的教具。
GTK UK Ltd公司的发展小趣事
选择响应速度快、灵敏度高、稳定性好的光电传感器。
EREM公司的发展小趣事

近年来,随着科技的快速发展和电子行业的变革,EREM公司也面临着巨大的挑战。为了应对这些变革,EREM积极调整战略方向,加大研发投入,推出了一系列符合市场需求的新产品。同时,EREM还注重人才培养和团队建设,打造了一支高效、专业的团队,为公司的发展提供了有力保障。

问答坊 | AI 解惑

DSP C语言编程的要点

原文地址:http://www.hellodsp.com/bbs/viewthread.php?tid=7756&extra=page%3D1 年初到现在,接触DSP已经半年了,由于公司没有人指导,做了这么久都没出什么大的成果,也走了不少的弯路。以前做单片机用C编过一些程序,个人觉得还可以。现在看来 ...…

查看全部问答>

Driver Examples on the DM642 EVM.pdf

Driver Examples on the DM642 EVM.pdf…

查看全部问答>

GSM系统掉话分析

GSM系统掉话分析 本文介绍了GSM话音掉话产生的种类和原因,并给出了降低掉话率的若干措施。 关键词 掉话 切换 天线 1 前言 掉话率在移动通信网中是一项非常重要的指标,掉话率的高低在一定程度上体现了移动 网通信质量的优劣。不同厂家的设备 ...…

查看全部问答>

在线等待,用单片机模拟标准ps/2键盘,winxp系统,开机初始化不了!!1急

在线等待,用单片机模拟标准ps/2键盘,winxp系统,开机初始化不了!!1急 用单片机模拟标准ps/2键盘,c8051f020片子, 上电,往主机发送键盘自检通过标志0xAA,然后根据键盘发送过来的数据发送不同的数据, 结果现在系统开机自检检不到键盘, 如 ...…

查看全部问答>

应急灯原理图(使用MAX1924V和MAX8970A)

各位XDJM:   附件是我设计的应急灯原理图,请大家指点!…

查看全部问答>

想搞快板子实验,不知道430的开发流程如何,谁来帮个忙发表下!

如题!一直弄着PIC,看到430的功耗更低就想试试!谁知道整套开发工具流程的可以介绍下入门资料,比如编程器以及开发编译环境之类的推荐和简易入门指南都可以!…

查看全部问答>

摘要:一个电子工程师的心历路程

  很久没发帖啦,看到了这篇文章,拿来与大家分享。不做任何评价,自己去领会。 [ 本帖最后由 电子研发_lp 于 2012-5-8 16:35 编辑 ]…

查看全部问答>

基于DSP的三相变频变幅逆变电源

2012 TI C2000及MCU大奖赛,本科组,南华大学,控制系统类,三相变频变幅逆变电源. $(\'swf_OrE\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \' ...…

查看全部问答>

想得到放大倍数较大的比较器

如果想得到放大倍数较大的比较器,用多个等增益的运放实现好还是用一个增益高的运放直接实现好?…

查看全部问答>