首頁>技術>

#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);  }

初始化函式和設定座標函式在影片講解中有。

17
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 全新HuggingFace資料集庫釋出!611個文字資料集