LCD的静态显示
来源:互联网 发布:刷枪软件 编辑:程序博客网 时间:2024/06/05 17:32
/*----------------------------------------------- 名称:LCD1602 内容:通过标准程序静态显示字符 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK------------------------------------------------*/#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include<intrins.h>sbit RS = P2^4; //定义端口 sbit RW = P2^5;sbit EN = P2^6;#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P0/*------------------------------------------------ uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS ------------------------------------------------*/void DelayUs2x(unsigned char t){ while(--t);}/*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0~255 这里使用晶振12M,精确延时请使用汇编------------------------------------------------*/void DelayMs(unsigned char t){ while(t--) { //大致延时1mS DelayUs2x(245); DelayUs2x(245); }}/*------------------------------------------------ 判忙函数------------------------------------------------*/ bit LCD_Check_Busy(void) { DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80); }/*------------------------------------------------ 写入命令函数------------------------------------------------*/ void LCD_Write_Com(unsigned char com) { // while(LCD_Check_Busy()); //忙则等待 DelayMs(5); RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; }/*------------------------------------------------ 写入数据函数------------------------------------------------*/ void LCD_Write_Data(unsigned char Data) { //while(LCD_Check_Busy()); //忙则等待 DelayMs(5); RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; }/*------------------------------------------------ 清屏函数------------------------------------------------*/ void LCD_Clear(void) { LCD_Write_Com(0x01); DelayMs(5); }/*------------------------------------------------ 写入字符串函数------------------------------------------------*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { if (y == 0) { LCD_Write_Com(0x80 + x); //表示第一行 } else { LCD_Write_Com(0xC0 + x); //表示第二行 } while (*s) { LCD_Write_Data( *s); s ++; } }/*------------------------------------------------ 写入字符函数------------------------------------------------*/ void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_Write_Com(0x80 + x); } else { LCD_Write_Com(0xC0 + x); } LCD_Write_Data( Data); }/*------------------------------------------------ 初始化函数------------------------------------------------*/ void LCD_Init(void) { LCD_Write_Com(0x38); /*显示模式设置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /*显示清屏*/ LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5); LCD_Write_Com(0x0C); /*显示开及光标设置*/ }/*------------------------------------------------ 主函数------------------------------------------------*/ void main(void) { LCD_Init(); LCD_Clear();//清屏while (1) { LCD_Write_String(1,0,"0x32"); LCD_Write_String(1,1,"Archer"); while(1); }}
0 0
- LCD的静态显示
- S3C2440的LCD显示
- dm365的LCD显示
- dm365的LCD显示
- dm365的LCD显示
- LCD的时钟显示
- LCD的动态显示
- lcd的显示应用程序的
- Lcd显示的一些基本概念
- s3c2440的LCD字符显示
- 学习LCD显示的笔记
- 开发板的lcd 显示
- STM32F10x的LCD(ILI9320)显示
- STM32F10x的LCD(ILI9320)显示
- 点阵LCD的显示原理
- lcd显示失色的分析
- arm的lcd基础显示
- arm的lcd显示字体
- PHP学习 -- 数据类型(-)
- localStorage、SessionStorage详解2
- iOS性能优化
- 记录一下自己使用sed遇到的问题
- EL表达式 (详解)
- LCD的静态显示
- tensorflow reading data (1)
- 【转】如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】
- 四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法—(转)
- 318. Maximum Product of Word Lengths
- Echarts学习之使用要点步骤
- 逻辑思维训练(六)
- [python3教程]第八章.ERRORS AND EXCEPTIONS
- final,finally,finalize的区别