|
kr51開發板 stc89c52 lcd1602 廢話不多說 看代- #include "reg52.h"
- #define uchar unsigned char
- #define uint unsigned int
- sbit rs=P2^0;//H數據,L命令
- sbit lcden=P2^2;//高脈沖使能,使能脈寬最小150ns
- sbit rw=P2^1;
- uchar code table[]= "welcome to use";
- uchar code table1[]="press the key";
- uchar code table3[]="Time remaining";
- sbit key1=P3^2;
- sbit key2=P3^3;
- sbit key3=P3^4;
- sbit key4=P3^5;
- uchar qian;
- uchar bai;
- uchar shi;
- uchar ge;
- int num=9999;//變量控制時間
- int a=0;
- int c=0;
- int d=0;//這三個變量請讀者自行體會作用
- void anjian();//按鍵函數聲明
- /********************************************************************
- * 名稱 : delay(uchar x)
- * 功能 : 延時函數
- * 輸入 : x
- * 輸出 : 無
- ***********************************************************************/
- void delay(uchar x)
- { uint y;
- for(;x>0;x--)
- {
- for(y=110;y>0;y--)
- {};
- }
- }
- /********************************************************************
- * 名稱 : lcdwrcom(uchar cdat)
- * 功能 : LCD1602寫數據到LCD1602
- * 輸入 : cdat
- * 輸出 : 無
- ***********************************************************************/
- void lcdwrdata(uchar dat)
- {
- // dat = ((dat&0x01)<<7)|((dat&0x02)<<5)|((dat&0x04)<<3)|((dat&0x08)<<1)|((dat&0x10)>>1)|((dat&0x20)>>3)|((dat&0x40)>>5)|((dat&0x80)>>7);
- rs=1;//寫數據時RS拉高
- lcden=1;
- P0=dat;
- delay(6);
- lcden=0;
- delay(6);
- }
- /********************************************************************
- * 名稱 : lcdwrcom(uchar cdat)
- * 功能 : LCD1602寫命令到LCD1602
- * 輸入 : cdat
- * 輸出 : 無
- ***********************************************************************/
- void lcdwrcom(uchar cdat)//寫指令數據到LCD
- {
- // cdat = ((cdat&0x01)<<7)|((cdat&0x02)<<5)|((cdat&0x04)<<3)|((cdat&0x08)<<1)|((cdat&0x10)>>1)|((cdat&0x20)>>3)|((cdat&0x40)>>5)|((cdat&0x80)>>7);
- rs=0;//寫指令時RS拉低
- lcden=1;
- P0=cdat;//
- delay(6);//不加此延時將導致不能寫入指令,但能寫入顯示數據
- lcden=0;
- delay(6);
- }
- /********************************************************************
- * 名稱 : lcd_init()
- * 功能 : LCD1602初始化
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void lcd_init()
- {
- lcdwrcom(0x38);//0x38設置顯示模式為:16X2 顯示,5X7 點陣,8 位數據接口
- lcdwrcom(0x0c);//打開顯示光標閃爍
- lcdwrcom(0x06);
- lcdwrcom(0x01);
- }
- void display(int numdis)//顯示時間函數
- {
- qian=numdis/1000;
- bai=(numdis%1000)/100;
- shi=(numdis%100)/10;
- ge=numdis%10;
- }
- void init()//定時器初始化
- {
- TMOD=0X01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- TR0=1;
- ET0=1;
- EA=1;
- }
復制代碼

|
-
-
LCD1602 (1).zip
2020-2-11 20:04 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.44 KB, 下載次數: 26, 下載積分: 黑幣 -5
此為c文件,直接燒錄就好
|