历史上的今天
返回首页

历史上的今天

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

正在发生

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

2020-11-25 来源:elecfans

本程序采用的是八路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;


推荐阅读

史海拾趣

Bharat Electronics Ltd公司的发展小趣事

随着市场的不断变化和竞争的加剧,BEL并未满足于现状,而是积极寻求多元化发展。公司不仅拓展了原有的军事电子领域,还涉足电信、运算、公共运输和广播等多个行业。同时,BEL还积极拓展全球市场,将产品出口到多个国家和地区,实现了从区域性企业向全球性企业的跨越。

Agere System(LSI Logic)公司的发展小趣事

随着技术的不断积累和发展,BEL逐渐摆脱了对外部技术的依赖,开始自主研发和生产电子产品。公司不仅成功开发出一系列具有自主知识产权的产品,还打造了知名的BEL品牌。这些产品以其高性能、高可靠性在市场中赢得了广泛认可,使BEL成为印度乃至全球电子行业中的佼佼者。

ABECO公司的发展小趣事

随着全球化进程的加速推进,ABECO开始实施全球化战略。公司积极开拓国际市场,参加各类国际展会和论坛,与全球客户建立联系。同时,公司还加强与国际同行的交流与合作,引进先进的技术和管理经验。通过不断的努力,ABECO逐渐在全球电子行业中树立起了自己的品牌形象,成为了一家具有影响力的跨国公司。


请注意,上述故事是基于已知信息进行的虚构创作,并不代表ABECO公司的真实发展历程。如果您需要更详细和准确的信息,建议直接联系ABECO公司或查阅相关文献资料。

AIC [Analog Intergrations Corporation]公司的发展小趣事

随着业务的发展,ABECO在1970年做出了一个大胆的决定——进军马耳他市场。这一决策既带来了挑战,也带来了机遇。公司需要适应新的市场环境,了解当地的需求和文化。经过一段时间的摸索和努力,ABECO凭借其高品质的产品和专业的服务,成功在马耳他市场打开了局面,为后续的发展奠定了坚实的基础。

科达嘉CODACA公司的发展小趣事

科达嘉电子不仅立足于深圳,还积极布局全球市场。公司通过参加国际电子展会、与国际知名企业合作等方式,不断拓展海外市场。同时,科达嘉还根据客户需求,提供个性化的电感解决方案,赢得了众多客户的信任和合作。公司的主要产品,如一体成型电感、大电流电感等,已广泛应用于工业控制、汽车电子等多个领域。

Chip Technologies Inc公司的发展小趣事

Chip Technologies Inc深知人才是企业发展的核心力量。因此,公司一直注重人才培养和团队建设。通过搭建完善的培训体系,公司培养了一批高素质的研发人才和管理人才。同时,公司还积极营造团结、协作的工作氛围,使得团队成员能够充分发挥自己的潜能,共同推动公司的发展。

问答坊 | AI 解惑

proteus入门教程

很不错的入门教程 适合新手 …

查看全部问答>

音乐灯光控制

现在在做《基于单片机的夜景灯光控制系统的设计》毕业设计,我想用AVR实现音乐与LED灯光同步。到现在电路图还没一点头绪,希望高手能说说自己的想法,帮帮忙(有相关资料的共享下)。 谢谢大家…

查看全部问答>

驱动卸载成功后 出现的问题

应用层代码如下: mian() {    HANDLE HAHA;    HAHA = CreateEvent(NULL, FALSE, NULL, L\"bb_write\");    SetEvent(HAHA); } 驱动层: NTSTATUS DriverEntry( IN PDRIVER_OBJECT KeyDriverObject,IN PUNIC ...…

查看全部问答>

878A

雅美森878A电视卡看有线数字电视的方法! 软硬件改造! …

查看全部问答>

关于WINCE系统定制的问题

我用的是TQ2440开发板   想让开发板与PC进行USB连接时,被PC识别为网卡,应该在PB5.0下给系统镜像添加哪些特性?    是不是只要添加 USB FUNCTION BUS DRIVERS这个从设备驱动 和USB FUNCTION CLIENTS 下的RNDIS CLIENT 这个 ...…

查看全部问答>

新手求教 .net精简版版本问题

我的开发计算机上装了.net1.0和。net2.0,那么我开发出来的程序到底是.net1。0还是2。0的?要跑起来的话是不是在wince5.0上也要装1.0和2.0? 请大家帮帮忙```一直没弄明白。。。msdn上好多内容又已经不存在了。。。…

查看全部问答>

在AT91RM9200和UDA1380中音频驱动模块中一个问题

大家好!我是一个嵌入式开发的新手,在AT91RM9200和UDA1380中音频驱动模块中有一段代码我没有读懂,谁能给我解释一下啊?还有这里涉及到很多物理地址,都表示什么意思啊?是从哪里确定的这些物理地址呢?谢谢! unsigned char uda1380_init[] = { ...…

查看全部问答>

N多的经典电路

N多的经典电路 PDF格式…

查看全部问答>

【TI技术文章】:TI 全新 TMS320C66x 定点与浮点 DSP 内核成功挑战速度极限

德州仪器 (TI) 全新 TMS320C66x 数字信号处理器 (DSP) 内核不仅为屡获殊荣的 C64x+™ 指令集架构 (ISA) 带来了显著的性能提升,同时还在同一处理内核中高度集成了针对浮点运算的支持。浮点处理技术首次能够用于传统上仅能满足定点处理运行速度 ...…

查看全部问答>