历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2018年01月30日 | 称重计程序

2018-01-30 来源:eefocus

#include "MSP430x22x4.h"  
#define uchar unsigned char 
#define uint  unsigned int 
#define comm  0 
#define dat   1 

#define sclk_1   P4OUT|=0x01         //sclk=1;  001----p4.0 
#define sclk_0   P4OUT&=0x06         //sclk=0;  110----p4.1 
#define std_1    P4OUT|=0x02         //std =1;  010 
#define std_0    P4OUT&=0x05         //std =0;  101 

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

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

uchar caidan1[]={"0123456789 "}; 


float ad_value,data; 
uchar ai=0; 

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

void delay(uchar aj) 

  while(aj--); 


void DELAY(uchar aj) 

  for(uchar ak=0;ak<500;) 
    while(aj--); 



/* 
******************************************************************************** 
*模块名称:wr_LCD定义 
*完成日期:08-07-29 
*修改内容:none 
******************************************************************************** 
*///********写命令/数据*************************************************** 
void wr_lcd (unsigned char dat_comm,unsigned char content) 

  unsigned char a,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 
******************************************************************************** 
*/ 
void init_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 
******************************************************************************** 
*/ 
void clrram (void) 

  wr_lcd (comm,0x30); 
  wr_lcd (comm,0x01); 
  delay (180); 


/* 
******************************************************************************** 
*模块名称:显示汉字或字符定义 
*完成日期:08-7-29 
*修改内容:none 
******************************************************************************** 
*/ 
void chn_disp(unsigned char *chn) 

  unsigned char i; 
  wr_lcd (comm,0x30); 
  wr_lcd (comm,0x80); 
   
  for (i=0;i<64;i++) 
    wr_lcd (dat,chn[i]); 


//****************lcd_mesg定点显示*********************************** 
void  lcd_mesg(uint gao,uchar p,uchar q) 

  uint adder1,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); 


/**************初始化函数*************************************/     
     
void init_port(void) 

  P3DIR=0XBF;   //P3.6---A6,   1011 1111 
  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; 



/*******************主函数*****************************************/ 
void main(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); 
  } 



#pragma vector = ADC10_VECTOR //ADC10 中断服务 
__interrupt void adc_isr(void) 

ADC10CTL0 &= ~ENC;                     //关闭AD转换 
      
ad_value=ADC10MEM; //保存AD 结果   ADC10MEM=1023*(Vin/VR+) 

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


推荐阅读

史海拾趣

Eby Company公司的发展小趣事

为了提供更好的物流服务,eBay推出了国际运送计划(eBay International Shipping)。该计划允许卖家将来自同一订单的多件物品合并在一个包裹中运送,从而减少了买家支付的运费。这一举措不仅提高了物流效率,也增加了买家的购买意愿。eBay还与其他物流公司合作,提供更快捷、更可靠的配送服务。

ACI [Applied Concepts, Inc.]公司的发展小趣事

为了进一步提升市场影响力,ACI公司积极寻求与其他行业领导者的战略合作。通过与知名电子产品制造商、芯片供应商等建立紧密的合作关系,ACI得以获取更优质的资源和技术支持。这些合作不仅提升了ACI的产品质量和技术水平,还扩大了公司的市场影响力,为公司的长远发展奠定了坚实基础。

CUI Devices公司的发展小趣事

CUI Devices与富昌电子之间的合作关系可以追溯到CUI Inc的时代。多年来,双方建立了深厚的合作基础。在CUI Devices从CUI Inc剥离后,富昌电子继续支持其发展,成为其重要的合作伙伴之一。双方共同致力于推动电子元件行业的发展,为客户提供更优质的产品和服务。这种稳固的合作关系为CUI Devices在市场竞争中提供了有力的支持。

这五个故事展示了CUI Devices在电子行业中的发展历程和取得的成就。从起源与转型到应对全球健康危机的积极举措,再到在压电警报器市场的卓越表现以及电机品牌的崛起与拓展,每一个故事都见证了公司的成长和进步。同时,与富昌电子的稳固合作也为公司的未来发展奠定了坚实的基础。

Electronic公司的发展小趣事

特斯拉,虽然是一家电动汽车公司,但其在电子行业的发展中也展现出了强大的跨界创新能力。特斯拉通过自主研发和生产电池、电机等核心零部件,成功将电动汽车的性能和品质提升到了新的高度。同时,特斯拉还积极探索自动驾驶、智能交通等前沿技术,不断推动电动汽车行业的变革和发展。特斯拉的跨界创新不仅颠覆了传统汽车行业的格局,也为电子行业带来了新的机遇和挑战。

请注意,以上故事框架仅供参考,具体细节和数据可能需要根据实际情况进行调整和补充。同时,由于篇幅限制,每个故事的字数可能无法满足500字以上的要求。

AZ Displays公司的发展小趣事

面对日益激烈的市场竞争和不断变化的客户需求,AZ Displays始终保持着创新的活力。公司不断投入研发资源,推出具有创新性和领先性的产品。同时,AZ Displays还积极关注行业动态和新兴技术,不断调整和优化产品策略,以确保公司在市场中的领先地位。

这些故事展示了AZ Displays在电子行业中的发展历程和成就,体现了公司不断创新、追求卓越的精神。未来,随着科技的不断进步和市场需求的不断变化,AZ Displays将继续保持创新活力,为客户提供更优质的产品和服务。

东晨(DC)公司的发展小趣事

东晨(DC)公司注重企业文化的建设,将“创新、务实、协作、共赢”作为企业的核心价值观。公司倡导员工勇于创新、敢于挑战的精神,同时注重团队协作和共赢的理念。这种企业文化不仅增强了员工的凝聚力和向心力,也塑造了公司的良好品牌形象。在业界和客户中,东晨(DC)公司赢得了广泛的赞誉和信任。

请注意,以上故事为虚构内容,旨在展示电子行业公司可能的发展路径和成功要素。如有需要,请结合实际情况进行调整和完善。

问答坊 | AI 解惑

关于共射放大电路的失真问题

问一下各位,放大电路产生不对称失真是什么原因啊,即输出波形的正负半波幅值,时间不对称。…

查看全部问答>

小心别上当!曝光“电子驱蚊灭鼠器”_applevista

作者:applevista 前两天,父亲在庙会上买了两个黑猫神牌电子驱蚊灭鼠器,5块一个。 前两年,见过这样东西,样子不一样,也提醒父亲这是骗人的,还是被骗了。 要是一块一个倒也不错,它其实就是一个简单的彩灯。 这个与卫星增台器、节电器一样 ...…

查看全部问答>

cadence问题3求助!!

请教各位高手 我在画原理图时(orcad) 有下列两个疑问: 1、请问处理器(在page1上)上的一个引脚如A1需要连接两个外围芯片x,y    可是芯片X我是用层次法(层次图上层在page1上)画的,与芯片y的连接是用平坦式画法     ...…

查看全部问答>

Quartus II中管脚上拉电阻(弱上拉)的设置方法

在使用Altera的FPGA时候,由于系统需求,需要在管脚的内部加上上拉电阻。Quartus II软件中在Assignment Editor中可以设置。具体过程如下:1. 在菜单Assignments中选择Assignment Editor. 2. 在弹出的界面里选择I/O Features.找到Node. 3. 选择Node ...…

查看全部问答>

YOU_LINK电路图,请帮忙看看!

网上找来的,可能有好多错误。 相关链接:https://bbs.eeworld.com.cn/upfiles/img/20076/2007626163328342.pdf…

查看全部问答>

nios ide 编译出错

nios ide 软件编译出现make:***[system_project]Error2 错误 这是什么原因?…

查看全部问答>

每天复习一些ARM指令及汇编

ARM处理器寻址方式 寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式,ARM 处理器有9种基本寻址方式。 寄存器寻址 操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直 接取出寄存器值操作。 ...…

查看全部问答>

全波整流电路

全波整流器通常用于从交流输入获得直流电平。这通常用 于测量交流信号的幅度。全波整流器是一种均值检波器。 需要与均方根检波器或峰值检波器区分开来。 …

查看全部问答>

有没有用过炜盛的MQ系列的气体传感器的呢?

最近想用氨气和硫化氢传感器,国内便宜的就炜盛的MQ系列的,100出头,再上去就要500~600了 他们文档只提供了这个曲线图 有几个问题想请教下用过的前辈 1:这个系列能不能用来做定量测量,还是只能用来定性 2:输出的模拟电压怎么转换成浓度 3 ...…

查看全部问答>