📄 1.c
字号:
#include <reg51.h>
#include <stdio.h>
#include <math.h>
#define uchar unsigned char
#define addata P0
#define data_da P3
sbit BF=P0^7;
sbit RS=P1^0;
sbit R_W=P1^1;
sbit EN=P1^2;
sbit OE=P1^4;
sbit clock=P1^5;
sbit key=P1^7;
uchar *a_poit;
uchar a[16];
uchar w;
//void delay(void){ //延时约1s
//uchar i,j;
//for(i=0;i<160;i++){
//for(j=0;j<200;j++){;}
//}
//}
void checkbush (void) { //LCD查忙子函数
uchar i=20;
while(i--);
}
void write_instruction(uchar x) { //写指令码到IR寄存器子函数
checkbush();
EN=0;
RS=0;
R_W=0;
EN=1;
data_da=x;
EN=0;
}
void write_lcddata(uchar x) { //写资料到DR寄存器子函数
checkbush();
EN=0;
RS=1;
R_W=0;
EN=1;
data_da=x;
EN=0;
}
//void cls(void) { //清除显示器子函数
//ACC=0x01;
//write_instruction(ACC);
//}
//void initial(void) { //启动LCM子函数
//ACC=0x38; //8bits汇流排、显示两行、使用5*7字型
//write_instruction(ACC);
/// ACC=0x0e; //显示器显示光标但光标不闪烁
///write_instruction(ACC);
//ACC=0x06; //光标右移一格且AC的值加1
// write_instruction(ACC);
//}
void show_line(uchar *line){
while(*line){
ACC=*line++;
write_lcddata(ACC);
}
}
void lcdshow(void) interrupt 1 using 2{
TR0=0;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
//clock=!clock;
a_poit=&a[0];
ACC=0x80;
write_instruction(ACC);
show_line(a_poit);
TR0=1;
}
void main(void){
//uchar a[16];
OE=0;
clock=0;
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
//EA=1;
ET0=1;
TR0=1;
while(1){
for (w=0;w<15;w++){
a[w]=addata & 0xff;
clock=!clock;
}
}
}//main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -