#include "reg51.h"#include "lcd1602.h"#include <intrins.h>#define uchar unsigned char #define uint unsigned int /***********************************函式宣告區**********************************/void delay_ms(uint i);/** 函式名稱:延時函式* 引數: 延時數* 返回值: 無*/void delay_ms(uint i){ uint j=0; uint n=0; for(j=0;j<i;j++) for(n=0;n<=118;n++); }int main(void){ LCD_Init(); LCD_Clear(); LCD_Write_String(0,0," Hello"); LCD_Write_String(0,1," doubixiaohanhan");//點贊 LCD_Write_String(0,2," give the"); LCD_Write_String(0,3," thumbs-up");//點贊 while(1) { ; } return 0;}#include "lcd1602.h"#include <intrins.h>sbit RS = P2^0; //定義埠 sbit RW = P2^1;sbit EN = P2^2;#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/** 函式名稱: LCD uS延時函式* 引數: 延時數* 返回值: 無*/void delay_us(uchar t){ while(--t);}/** 函式名稱: LCD mS延時函式* 引數: 延時數* 返回值: 無*/void DelayMs(uchar t){ while(t--) { delay_us(245); delay_us(245); }}#if 0 /** 函式名稱: 判忙函式* 引數: 無* 返回值: 無*/bit LCD_Check_Busy(void) { DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80);//D7 1000 0000}#endif/** 函式名稱: 寫入命令函式* 引數: 命令* 返回值: 無*/void LCD_Write_Com(uchar com) { // while(LCD_Check_Busy()); //忙則等待 DelayMs(5); RS_CLR; RW_CLR; EN_CLR; DataPort= com; EN_SET; _nop_(); EN_CLR;}/** 函式名稱: 寫入資料函式* 引數: 資料* 返回值: 無*/void LCD_Write_Data(uchar Data) { // while(LCD_Check_Busy()); //忙則等待//延時 DelayMs(5); RS_SET; //1 RW_CLR; //0 EN_CLR; //0 DataPort= Data; //DB0-7 中轉站 EN_SET; _nop_(); EN_CLR;}/** 函式名稱: 清屏函式* 引數: 無* 返回值: 無*/void LCD_Clear(void) { LCD_Write_Com(0x01); DelayMs(5);}/** 函式名稱:寫入字串函式* 引數: 座標,待寫字串* 返回值: 無*//** 函式名稱:Calc寫入字串函式* 引數: 座標,待寫字串* 返回值: 無*/void LCD_Calc_String(uchar posx,uchar posy,uchar *str){ LCD_Write_Com(0x04); if (posy == 0) { LCD_Write_Com(0x80 + posx); } else { LCD_Write_Com(0xC0 + posx); } while (*str=='\0') { LCD_Write_Data(*str); str ++; } }/** 函式名稱:寫入字元函式* 引數: 座標,待寫字元* 返回值: 無*/void LCD_Write_Char(uchar x,uchar y,uchar Data) { if (y == 0) { LCD_Write_Com(0x80 + x); } else { LCD_Write_Com(0xC0 + x); } LCD_Write_Data( Data); }
初始化函式和設定座標函式在影片講解中有。
最新評論