|
視頻:
1.rar
(1.15 MB, 下載次數(shù): 7)
2020-9-12 17:07 上傳
點(diǎn)擊文件名下載附件
12864亂碼現(xiàn)象
- #include<reg51.h>
- #include<intrins.h>
- #include<stdlib.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define LCD_data P0 //數(shù)據(jù)口
- #define ushort unsigned short int
- ushort b;
- /*******引腳定義*******/
- sbit LCD_RS=P3^5;
- sbit LCD_RW=P3^6;
- sbit LCD_EN=P3^4;
- sbit LCD_PSB=P3^7;
- sbit wela=P2^6;
- sbit dula=P2^7;
- uchar code dis1[]={"abcdefg"};
- uchar code dis2[]={"您好"};
- uchar code dis3[]={"歡迎光臨"};
- uchar code dis4[]={"www.baidu.com"};
- uchar code dis5[]={"數(shù)值:"};
- uchar dis6[5]={"L 000"};
- uchar dis7[5]={"R 000"};
- uchar code dis8[]={""};
- /*******延時(shí)函數(shù)*******/
- void delay_1ms(uint x)
- {
- uint i,j;
- for(j=0;j<x;j++)
- for(i=0;i<110;i++);
- }
- void quzhi()
- {
- uint f=dis6[5],g=dis7[5];
- for(f=0;f<5;f++)
- for(g=0;g<5;g++);
- }
- /*******寫(xiě)指令*******/
- void write_cmd(uchar cmd)
- {
- LCD_RS=0;
- LCD_RW=0;
- LCD_EN=0;
- P0=cmd;
- delay_1ms(5);
- LCD_EN=1;
- delay_1ms(5);
- LCD_EN=0;
- }
- /*******顯示數(shù)據(jù)*******/
- void write_dat(uchar dat)
- {
- LCD_RS=1;
- LCD_RW=0;
- LCD_EN=0;
- P0=dat;
- delay_1ms(5);
- LCD_EN=1;
- delay_1ms(5);
- LCD_EN=0;
- }
- /*******設(shè)定初始顯示位置*******/
- void lcd_pos(uchar x,uchar y)
- {
- uchar pos;
- if(x==0)
- x=0x82;
- else if(x==1)
- x=0x91;
- else if(x==2)
- x=0x8A;
- else if(x==3)
- x=0x98;
- pos=x+y;
- write_cmd(pos);
- }
- void lcd_pos2(uchar x,uchar y)
- {
- uchar pos2;
- if(x==0)
- x=0x80;
- else if(x==1)
- x=0x93;
- else if(x==2)
- x=0x8B;
- else if(x==3)
- x=0x98;
- pos2=x+y;
- write_cmd(pos2);
- }
- /*******LCD初始化程序*******/
- void lcd_init()
- {
- LCD_PSB=1; //并口方式
- write_cmd(0x30);
- delay_1ms(5);
- write_cmd(0x0c); //顯示開(kāi),關(guān)光標(biāo)
- delay_1ms(5);
- write_cmd(0x01); //清除LCD的顯示內(nèi)容
- delay_1ms(5);
- }
- /*******LCD數(shù)據(jù)顯示位置*******/
- void shuju()
- {
- uchar i;
- lcd_pos(0,0); //第一行
- while(dis1[i]!='\0')
- {
- write_dat(dis1[i]);
- i++;
- }
- lcd_pos(1,0); //第二行
- i=0;
- while(dis2[i]!='\0')
- {
- write_dat(dis2[i]);
- i++;
- }
- lcd_pos(2,0); //第三行
- i=0;
- while(dis3[i]!='\0')
- {
- write_dat(dis3[i]);
- i++;
- }
- lcd_pos(3,0); //第四行
- i=0;
- while(dis4[i]!='\0')
- {
- write_dat(dis4[i]);
- i++;
- }
- delay_1ms(2000);
- write_cmd(0x01);
- lcd_pos2(0,0); //第一行
- i=0;
- while(dis5[i]!='\0')
- {
- write_dat(dis5[i]);
- i++;
- }
- lcd_pos2(1,0); //第二行
- i=0;
- while(dis6[i]!='\0')
- {
- write_dat(dis6[i]);
- i++;
- }
- lcd_pos2(2,0); //第三行
- i=0;
- while(dis7[i]!='\0')
- {
- write_dat(dis7[i]);
- i++;
- }
- lcd_pos2(3,0); //第四行
- i=0;
- while(dis8[i]!='\0')
- {
- write_dat(dis8[i]);
- i++;
- }
- }
- /*******主程序*******/
- void main()
- {
- uchar i;
- wela=0;
- dula=0;
- TMOD=0x01;
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- EA=1;
- ET0=1;
- TR0=1;
- delay_1ms(10);
- lcd_init();
- shuju();
- quzhi();
- while(1)
- {
- lcd_pos2(2,0); //第三行
- i=0;
- while(dis7[i]!='\0')
- {
- write_dat(dis7[i]);
- i++;
- }
- lcd_pos2(1,0); //第二行
- i=0;
- while(dis6[i]!='\0')
- {
- write_dat(dis6[i]);
- i++;
- }
- }
- }
- void T0_time() interrupt 1
- {
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- b++;
- dis7[2]='0'+b;
- if (b>9)
- {
- b=0;
- }
- dis7[3]='0'+b;
- if (b>99)
- {
- b=0;
- }
- dis7[4]='0'+b;
- if (b>999)
- {
- b=0;
- }
- dis6[2]='0'+b;
- if (b>9)
- {
- b=0;
- }
- dis6[3]='0'+b;
- if (b>9)
- {
- b=0;
- }
- dis6[4]='0'+b;
- if (b>9)
- {
- b=0;
- }
- }
復(fù)制代碼 |
|