历史上的今天

今天是:2024年11月25日(星期一)

2020年11月25日 | MSP430单片机对诺基亚5110液晶显示的驱动

发布者:RadiantGaze 来源: elecfans关键字:MSP430  单片机  诺基亚5110  液晶显示  驱动 手机看文章 扫描二维码
随时随地手机看文章

本程序采用的是八路ADC单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC12SC置位一次就可以,但是就需要注意当进入中断后如果不手动禁止中断会一直停留在循环中,因此在采集到需要的数据后需要将ADC关闭或者中断使能禁止才能重新回到主函数,这一点需要注意。

MSP430单片机对诺基亚5110液晶显示的驱动

八路单次采集的程序如下:

八路AD多路单次采集诺基亚5110液晶显示

采集模式:多路单次

#include

#include“LCD5110.h”

#defineuintunsignedint

#defineucharunsignedchar

unsignedcharad0[]=“1:0.0V”;

unsignedcharad1[]=“2:0.0V”;

unsignedcharad2[]=“3:0.0V”;

unsignedcharad3[]=“4:0.0V”;

unsignedcharad4[]=“5:0.0V”;

unsignedcharad5[]=“6:0.0V”;

unsignedcharad6[]=“7:0.0V”;

unsignedcharad7[]=“8:0.0V”;

ucharflag=1;

uinttemp0,temp1,temp2,temp3,temp4,temp5,temp6,temp7;

voidInit_Clk()

{

uchari;

BCSCTL1&=~XT2OFF;//打开XT振荡器

do

{

IFG1&=~OFIFG;//清除振荡错误标志

for(i=0;i《100;i++)

_NOP();//延时等待

}

while((IFG1&OFIFG)!=0);//如果标志为1继续循环等待

IFG1&=~OFIFG;

BCSCTL2|=SELM1+SELS;//MCLK8MandSMCLK1M

}

voidInit_ADC()

{

P6SEL|=0XFF;//信号采集端口选择第二功能

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

ADC12CTL1=SHP+CONSEQ_1;//使用采样时序电路信号+多路单次模式

//上面的寄存器配置采样保持触发源选择时ADC12SC,采集信号使用采样时序电路产生的信号

//转换模式为多路单次复转换上面的设置必须在ENC=0的情况下设置

//设置每个通道的输入端口和参考电压,参考电压默认为AVCC3.3V

ADC12MCTL0=INCH_0;

ADC12MCTL1=INCH_1;

ADC12MCTL2=INCH_2;

ADC12MCTL3=INCH_3;

ADC12MCTL4=INCH_4;

ADC12MCTL5=INCH_5;

ADC12MCTL6=INCH_10;

ADC12MCTL7=INCH_11+EOS;//最后一个通道

ADC12IE=BIT7;//最后一个通道转换完成后使能ADC中断

ADC12CTL0|=ENC;//使能转换

}

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

函数名称:Trans_val

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

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

参数:Hex_Val--16进制数据

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

返回值:无

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

voidTrans_val(ucharptr[6],uintHex_Val)

{

unsignedlongcaltmp;

uintCurr_Volt;

caltmp=Hex_Val;

caltmp=(caltmp《《5)+Hex_Val;//caltmp=Hex_Val*3

Curr_Volt=caltmp》》12;//Curr_Volt=caltmp/2^n

//参考电压为3.3V,所以计算公式应该为Hex_val*3.3/2^n

//乘除计算通过移位来进行可以有效的提高程序运行效率

ptr[2]=(Curr_Volt/10)+0x30;//个位

ptr[4]=(Curr_Volt%10)+0x30;//小数位

}

voidmain()

{

Init_Clk();

Init_ADC();

WDTCTL=WDTPW+WDTHOLD;

LCD_init();

LCD_showsh(0,0,“电压采集:”);

_EINT();//开启全局中断

P5DIR|=BIT5;

P3OUT|=~BIT5;

while(1)

{

ADC12CTL0|=ADC12SC;

LCD_prints(0,2,ad0);

LCD_prints(8,2,ad1);

LCD_prints(0,3,ad2);

LCD_prints(8,3,ad3);

LCD_prints(0,4,ad4);

LCD_prints(8,4,ad5);

LCD_prints(0,5,ad6);

LCD_prints(8,5,ad7);

}

}

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

函数名称:ADC12ISR

功能:ADC中断服务函数

参数:无

返回值:无

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

#pragmavector=ADC_VECTOR

__interruptvoidADC12ISR(void)

{

temp0=ADC12MEM0;

Trans_val(ad0,temp0);

temp1=ADC12MEM1;

Trans_val(ad1,temp1);

temp2=ADC12MEM2;

Trans_val(ad2,temp2);

temp3=ADC12MEM3;

Trans_val(ad3,temp3);

temp4=ADC12MEM4;

Trans_val(ad4,temp4);

temp5=ADC12MEM5;

Trans_val(ad5,temp5);

temp6=ADC12MEM6;

Trans_val(ad6,temp6);

temp7 = ADC12MEM7;


关键字:MSP430  单片机  诺基亚5110  液晶显示  驱动 引用地址:MSP430单片机对诺基亚5110液晶显示的驱动

上一篇:基于MSP430单片机实现ARINC429总线通讯的硬件设计
下一篇:MSP430单片机实现PWM控制LED灯的设计

推荐阅读

我国已连续五年位列全球最大的工业机器人市场,国产工业机器人的占比首次下降—两组数据之后,是中国机器人产业走到了创新能力亟待提升的关键时刻。 2017年,中国工业机器人市场销量再创新高,超过14万台,平均增速达到60%。“但是,整个国产机器人的占比突然下滑6个百分点,这是非常大的特点。” 创新迫在眉睫 “向价值链上游爬升,是中国机器人产业...
AVR 与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、 功能部件、性能和可靠性等多方面有很大的提高和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还 采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR 的,甚至也不能 真正的了解AVR 的特点和长处。功能越好...
投资银行 Cowen 追踪到了市场对 iPhone 12 系列的更强劲需求,并预测苹果可能会有一个惊人的假期季度-生产近 8000 万部 iPhone。基于对 iPhone 12 和 iPhone 12 Pro 的强劲初始需求,分析师 Krish Sankar 将他在 12 月季度的 iPhone 生产预期从上个月的 7600 万部提高至 7900 万部。分析师补充说,12 月季度的 iPhone 出货量...
标定的片内RC 振荡器提供了固定的1.0、2.0、4.0 或8.0 MHz 的时钟。这些频率都是 5V、25°C 下的标称数值。这个时钟也可以作为系统时钟,只要按照Table 13 对熔丝位 CKSEL进行编程即可。选择这个时钟(此时不能对CKOPT进行编程)之后就无需外部器件 了。复位时硬件将标定字节加载到OSCCAL 寄存器,自动完成对RC 振荡器的标定。在 5V, 25°C ...

史海拾趣

问答坊 | AI 解惑

目前MMS存在的主要技术问题及解决方法

(1)MMS手机本身的局限性问题:目前有少数厂商推出了支持MMS业务的彩屏手机,但价格高且可供选择的款式较少。   解决方法:终端厂家尽量推出大多数手机用户能够接收的尽量多种类的MMS终端。   (2)不同品牌手机的兼容性问题:不同品牌的手机之间 ...…

查看全部问答∨

液晶程序(DSP2000系列)

记得前两天有网友调液晶。刚好发现一个实验箱的液晶程序 贴上来,共享。…

查看全部问答∨

关于上拉电阻和下拉电阻的资料

虽然不是我自己整理的,但是我是综合很多的相关资料整理的,发出来不为别的,只为养家糊口,大家看着有用的话就收藏吧! 算了 还是不卖了,来这的新手也不容易,大家实惠才是真的!…

查看全部问答∨

镍氢电池VS锂电池,谁才是真命天子?

电池技术发展到今天,已经走过了铅 酸电池和镍镉电池时代。目前正处于镍氢电池和锂离子电池的绿色电池时代。镍氢电池VS锂电池,谁才是真命天子?周末了解一些动态,分享出来。 2009年6月25日,工信部出台的《新能源汽车生产企业及产品准入管理规则 ...…

查看全部问答∨

socket连续收发数据的问题

   是这样的,我最近在弄socket编程方面的东西。基uC/TCPIP 的,连接是建立好了,就是收发数据有问题:我将收发函数放在循环while(1)里面,发端开始一直发,发了一会就不发了,收端只能接收一次数据,第二次循环到recv时就卡死了…… 想 ...…

查看全部问答∨

VS2005中用vc写入的文件,为什么分别用记事本和写字板打开时格式不一致?

在VS2005中用vc开发wince上的应用程序,在OnTimer中定时向文件逐行写入字符串,部分代码如下: tempstr1.Insert(wcslen(tempstr1),_T("\\n")); CStdioFile file1; CFileException mExcept1;         file1.Open ...…

查看全部问答∨

wince 下用evc来写串口通信。

哪位大虾能发给我个串口通信的实例呀??最好用EVC写的。。感激涕零。\\ 我的邮箱6094189ye@163.com 我看到书上有CSerial 这个类,但STANDARDSDK下面没有这个类呀。。。???…

查看全部问答∨

DOS7.1下如何通过使用USB转串口

我的是DELL1501本本,要实现纯DOS下使用串口(RS232)通信,在市场上买了个prolific USB转串口,不知是否可行?之前试过在DOS下可以使用USB鼠标,和读取USB软驱(B:)里的资料!…

查看全部问答∨

真正的工作中,其实专业并没那么重要

也是偶然看到一个节目,当初算是有炒作的因素在里面,是北大才子卖猪肉。好像是广州那边的,某人在九几年的时候从政府辞职下海,前后做过房地产、醋饮料等。让我感兴趣的是,当其瞅准猪肉市场时,带着自己手下千来口子,一齐转型。于是那些人一齐跨 ...…

查看全部问答∨

rlink的下载速率怎么调

                                  …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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