完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
百度网盘:https://pan.baidu.com/s/1hsqFDnI
求助,怎么用IAP15F2K61S2 与DS18B20通过ILI9325液晶显示屏显示温度 网盘里有LCD的操作函数 我就是不明白怎么个过程, LCD先写命令,写数据是干什么的 如何把DS18B20的数据写到LCD里面,然后怎么让写进去的数据显示出来 |
|
相关推荐
14个回答
|
|
[C] 纯文本查看 复制代码
//******************************************************************//函数名: LCD_Init//功能: LCD初始化//******************************************************************void LCD_Init(void){LCD_RST=1;delay_ms(10);LCD_RST=0;delay_ms(50);LCD_RST=1;delay_ms(10);LCD_WriteReg(0xE5,0x78F0); LCD_WriteReg(0x01,0x0100); LCD_WriteReg(0x02,0x0700); LCD_WriteReg(0x03,0x1030); LCD_WriteReg(0x04,0x0000); LCD_WriteReg(0x08,0x0202); LCD_WriteReg(0x09,0x0000);LCD_WriteReg(0x0A,0x0000); LCD_WriteReg(0x0C,0x0000); LCD_WriteReg(0x0D,0x0000);LCD_WriteReg(0x0F,0x0000);//power on sequence VGHVGLLCD_WriteReg(0x10,0x0000); LCD_WriteReg(0x11,0x0007); LCD_WriteReg(0x12,0x0000); LCD_WriteReg(0x13,0x0000); LCD_WriteReg(0x07,0x0000); //vgh LCD_WriteReg(0x10,0x1690); LCD_WriteReg(0x11,0x0227);//delay_ms(100);//vregiout LCD_WriteReg(0x12,0x009D); //0x001b//delay_ms(100); //vom amplitudeLCD_WriteReg(0x13,0x1900);//delay_ms(100); //vom HLCD_WriteReg(0x29,0x0025); LCD_WriteReg(0x2B,0x000D); //gammaLCD_WriteReg(0x30,0x0007);LCD_WriteReg(0x31,0x0303);LCD_WriteReg(0x32,0x0003);// 0006LCD_WriteReg(0x35,0x0206);LCD_WriteReg(0x36,0x0008);LCD_WriteReg(0x37,0x0406); LCD_WriteReg(0x38,0x0304);//0200LCD_WriteReg(0x39,0x0007); LCD_WriteReg(0x3C,0x0602);// 0504LCD_WriteReg(0x3D,0x0008); //ramLCD_WriteReg(0x50,0x0000); LCD_WriteReg(0x51,0x00EF);LCD_WriteReg(0x52,0x0000); LCD_WriteReg(0x53,0x013F); LCD_WriteReg(0x60,0xA700); LCD_WriteReg(0x61,0x0001); LCD_WriteReg(0x6A,0x0000); //LCD_WriteReg(0x80,0x0000); LCD_WriteReg(0x81,0x0000); LCD_WriteReg(0x82,0x0000); LCD_WriteReg(0x83,0x0000); LCD_WriteReg(0x84,0x0000); LCD_WriteReg(0x85,0x0000); //LCD_WriteReg(0x90,0x0010); LCD_WriteReg(0x92,0x0600); LCD_WriteReg(0x07,0x0133);LCD_WriteReg(0x00,0x0022);////设置LCD属性参数LCD_WriteReg(0x03,0x1038);LCD_WriteReg(0x60,0x2700);LCD_Clear(0,0,240,320,0x03e0); LCD_BL=1;//点亮背光 }//******************************************************************//函数名: LCD_WriteReg//功能: 写寄存器数据//输入参数:LCD_Reg:寄存器地址//LCD_RegValue:要写入的数据//******************************************************************void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue){ LCD_WR_REG(LCD_Reg);LCD_WR_DATA(LCD_RegValue);}//******************************************************************//函数名: LCD_WR_REG//功能: 向液晶屏总线写入写16位指令//输入参数:Reg:待写入的指令值//******************************************************************void LCD_WR_REG(u8 Reg) {LCD_RS=0;LCD_WR=0;LCD_H=0;LCD_L=Reg;LCD_WR=1; } //******************************************************************//函数名: LCD_WR_DATA//功能: 向液晶屏总线写入写16位数据//输入参数:Data:待写入的数据//******************************************************************void LCD_WR_DATA(u16 Data){LCD.dat[0]=Data;LCD_RS=1;LCD_WR=0;LCD_H=LCD.tab[0];LCD_L=LCD.tab[1];LCD_WR=1; } |
|
|
|
要分析细节,需要仔细阅读1602手册
|
|
|
|
这不是1602,是彩屏ILI9325驱动的
|
|
|
|
先实现读取DS18B20的温度数据,然后再去想着把读取的数据发送到LCD上显示,分两个步骤来弄。
那个液晶的驱动程序,网上应该能下载的,你修改一下相关的参数就可以实现你需要显示的位置和数字了。 |
|
|
|
命令一般是对显示屏进行控制的,数据是要显示的内容。
|
|
|
|
|
|
[C] 纯文本查看 复制代码
/*************************************************函数名:LCD_SetWindows功能:设置lcd显示窗口,在此区域写点数据自动换行*************************************************/void LCD_SetWindows(u16 xStar, u8 yStar,u16 xEnd,u8 yEnd){ LCD_WR_REG(0x52); LCD_WR_DATA(xStar); LCD_WR_REG(0x53); LCD_WR_DATA(xEnd); LCD_WR_REG(0x50); LCD_WR_DATA(yStar); LCD_WR_REG(0x51); LCD_WR_DATA(yEnd); LCD_WR_REG(0x21); LCD_WR_DATA(xStar); LCD_WR_REG(0x20); LCD_WR_DATA(yStar); LCD_WR_REG(0x22); } //显示数字/字母/汉字//12*24 ZF_12//24*24 ZF_24//16*32 ZF_16//32*32 ZF_32u16 LCD_ZF(u8 m,u16 x,u8 y,u16 cr,u16 dat) //显示字符函数{ u8 i,j,k; u16 add; switch(m) { case ZF_12 : LCD_SetWindows(x,y,x+11,y+23);add=x+12; LCD.dat[1]=37444+dat*ZF_12;break; case ZF_16 : LCD_SetWindows(x,y,x+15,y+31);add=x+16; LCD.dat[1]=37912+dat*ZF_16;break; case ZF_24 : LCD_SetWindows(x,y,x+23,y+23);add=x+24; LCD.dat[1]=40280+dat*ZF_24;break; case ZF_32 : LCD_SetWindows(x,y,x+31,y+31);add=x+32; LCD.dat[1]=38616+dat*ZF_32;break; default : return 0; } LCD_RS=1; F_CS=0; LCD.dat[0]=0x0315; FLASH_addr(); //falsh 写入地址 LCD.dat[0]=cr; for(i=0;i |
|
|
|
横屏9325的代码。。。已经在设备上应用几个月了,没任何问题…… 因为涉及其他关键代码,所以我不能把完整的程序发上来!! 只能把初始化和显示数字的部分发上来!
|
|
|
|
[C] 纯文本查看 复制代码
***it LCD_RS=P4^1;***it LCD_WR=P4^3;***it LCD_RST=P4^4;//0***it LCD_BL=P0^3;//0***it F_CS=P1^6;***it fan_sw=P6^3;//散热风扇控制接口***it Hg_key=P4^5;//水银开关***it OUT_key=P6^1;//继电器//=========================================================#define NOP() _nop_() #define u8 unsigned char #define u16 unsigned int #define u32 unsigned long #define LCD_L P2 #define LCD_H P7 #define PT_X 0x90 #define PT_Y 0xd0 #define beijing 0xcdfd //背景颜色#define beijing_2 0xc618//图片地址#define PC_home0x03000000//主界面#define PC_menu 0x03025800//主菜单#define PC_power0x0304b000//电源设置#define PC_sanre0x03070800//散热设置#define PC_shuchu0x03096000//输出设置#define PC_tiaoshi0x030bb800//设备调试#define PC_anquan0x030e1000//安全设置#define PC_key0x03106800//键盘#define PC_canshu0x03133a44//请输入#define PC_cuowu0x03140244//输入错误#define PC_tishi0x0314ca44//输入提示……………………………………………… |
|
|
|
直接用封装好的两个独立源代码,然后在主程序调用不行吗?而且LCD只是现使用的吧,问什么要用它来控制呢?
还想请教楼主一个C语言的问题,DS18B20里边如果温度是负的,值要取反加一,那个例程里边只有去反,没有加1,if(TH>7) { TH=~TH; TL=~TL; temp=0;//温度为负 }else temp=1;//温度为正 tem=TH; //获得高八位 tem<<=8; tem+=TL;//获得低八位 tem=(float)tem*0.625;//转换 if(temp)return tem; //返回温度值 else return -tem; 这个怎么理解 |
|
|
|
我用的是TFT彩屏,不是以前那种显示屏
|
|
|
|
谢谢!!帮了我大忙了!原来这种底层驱动程序,在买TFT液晶屏的时候商家就已经给出了,没搞过底层的,所以对于开发者来说,只要学会调用就行了!已经可以显示温度了,谢谢!
|
|
|
|
他这里用的是标志位来判断正负
|
|
|
|
我接触单片机也没多久,以为所有的程序都要自己写,其实现在为了节省开发者的时间,缩短开发周期,已经没必要做一些重复的工作了,很多底层驱动的程序,在买的时候商家就已经给你打包好了,作为开发者只要会调试,会调用函数来实现具体功能就可以了
|
|
|
|
只有小组成员才能发言,加入小组>>
3280 浏览 9 评论
2958 浏览 16 评论
3460 浏览 1 评论
9005 浏览 16 评论
4052 浏览 18 评论
1117浏览 3评论
574浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2304浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 13:19 , Processed in 1.537673 second(s), Total 107, Slave 87 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号