欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
這是我剛做的LM016L顯示屏單片機程序
[打印本頁]
作者:
1270323761
時間:
2025-12-17 10:28
標題:
這是我剛做的LM016L顯示屏單片機程序
這個程序想在仿真軟件里面實現(xiàn)
研究了好久
原來加入一個滑動電阻改變它的背光以及控制它的D0-D7口需要加一個10K的上拉電阻
單片機源程序如下:
#include <reg51.h>
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_E = P2^2;
#define LCD_DATA P0
sbit KEY1 = P1^0;
sbit KEY2 = P1^1;
sbit KEY3 = P1^2;
void DelayMs(unsigned int ms) {
unsigned int i, j;
for(i = ms; i > 0; i--)
for(j = 110; j > 0; j--);
}
void LCD_WriteCmd(unsigned char cmd) {
LCD_RS = 0;
LCD_RW = 0;
LCD_DATA = cmd;
DelayMs(1);
LCD_E = 1;
DelayMs(1);
LCD_E = 0;
DelayMs(1);
}
void LCD_WriteDat(unsigned char dat) {
LCD_RS = 1;
LCD_RW = 0;
LCD_DATA = dat;
DelayMs(1);
LCD_E = 1;
DelayMs(1);
LCD_E = 0;
DelayMs(1);
}
void LCD_Init() {
DelayMs(20);
LCD_WriteCmd(0x38);
DelayMs(5);
LCD_WriteCmd(0x38);
DelayMs(5);
LCD_WriteCmd(0x38);
LCD_WriteCmd(0x0C);
LCD_WriteCmd(0x06);
LCD_WriteCmd(0x01);
DelayMs(2);
}
void LCD_ShowStr(unsigned char x, unsigned char y, unsigned char *str) {
unsigned char addr;
if(y == 0) addr = 0x80 + x;
else addr = 0xC0 + x;
LCD_WriteCmd(addr);
while(*str != '\0') {
LCD_WriteDat(*str);
str++;
}
}
unsigned char Key_Scan() {
if(KEY1 == 0) {
DelayMs(20);
if(KEY1 == 0) {
while(KEY1 == 0);
return 1;
}
}
else if(KEY2 == 0) {
DelayMs(20);
if(KEY2 == 0) {
while(KEY2 == 0);
return 2;
}
}
else if(KEY3 == 0) {
DelayMs(20);
if(KEY3 == 0) {
while(KEY3 == 0);
return 3;
}
}
return 0;
}
void main() {
unsigned char key_val;
LCD_Init();
LCD_ShowStr(0,0,"請選擇速度:");
while(1) {
key_val = Key_Scan();
if(key_val != 0) {
LCD_WriteCmd(0x01);
switch(key_val) {
case 1:
LCD_ShowStr(0,0,"Speed: Low");
break;
case 2:
LCD_ShowStr(0,0,"Speed: Mid");
break;
case 3:
LCD_ShowStr(0,0,"Speed: High");
break;
default:
break;
}
}
}
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1