欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
簡單的LCD1602顯示代碼
[打印本頁]
作者:
碼農甲A
時間:
2018-3-26 16:52
標題:
簡單的LCD1602顯示代碼
這個是用C寫的LCD1602顯示代碼,通過AT89c52單片機驅動。經過本人檢測,用proteus仿真和實物都可以顯示。需要三個代碼編譯成.hex文件再放入芯片中。
//1.
//filename:glocal.h
#define uchar unsigned char
#define uint unsigned int
//2.
//filename:ks0066.H
#define DATA_PORT P1
//-------------------------------------------
// 管腳定義
//------------------------------------------
sbit RS=P2^0; //數據(L)/命令(H)選擇
sbit LCDRW=P2^1; //寫,低電平有效
sbit EN=P2^2; //使能,低電平有效
//===========================================
// 函數聲明
//-------------------------------------------
void delay_lcd(char);
void write_data(char);
void write_com(char);
void lcd_init();
void delay_ms(char);
void print_string(char*);
//--------------------------------------------
// 寫數據函數
//--------------------------------------------
void write_data(char dat){
RS=1; //數據
LCDRW=0; //寫
DATA_PORT=dat; //把數據送到P口
delay_ms(5); //當晶振較高時加延時
EN=1;
delay_ms(5); //當晶振較高時加延時
EN=0; //關使能
}
//--------------------------------------------
// 寫命令函數
//--------------------------------------------
void write_com(char com){
RS=0; //命令
LCDRW=0; //寫
DATA_PORT=com;
delay_ms(5); //當晶振較高時加延時
EN=1;
delay_ms(5); //當晶振較高時加延時
EN=0;
}
//--------------------------------------------
// 1602初始化函數
//--------------------------------------------
void lcd_init(){
LCDRW=0;
RS=0;
write_com(0x36); //set text home address
write_com(0x0f); //display switch,display on,cursor on,blink on.
write_com(0x38);
write_com(0x06); //input set.
write_com(0x01); //screen clear
write_com(0x80); //DDRAM AD set to 00h,
}
void print_string(char* str){
int i;
for(i=0;str[i]!=0;i++)
{
write_data(str[i]);
}
}
//--------------------------------------------
// 延時函數
//--------------------------------------------
void delay_ms(uchar t){
int j;
for(;t!=0; t--)
for (j=0;j<255;j++);
}
//3.
#include<reg51.h>
#include"global.h"
#include "ks0066.h" // for lcd 1602
main(){
lcd_init();
print_string("Hello World!");
write_com(0xc0); //DDRAM AD set to 00h,
print_string("This is Alex!");
//write_com(0xc0); //DDRAM AD set to 00h,
//print_string("XXX!");
while(1);
}
復制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1