LM3S811DDLLXXRR笔记之五.docx

上传人:b****5 文档编号:6805813 上传时间:2023-01-10 格式:DOCX 页数:13 大小:193.28KB
下载 相关 举报
LM3S811DDLLXXRR笔记之五.docx_第1页
第1页 / 共13页
LM3S811DDLLXXRR笔记之五.docx_第2页
第2页 / 共13页
LM3S811DDLLXXRR笔记之五.docx_第3页
第3页 / 共13页
LM3S811DDLLXXRR笔记之五.docx_第4页
第4页 / 共13页
LM3S811DDLLXXRR笔记之五.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

LM3S811DDLLXXRR笔记之五.docx

《LM3S811DDLLXXRR笔记之五.docx》由会员分享,可在线阅读,更多相关《LM3S811DDLLXXRR笔记之五.docx(13页珍藏版)》请在冰豆网上搜索。

LM3S811DDLLXXRR笔记之五.docx

LM3S811DDLLXXRR笔记之五

LM3S811DDLLXXRR笔记之五:

AD转换5110联合军演

 

首先:

我先说下这个的难点,这个是两个程序往一起摄,摄不了也得摄,我就用EXTERN哈,也不必费劲的搞H

 

但这还不算难点,难点是那个带小数点的显示我又搞了两个晚上。

上图哈:

(又是大奔拍地,照像机老忘拿回下次注意)

 

 

 

我先说我的显示是什么

 

 

thevolateis:

 

1.6**

 

因为我采样是1.6伏多点后两位显示什么不一定反证是1.6几,有一次是1.663好象来这

 

不费话了上图先

 

Picture084_096月11.jpg(63.53KB)

2011-6-919:

33

 

Picture083_096月11.jpg(61.19KB)

2011-6-919:

33

 

my5110ADC.JPG(145.27KB)

2011-6-919:

33

 

 

上程序:

 

5110部分

 

#include

#include"english_6x8_pixel.h"

#include"DriverLCD_Nokia5110.h"

#include"gpio.h"

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

#definetrue1

#defineflase0

/*-----------------------------------------------------------------------

LCD_init         :

3310LCD初始化

编写日期         :

2004-8-10

最后修改日期     :

2004-8-10

-----------------------------------------------------------------------*/

#defineLCD_DCGPIO_PIN_0  // PA

#defineLCD_RSTGPIO_PIN_7

#defineLCD_SCLKGPIO_PIN_1 //PA时钟信号

#defineLCD_SDINGPIO_PIN_6 //数据输入

#defineLCD_CEGPIO_PIN_5  //

#definec_Lcd_Max_x84

#definec_Lcd_Max_y6   //以字节为单位

#definec_LCD_Max_Dot_X84

#definec_LCD_Max_Dot_Y48

#defineCOM 0 //指令

#defineDAT 1 //数据

//-------------------

#defineSTR 1 //字符

#defineHAN 2 //汉字

//--------------------------LPH7366指令集---------------------------

#defineNokia5110_basic_fun_set 0x20//基本功能设置

#defineNokia5110_expand_fun_set0x21//扩展功能设置

// D7 D6 D5 D4 D3 D2 D1 D0

// 0  0  1  0  0  PD V  H

//                     |  |  |_______1->扩展指令集 0->基本指令集

//                     |  |___________1->垂直寻址   0->水平寻址

//                     |_______________1->低功耗模式 0->正常模式

//-------------------------------------------------------------------

//基本指令集

#defineNokia5110_dis_set 0x0c//显示模式设置

#defineNokia5110_DispMode_AllLightOff0x08

#defineNokia5110_DispMode_AllLightOn0x09

#defineNokia5110_DispMode_Reverse0x0d

// D7 D6 D5 D4 D3 D2 D1 D0

// 0  0  0  0  1  D  0  E

//                     |      |_______0   0       1   1

//                     |_______________0   1       0   1

//                                     白屏正常显示全显反转

//-------------------------------------------------------------------

#defineNokia5110_add_Yset 0x40//设置Y地址

// D7 D6 D5 D4 D3 D2 D1 D0

// 0  1  0  0  0  Y1 Y2 Y3

//-------------------------------------------------------------------

#defineNokia5110_add_Xset 0x80//设置X地址

// D7 D6 D5 D4 D3 D2 D1 D0

// 0  1  X6 X5 X4 X3 X2 X1

//-------------------------------------------------------------------

//扩展指令集

#defineNokia5110_tem_set 0x06  //温度系数设置

// D7 D6 D5 D4 D3 D2 D1 D0

// 0  0  0  0  0  1 TC1 TC0

//-------------------------------------------------------------------

#defineNokia5110_vot_set 0xBF //电压系数设置 0xD7

// D7 D6 D5 D4 D3 D2 D1 D0

// 1  vo6vo5vo4vo3vo2vo1vo0 

//-------------------------------------------------------------------

//voidDelay_1uS(void);

voiddelay_1us(void)                //1us延时函数

 {

  unsignedinti;

 for(i=0;i<1;i++);

 }

//1msDelayfunction

voidDelay(uintuiDelayCount)

{

 uintuiTempCount;

 uintuci;

 for(uiTempCount=0;uiTempCount

 {

  uci=1000;

  while(uci--)

  {

   delay_1us();

    }

 }

}

 

/*-----------------------------------------------------------------------

LCD_write_byte   :

使用SPI接口写数据到LCD

输入参数:

data   :

写入的数据;

         command:

写数据/命令选择;

编写日期         :

2004-8-10

最后修改日期     :

2004-8-13

-----------------------------------------------------------------------*/

voidLCD_write_CMD(unsignedcharucWriteData)

{

   unsignedcharuci;

   

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_CE,~LCD_CE);

 GPIOPinWrite(GPIO_PORTA_BASE,LCD_DC,~LCD_DC);

 for(uci=0;uci<8;uci++)

 {

  if(ucWriteData&0x80)

  {

   

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_SDIN,LCD_SDIN);

   }

  else

  {

   

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_SDIN,~LCD_SDIN);

   }

  

  GPIOPinWrite(GPIO_PORTA_BASE,LCD_SCLK,~LCD_SCLK);

  ucWriteData=ucWriteData<<1;

 

  GPIOPinWrite(GPIO_PORTA_BASE,LCD_SCLK,LCD_SCLK);

 }

  //LCD_CE=1;

 GPIOPinWrite(GPIO_PORTC_BASE,LCD_CE,LCD_CE);

}

/*-----------------------------------------------------------------------

LCD_write_byte   :

使用SPI接口写数据到LCD

输入参数:

data   :

写入的数据;

         command:

写数据/命令选择;

编写日期         :

2004-8-10

最后修改日期     :

2004-8-13

-----------------------------------------------------------------------*/

voidLCD_write_Data(unsignedcharucWriteData)

{

   unsignedcharuci;

  

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_CE,~LCD_CE);

 GPIOPinWrite(GPIO_PORTA_BASE,LCD_DC,LCD_DC);

 for(uci=0;uci<8;uci++)

 {

  if(ucWriteData&0x80)

  {

  

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_SDIN,LCD_SDIN);

   }

  else

  {

  

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_SDIN,~LCD_SDIN);

   }

  

  GPIOPinWrite(GPIO_PORTA_BASE,LCD_SCLK,~LCD_SCLK);

  ucWriteData=ucWriteData<<1;

 

  GPIOPinWrite(GPIO_PORTA_BASE,LCD_SCLK,LCD_SCLK);

 }

 GPIOPinWrite(GPIO_PORTC_BASE,LCD_CE,LCD_CE);

}

/*-----------------------------------------------------------------------

LCD_set_XY       :

设置LCD坐标函数

输入参数:

X    -83

         Y      :

0-5

编写日期         :

2004-8-10

最后修改日期     :

2004-8-10

-----------------------------------------------------------------------*/

voidLCD_set_XY(unsignedcharX,unsignedcharY)

{

   LCD_write_CMD(0x40|(Y&0X07));  //column

   LCD_write_CMD(0x80|(X&0X7F));          //row

}

 

/*-----------------------------------------------------------------------

LCD_clear        :

LCD清屏函数

-----------------------------------------------------------------------*/

voidLCD_Clear(void)

{

 uintuii;

 LCD_set_XY(0,0);

 for(uii=0;uii

 {

  LCD_write_Data(0x00);

 }

 

}

voidLCD_Init(void)

 {

   

 GPIOPinWrite(GPIO_PORTC_BASE,LCD_CE,~LCD_CE);

 

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_RST,~LCD_RST);

 

 delay_1us();

  

   GPIOPinWrite(GPIO_PORTC_BASE,LCD_RST,LCD_RST);

 

   delay_1us();

   delay_1us();

   LCD_write_CMD(0x21); //使用扩展命令设置LCD模式

  LCD_write_CMD(Nokia5110_vot_set);

   LCD_write_CMD(0x06); //温度校正

   LCD_write_CMD(0x13); //1:

48

   LCD_write_CMD(0x20); //使用基本命令

   LCD_Clear();        //清屏

   LCD_write_CMD(0x0c); //设定显示模式,正常显示

       

     

 GPIOPinWrite(GPIO_PORTC_BASE,LCD_CE,LCD_CE);

 }

/*-----------------------------------------------------------------------

LCD_write_char   :

显示英文字符

输入参数:

c      :

显示的字符;

编写日期         :

2004-8-10

最后修改日期     :

2004-8-10

-----------------------------------------------------------------------*/

voidLCD_write_char(unsignedcharc)

{

   unsignedcharline;

   c-=32;

   for(line=0;line<6;line++)

 {

      LCD_write_Data(font6x8[c][line]);

  }

}

/*-----------------------------------------------------------------------

LCD_write_english_String :

英文字符串显示函数

输入参数:

*s     :

英文字符串指针;

         X、Y   :

显示字符串的位置,x0-83,y0-5

编写日期         :

2004-8-10

最后修改日期     :

2004-8-10  

-----------------------------------------------------------------------*/

voidLCD_write_english_string(unsignedcharX,unsignedcharY,char*s)

{

   LCD_set_XY(X,Y);

   while(*s)

   {

  LCD_write_char(*s);

  s++;

  }

}

 

voidTestLCD_Nokia5110(void)

{

 LCD_Init();//初始化液晶   

 LCD_Clear();

    while

(1) 

   {

  LCD_write_english_string(0,0,"NOKIA5110LCD");

  Delay(100);

  LCD_write_english_string(0,2,"Designedby:

");

  Delay(100);

  LCD_write_english_string(0,3," DDLLXXRR");

  Delay(100);

  LCD_write_english_string(0,5,"VeryGood!

");

  Delay(1000);

  LCD_Clear();

  Delay(100);

  }

}

voidinit(void)

{

   //SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_OSC_MAIN|

   //              SYSCTL_XTAL_6MHZ);

   SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

 SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);

 GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE,GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);

 GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE,GPIO_PIN_0|GPIO_PIN_1);

}

 

 

ADC部分:

 

 

#include

#include  

#include

#include

#defineADCSequEnableADCSequenceEnable

#defineADCSequDisableADCSequenceDisable

#defineADCSequConfigADCSequenceConfigure

#defineADCSequStepConfigADCSequenceStepConfigure

#defineADCSequDataGetADCSequenceDataGet

tBooleanADC_EndFlag=false;//定义ADC转换结束的标志

externvoidinit(void);

externvoidLCD_Init(void);

externvoidLCD_write_english_string(unsignedcharX,unsignedcharY,char*s);

unsignedlongulVal;

// 防止JTAG失效

voidjtagWait(void)

{

SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC);         // 使能KEY所在的GPIO端口

GPIOPinTypeGPIOInput(GPIO_PORTC_BASE,GPIO_PIN_4);    // 设置KEY所在管脚为输入

if(GPIOPinRead(GPIO_PORTC_BASE,GPIO_PIN_4)==0x00) // 若复位时按下KEY,则进入

   {

      while

(1);                            // 死循环,以等待JTAG连接

   }

 SysCtlPeripheralDisable(SYSCTL_PERIPH_GPIOC);  // 禁止KEY所在的GPIO端口

}

//ADC初始化

voidadcInit(void)

{

SysCtlLDOSet(SYSCTL_LDO_2_75V);   //配置PLL前需将LDO电压设置为2.75V                   

       SysCtlClockSet(SYSCTL_USE_PLL|   //系统时钟设置,采用PLL                         

       SYSCTL_OSC_MAIN|                 //主振荡器         

  SYSCTL_XTAL_6MHZ|                //外接6MHz晶振        

  SYSCTL_SYSDIV_4);      //分频结果为50MHz

SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC);//使能ADC模块

SysCtlADCSpeedSet(SYSCTL_ADCSPEED_125KSPS);//设置ADC采样速率

ADCSequDisable(ADC_BASE,0);//配置前先禁止采样序列

//采样序列配置:

ADC基址,采样序列编号,触发事件,采样优先级

ADCSequConfig(ADC_BASE,0,ADC_TRIGGER_PROCESSOR,0);

//采样步进设置:

ADC基址,采样序列编号,步值,通道设置

ADCSequStepConfig(ADC_BASE,0,0,ADC_CTL_CH0|

ADC_CTL_END|

ADC_CTL_IE);

ADCIntEnable(ADC_BASE,0);//使能ADC中断

IntEnable(INT_ADC0);//使能ADC采样序列中断

IntMasterEnable(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1