当前位置:首页 > 单片机 > 单片机
[导读] #include"MSP430x22x4.h"#defineucharunsignedchar#defineuintunsignedint#definecomm0#definedat1#definesclk_1P4OUT|=0x01//sclk=1;001----p4.0#definesclk_0P4OUT&=0x06//sclk=0;110----p4.1#define

#include"MSP430x22x4.h"
#defineucharunsignedchar
#defineuintunsignedint
#definecomm0
#definedat1

#definesclk_1P4OUT|=0x01//sclk=1;001----p4.0
#definesclk_0P4OUT&=0x06//sclk=0;110----p4.1
#definestd_1P4OUT|=0x02//std=1;010
#definestd_0P4OUT&=0x05//std=0;101

/***********数组及变量定义***************************/

ucharxian[]={
"****************"
"M=g"
"此物体重量为:"
"****************"
};

ucharcaidan1[]={"0123456789"};


floatad_value,data;
ucharai=0;

/*************************延时函数********************************/

voiddelay(ucharaj)
{
while(aj--);
}

voidDELAY(ucharaj)
{
for(ucharak=0;ak<500;)
while(aj--);
}


/*
********************************************************************************
*模块名称:wr_LCD定义
*完成日期:08-07-29
*修改内容:none
********************************************************************************
*///********写命令/数据***************************************************
voidwr_lcd(unsignedchardat_comm,unsignedcharcontent)
{
unsignedchara,b,i,j;
delay(50);
a=content;
//cs_1;//P4OUT|=0x04//cs=1;0100
sclk_0;//P4OUT&=0x06//sclk=0;0110
std_0;//P4OUT&=0x05//std=0;0101
std_1;//P4OUT|=0x02//std=1;0010
for(i=0;i<5;i++)//
{sclk_1;sclk_0;}
std_0;
sclk_1;
sclk_0;
if(dat_comm)std_1;

else
std_0;
sclk_1;
sclk_0;
std_0;
sclk_1;
sclk_0;
for(j=0;j<2;j++)
{
for(i=0;i<4;i++)
{b=a;
if((b&=0x80)==0)
{std_0;a=a<<1;}
else
{std_1;a=a<<1;}
sclk_1;sclk_0;
}
std_0;
for(i=0;i<4;i++)
{sclk_1;sclk_0;}
}
}
/*********************************************************************************
*模块名称:初始化定义
*完成日期:08-7-29
*修改内容:none
********************************************************************************
*/
voidinit_lcd(void)
{
wr_lcd(comm,0x30);/*30---基本指令动作*/
wr_lcd(comm,0x01);/*清屏,地址指针指向00H*/
delay(100);
wr_lcd(comm,0x06);/*光标的移动方向*/
wr_lcd(comm,0x0c);/*开显示,关游标*/
}

/*
********************************************************************************
*模块名称:清DDRAM定义
*完成日期:08-7-29
*修改内容:none
********************************************************************************
*/
voidclrram(void)
{
wr_lcd(comm,0x30);
wr_lcd(comm,0x01);
delay(180);
}

/*
********************************************************************************
*模块名称:显示汉字或字符定义
*完成日期:08-7-29
*修改内容:none
********************************************************************************
*/
voidchn_disp(unsignedchar*chn)
{
unsignedchari;
wr_lcd(comm,0x30);
wr_lcd(comm,0x80);

for(i=0;i<64;i++)
wr_lcd(dat,chn[i]);
}

//****************lcd_mesg定点显示***********************************
voidlcd_mesg(uintgao,ucharp,ucharq)
{
uintadder1,adder2,adder3,adder4;
adder1=gao/1000,gao=gao-adder1*1000;
adder2=gao/100,gao=gao-adder2*100;
adder3=gao/10,adder4=gao%10;

wr_lcd(comm,p);
wr_lcd(dat,caidan1[adder1]);delay(20);
wr_lcd(dat,caidan1[adder2]);delay(20);
wr_lcd(comm,q);
wr_lcd(dat,caidan1[adder3]);delay(20);
wr_lcd(dat,caidan1[adder4]);delay(20);
}

/**************初始化函数*************************************/

voidinit_port(void)
{
P3DIR=0XBF;//P3.6---A6,10111111
P3SEL=0XBF;
P3OUT=0X00;

P4DIR=0XFF;
P4SEL=0X00;
P4OUT=0;

ADC10CTL0=0;
ADC10CTL0|=REFON+SREF_0;//正参考AVCC,AVSS地为负参考
ADC10CTL0|=ADC10ON+ADC10SHT_3+ADC10IE;//打开ADC10内核,设定采样保持时间为64个ADC10CLK,使能ADC10中断

ADC10CTL1=0;
ADC10CTL1|=INCH_6+CONSEQ_0+SHS_0;//选择第6通道,转换模式为单通道单次模式采样信号源为ADC10SC
ADC10CTL1|=ADC10SSEL_0+ADC10DIV_3;//转换内核时钟源为ADC10OSC分频系数4分频
delay(20);//等待参考稳定
ADC10CTL0"=ENC+ADC10SC;//启动AD转换

_EINT();

return;
}


/*******************主函数*****************************************/
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//关看门狗

BCSCTL1=CALBC1_1MHz;//设定DCO为1MHZ
DCOCTL=CALBC1_1MHZ;

init_port();
init_lcd();

chn_disp(xian);


while(1)
{
ADC10CTL0&=~ENC;//关闭AD转换
ADC10CTL0|=ENC+ADC10SC;//启动AD转换

lcd_mesg(data,0x8b,0x8c);
delay(20);
}
}


#pragmavector=ADC10_VECTOR//ADC10中断服务
__interruptvoidadc_isr(void)
{
ADC10CTL0&=~ENC;//关闭AD转换

ad_value=ADC10MEM;//保存AD结果ADC10MEM=1023*(Vin/VR+)

data=((ad_value-390)*10-150);
ADC10CTL0|=ENC+ADC10SC;//启动AD转换
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对PLC的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: PLC 模块化 程序

对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一。一般是优化了代码的尺寸,就会带来执行时间的增加;如果优化了程序的执行速度,通常会带来代码增加的副作用。很难鱼与熊掌兼得,只能在...

关键字: 单片机 程序

一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,必须选择合适的算法和数据结构。

关键字: CPU 程序 缓存

目前,随着现代大型燃煤火力发电机组的装机容量越来越大,现代大型燃煤火力发电机组每天消耗的燃煤量也逐步增加,而称重式给煤机作为燃煤输送、称重及调节自动化的重要辅助设备,其稳定可靠性、称重计量准确性对机组的安全经济运行及燃煤...

关键字: 给煤机 称重 稳定性

仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。

关键字: 单片机 仿真器 程序

步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。

关键字: 步进电机 正反转 程序

KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写...

关键字: 程序 编译 链接

双方各执一词,谁也不退让,吴雄昂的身份成为薛定谔的猫:在Arm公司眼中,他已经被罢免一切职位;在安谋中国声明里,吴仍然一切照常。这种叠加态或许还会持续一段时间,但叠加态应该很快就会塌缩成一个确定结果。同样,安谋中国董事会...

关键字: ARM 中国董事会 程序

除了指令空间,自定义指令对应的程序出入口也有严格限制。自定义指令在使用过程中出现任何错误时,Arm的工具链都能及时对其进行识别、提取,并且进行相应的控制。目前也已经有第三方编译器,可以识别自定义指令集可能会出现的错误。专...

关键字: 指令空间 程序 ARM

如果说一众美国科技公司遵循特朗普命令断供华为,还算某种程度上维护所谓程序正义不得已而为之;那么各路本应对政治保持中立的国际技术标准组织,先后宣布剔除华为成员资格,绝对算助纣为虐;而联邦快递将华为委托寄送目的地为中国的快递...

关键字: 快递 华为 程序
关闭