原來的延時都是3ms,我測試的時候改成的15ms,現在顯示的是第一行有一堆亂碼,第二行空。麻煩各位大神幫我看看哪里出問題了唄,謝謝。
- #include <stc89c5xrc.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- typedef unsigned int u16;
- typedef unsigned char u8;
- sbit lcdrs=P1^0;
- sbit lcdrw=P1^1;
- sbit lcden=P2^5;
- sbit P2_0=P2^0;
- sbit P2_1=P2^1;
- uchar key_s, key_v, tmp;
- uchar code table1[]=" 5675747456: ";
- uchar code table2[]=" the best one! ";
- void delayms(uint x);
- void Lcd_1602_write(uchar com,date);
- void Lcd_1602_init();
- void main() {
- uchar num;
- P0=0xFF;
- Lcd_1602_init();
- Lcd_1602_write(0,0x80);
- for(num=0;num<16;num++)
- {
- Lcd_1602_write(1,table1[num]);
- delayms(15);
- }
- Lcd_1602_write(0,0xc0);
- for(num=0;num<16;num++)
- {
- Lcd_1602_write(1,table2[num]);
- delayms(15);
- }
- while(1) {
- }
- }
- void delayms(uint x)
- {
- uint i,j;
- for(i=x;i>0;i--)
- for(j=110;j>0;j--);
- }
- void Lcd_1602_write(uchar com,date)
- {
- uchar i;
- lcdrw=0;
- lcdrs=com;
- for(i=0;i<2;i++)
- {
- lcden=1;
- P0=(P0&0x0f)|(date&0xf0);
- delayms(15);
- lcden=0
- date<<=4;
- }
- }
- void Lcd_1602_init()
- {
- Lcd_1602_write(0,0x28);
- delayms(15);
- lcden=1;
- lcden=0;
- Lcd_1602_write(0,0x28);
- Lcd_1602_write(0,0x0e);
- Lcd_1602_write(0,0x06);
- Lcd_1602_write(0,0x01);
- }
復制代碼
|