随着科技的发展,ARM在社会各个方面的应用越来越广。ARM芯片广泛应用于无线产品、PDA、GPS、网络、消费电子产品、STB及智能卡。LPC2138是Philips公司生产的基于ARM7TDMI的RISC微处理器,主频可达50MHz。液晶显示是嵌入式系统中反映系统输入/输出的人机交互界面,液晶显示以其微功耗、体积小、显示内容丰富、模块化,接口电路简单等诸多优点得到广泛应用。本文在介绍以HD44780为控制器的LM016L液晶模块的引脚结构、功能的基础上,搭建LM016L与LPC2138芯片的硬件接口电路、用c语言编写显示程序,采用PROTEUS软件进行功能仿真。
2019-11-05 07:24
之所以成为业内佼佼者,一定程度上得益于强大的电池管理系统。只有对复杂而繁多的电池组进行有效的控制与管理,才能突破电动汽车推广普及的瓶颈。一起来看看电池管理系统如何工作。图1安全工作区域示意1电池管理系统(BMS)定义锂离子电池的安全工作区域如图1所示。BMS的主要任务是保证电池系统的设计性能:1)安全性;;2)耐久性;3)动力性。BMS软硬件的基本框架如图2所示,应该具有的功能:1)电池参数检测。2)电池状态估计。3)在线故障诊断。4)电池安全控制与报警。5)充电控制。6)电池均衡。7)热管理。8)网络通讯。9)信息存储。10)电磁兼容。图2车用BMS软硬件基本框架
2020-07-30 08:34
`用proteus仿真ILI9341液晶屏,但是无法显示。 LCD_Init初始化中清屏程序将屏清为红色,但是无反应。请各位看看哪里有问题。void LCD_Init(void){ GPIO_InitTypeDefGPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE );GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);//JTAG-DP 失能 + SW-DP使能 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_Write(GPIOA,0XFF);//LCDBL,RD,WR,RS,CSGPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_2;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB, GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_2); //CS RS WR RD ////LCDRESET//GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6;//GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输LCDRESET//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//GPIO_Init(GPIOB, &GPIO_InitStructure);//GPIO_SetBits(GPIOB, GPIO_Pin_6);LCDBKON;//点亮LCD背光//***************************RESET LCD Driver******************************LCD_RESET_SET; //reset-->1delayms(1);//Delay 1msLCD_RESET_CLR; //reset-->0delayms(10);//Delay 10msLCD_RESET_SET; //reset-->1delayms(120); //Delay 200ms//************************Start initial sequence***************************delayms(500);LCD_WR_REG(0x01);delayms(200);LCD_WR_REG(0xCF);LCD_WR_DATA(0x00); LCD_WR_DATA(0x8B); LCD_WR_DATA(0X30);LCD_WR_REG(0xED);LCD_WR_DATA(0x67); LCD_WR_DATA(0x03); LCD_WR_DATA(0X12); LCD_WR_DATA(0X81);LCD_WR_REG(0xE8);LCD_WR_DATA(0x85); LCD_WR_DATA(0x10); LCD_WR_DATA(0x7A); LCD_WR_REG(0xCB);LCD_WR_DATA(0x39); LCD_WR_DATA(0x2C); LCD_WR_DATA(0x00); LCD_WR_DATA(0x34); LCD_WR_DATA(0x02); LCD_WR_REG(0xF7);LCD_WR_DATA(0x20); LCD_WR_REG(0xEA);LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_REG(0xC0); //Power control LCD_WR_DATA(0x1B);//VRH[5:0] LCD_WR_REG(0xC1); //Power control LCD_WR_DATA(0x10);//SAP[2:0];BT[3:0] LCD_WR_REG(0xC5); //VCM control LCD_WR_DATA(0x3F); //3FLCD_WR_DATA(0x3C); //3CLCD_WR_REG(0xC7); //VCM control2 LCD_WR_DATA(0XB7); LCD_WR_REG(0x36); // Memory Access Control LCD_WR_DATA(0x08); LCD_WR_REG(0x3A);LCD_WR_DATA(0x55);LCD_WR_REG(0xB1);LCD_WR_DATA(0x00);LCD_WR_DATA(0x1B);LCD_WR_REG(0xB6); // Display Function Control LCD_WR_DATA(0x0A); LCD_WR_DATA(0xA2); LCD_WR_REG(0xF2); // 3Gamma Function Disable LCD_WR_DATA(0x00); LCD_WR_REG(0x26); //Gamma curve selected LCD_WR_DATA(0x01);LCD_WR_REG(0xE0); //Set Gamma LCD_WR_DATA(0x0F); LCD_WR_DATA(0x2A); LCD_WR_DATA(0x28); LCD_WR_DATA(0x08); LCD_WR_DATA(0x0E); LCD_WR_DATA(0x08); LCD_WR_DATA(0x54); LCD_WR_DATA(0XA9); LCD_WR_DATA(0x43); LCD_WR_DATA(0x0A); LCD_WR_DATA(0x0F); LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_DATA(0x00); LCD_WR_REG(0XE1); //Set Gamma LCD_WR_DATA(0x00); LCD_WR_DATA(0x15); LCD_WR_DATA(0x17); LCD_WR_DATA(0x07); LCD_WR_DATA(0x11); LCD_WR_DATA(0x06); LCD_WR_DATA(0x2B); LCD_WR_DATA(0x56); LCD_WR_DATA(0x3C); LCD_WR_DATA(0x05); LCD_WR_DATA(0x10); LCD_WR_DATA(0x0F); LCD_WR_DATA(0x3F); LCD_WR_DATA(0x3F); LCD_WR_DATA(0x0F); LCD_WR_REG(0x11); //Exit Sleepdelayms(120);LCD_WR_REG(0x29); //display onLCD_WR_REG(0x2A);LCD_WR_DATA(0x00);LCD_WR_DATA(0x00);LCD_WR_DATA(0x00);LCD_WR_DATA(0xEF);LCD_WR_REG(0x2B);LCD_WR_DATA(0x00);LCD_WR_DATA(0x00);LCD_WR_DATA(0x01);LCD_WR_DATA(0x3F);//LCD_WR_REG(0x2C);//往存储器写数据delayms(10);LCD_Clear(RED);}//清屏函数//Color:要清屏的填充色void LCD_Clear(u16 Color){u32 index=0;//LCD_SetCursor(0x00,0x0000);//设置光标位置 LCD_WriteRAM_Prepare();//开始写入GRAM for(index=0;index<76800;index++){ LCD_WR_DATA(Color);}}void LCD_WR_DATA(u16 data){LCD_CS_CLR;LCD_RS_SET;LCD_RD_SET;DATAOUT(data);LCD_WR_CLR;LCD_WR_SET;LCD_CS_SET;}//写寄存器函数void LCD_WR_REG(u8 data){ LCD_CS_CLR;LCD_RS_CLR;//写地址DATAOUT(data);LCD_WR_CLR;LCD_RD_SET;LCD_WR_SET;LCD_RS_SET;LCD_CS_SET;}`
2019-02-21 15:22