1602液晶移动显示
来源:互联网 发布:阿尔法软件官方下载 编辑:程序博客网 时间:2024/05/01 10:20
#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 P0void DelayUs2x(unsigned char t){ while(--t);}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) { unsigned char i; unsigned char *pa,*pb; LCD_Init(); LCD_Write_Com(0x0f);//光标开,光标闪烁开while (1) { pa = "Welcome to"; pb = "www.doflye.net"; LCD_Clear(); LCD_Write_String(2,0,pa); //显示2行信息 LCD_Write_String(1,1,pb); for(i=0;i<8;i++) //延时2s左右 DelayMs(250); LCD_Clear(); //清屏显示其他信息 i = 2; while (*pa) //循环输入方式显示2行信息{ LCD_Write_Char(i,0,*pa); i ++; pa ++; DelayMs(250); } i=1; while (*pb) { LCD_Write_Char(i,1,*pb); i ++; pb ++; DelayMs(250); } DelayMs(250); }}
0 0
- 1602液晶移动显示
- 1602液晶静态显示
- 1602液晶滚动显示
- 1602液晶动态显示
- 1602液晶静态显示
- 1602液晶动态显示
- 1602液晶按键输入显示
- 12.9 1602液晶简单显示程序
- 单片机-1602液晶基本显示程序
- arduino使用液晶1602来显示字母
- 1602液晶
- 液晶 CRT显示原理
- 仿液晶数字显示
- 基于pic16f877的1602液晶汉字显示 c语言程序
- lcd 12864液晶 显示图片
- 12864液晶并行方式显示
- 12864液晶串口图片显示
- FPGA驱动1602液晶
- Android
- 二分贪心 E
- GITHUB使用教程
- c#在最小化为托盘时,无法监听剪切板(clipboard)复制数据时候的变化
- oracle简单DDL的使用
- 1602液晶移动显示
- PHP删除所有空格
- @Cacheable 缓存注解的用法
- Leetcode -- 29. Divide Two Integers
- 走进中关村软件园-光环敏捷PMI-ACP落地分享会
- Spring Boot Shiro 权限管理
- Ubuntu16.04 使用OpenSSL库实现RSA
- js字符串去掉特殊字符和转义字符
- iscroll