LM3S811DDLLXXRR笔记之五.docx
- 文档编号:6805813
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:13
- 大小:193.28KB
LM3S811DDLLXXRR笔记之五.docx
《LM3S811DDLLXXRR笔记之五.docx》由会员分享,可在线阅读,更多相关《LM3S811DDLLXXRR笔记之五.docx(13页珍藏版)》请在冰豆网上搜索。
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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LM3S811DDLLXXRR 笔记