【TB作品】MSP430 G2553 单片机口袋板,读取单片机P1.4电压显示,ADC

功能

读取P1.4电压,显示到口袋板显示屏,电压越高亮灯越多。

部分程序

cpp 复制代码
    while (1)
    {

        ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
        LPM0;
        adcvalue = ADC10MEM;             //原始数据 0到1023
        adtest = (float) adcvalue / 1024.0 * 3.3;

        dis_num_6(adtest);             //显示电压

        //电压最大值最小值限制
        if (adcvalue <= min_YIN)
            adcvalue = min_YIN;
        if (adcvalue > max_YIN)
            adcvalue = max_YIN;

        //偏差值
        adcvalue = adcvalue - min_YIN;

        //总体范围
        temp1 = max_YIN - min_YIN;

        //每一段多少
        duan = temp1 / 8;

        //控制小灯怎么点亮
        if (adcvalue > duan * 7)             //0就是点亮 1就是不亮  这里表示8个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 0); /* 指定0号管脚输出为0 */
            PinOUT(3, 0); /* 指定1号管脚输出为0 */
            PinOUT(4, 0); /* 指定0号管脚输出为0 */
            PinOUT(5, 0); /* 指定1号管脚输出为0 */
            PinOUT(6, 0); /* 指定0号管脚输出为0 */
            PinOUT(7, 0); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > duan * 6)             //0就是点亮 1就是不亮  这里表示7个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 0); /* 指定0号管脚输出为0 */
            PinOUT(3, 0); /* 指定1号管脚输出为0 */
            PinOUT(4, 0); /* 指定0号管脚输出为0 */
            PinOUT(5, 0); /* 指定1号管脚输出为0 */
            PinOUT(6, 0); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > duan * 5)             //0就是点亮 1就是不亮  这里表示6个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 0); /* 指定0号管脚输出为0 */
            PinOUT(3, 0); /* 指定1号管脚输出为0 */
            PinOUT(4, 0); /* 指定0号管脚输出为0 */
            PinOUT(5, 0); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > duan * 4)             //0就是点亮 1就是不亮  这里表示5个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 0); /* 指定0号管脚输出为0 */
            PinOUT(3, 0); /* 指定1号管脚输出为0 */
            PinOUT(4, 0); /* 指定0号管脚输出为0 */
            PinOUT(5, 1); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > duan * 3)             //0就是点亮 1就是不亮  这里表示4个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 0); /* 指定0号管脚输出为0 */
            PinOUT(3, 0); /* 指定1号管脚输出为0 */
            PinOUT(4, 1); /* 指定0号管脚输出为0 */
            PinOUT(5, 1); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > duan * 2)             //0就是点亮 1就是不亮  这里表示3个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 0); /* 指定0号管脚输出为0 */
            PinOUT(3, 1); /* 指定1号管脚输出为0 */
            PinOUT(4, 1); /* 指定0号管脚输出为0 */
            PinOUT(5, 1); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > duan * 1)             //0就是点亮 1就是不亮  这里表示2个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 0); /* 指定1号管脚输出为0 */
            PinOUT(2, 1); /* 指定0号管脚输出为0 */
            PinOUT(3, 1); /* 指定1号管脚输出为0 */
            PinOUT(4, 1); /* 指定0号管脚输出为0 */
            PinOUT(5, 1); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else if (adcvalue > 50)             //0就是点亮 1就是不亮  这里表示1个灯全部亮
        {
            PinOUT(0, 0); /* 指定0号管脚输出为0 */
            PinOUT(1, 1); /* 指定1号管脚输出为0 */
            PinOUT(2, 1); /* 指定0号管脚输出为0 */
            PinOUT(3, 1); /* 指定1号管脚输出为0 */
            PinOUT(4, 1); /* 指定0号管脚输出为0 */
            PinOUT(5, 1); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }
        else             //0就是点亮 1就是不亮  这里表示0个灯全部亮
        {
            PinOUT(0, 1); /* 指定0号管脚输出为0 */
            PinOUT(1, 1); /* 指定1号管脚输出为0 */
            PinOUT(2, 1); /* 指定0号管脚输出为0 */
            PinOUT(3, 1); /* 指定1号管脚输出为0 */
            PinOUT(4, 1); /* 指定0号管脚输出为0 */
            PinOUT(5, 1); /* 指定1号管脚输出为0 */
            PinOUT(6, 1); /* 指定0号管脚输出为0 */
            PinOUT(7, 1); /* 指定1号管脚输出为0 */
        }

    }
}

// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
    LPM0_EXIT;
}

全部的代码

cpp 复制代码
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2
相关推荐
还是做不到嘛\.38 分钟前
Dvwa靶场-SQL Injection (Blind)-基于sqlmap
数据库·sql·web安全
笨笨饿39 分钟前
20_Git 仓库使用手册 - 初学者指南
c语言·开发语言·嵌入式硬件·mcu·学习
不写八个1 小时前
PHP教程004:php链接mysql数据库
数据库·mysql·php
freshman_y1 小时前
STM32工程模板如何配置
stm32·单片机·嵌入式硬件
Dylan~~~1 小时前
深度解析Cassandra:分布式数据库的王者之路
数据库·分布式
荒川之神2 小时前
Oracle HR 模式递归函数练习(基于 employees 表)
数据库·oracle
小陈工2 小时前
2026年3月31日技术资讯洞察:AI智能体安全、异步编程突破与Python运行时演进
开发语言·jvm·数据库·人工智能·python·安全·oracle
杨云龙UP3 小时前
Linux生产环境下Oracle RMAN 备份、核查、清理与验证常用命令整理_20260330
linux·运维·服务器·数据库·oracle
橙子家3 小时前
关于列式存储(Column-base Storage)的几个要点解读
数据库
v先v关v住v获v取3 小时前
风电机变桨系统8张cad+设计说明书+三维图
科技·单片机·51单片机