你說代碼是論壇上的,難道照抄都不會?可見粗心至極!
無標題.jpg (16.93 KB, 下載次數: 31)
下載附件
2024-2-15 22:03 上傳
- #include <STC8h.h>
- #include <stdio.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit RS=P2^5;
- sbit E= P2^6;
- sbit RW=P2^7;
- //sbit DB=P2;
- void delay(uint del) //延時1ms
- {
- uint i,j;
- for(i=0;i<del;i++)
- for(j=0;j<=168;j++);
- }
-
- void writecmd(uchar com)
- {
- E=0; //為什么要寫這一條呢,看看時序圖就清楚了
- RS=0;
- RW=0;
- P0 = com;
- delay(2); //延時一下會穩定很多,后面一條也是一樣的
- E=1;
- delay(2);
- E=0;
- }
- void writedata(uchar dat)
- {
- E=0; //為什么要寫這一條呢,看看時序圖就清楚了
- RS=1;
- RW=0;
- P0 = dat;
- delay(2); //延時一下會穩定很多,后面一條也是一樣的
- E=1;
- delay(2);
- E=0;
- }
- void init(void)
- {
- delay(15);
- writecmd(0x38);
- delay(5);
- writecmd(0x38);
- delay(5);
- writecmd(0x38);
- writecmd(0x38);
- writecmd(0x08);
- writecmd(0x01);
- writecmd(0x06);
- writecmd(0x0c);
- }
- uchar tab1[]=" www.zg4o1577.cn "; //要顯示什么就在這兒改
- uchar a[]="0123456";
- uchar table2[]="sun";
- uchar week[][3] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
- void main()
- {
- uchar j;
- P_SW2 |= 0x80; //擴展寄存器XFR訪問使能
- P0M1 = 0x00; P0M0 = 0x00; //設置為準雙向口
- P1M1 = 0x00; P1M0 = 0x00; //設置為準雙向口
- P2M1 = 0x00; P2M0 = 0x00; //設置為準雙向口
- P3M1 = 0x00; P3M0 = 0x00; //設置為準雙向口
- P4M1 = 0x00; P4M0 = 0x00; //設置為準雙向口
- P5M1 = 0x00; P5M0 = 0x00; //設置為準雙向口
- P6M1 = 0x00; P6M0 = 0x00; //設置為準雙向口
- P7M1 = 0x00; P7M0 = 0x00; //設置為準雙向口
-
- init();
- writecmd(0x80); //告訴液晶在哪個地方顯示 (設置地址指針)//80H+00
- for(j=0;j<16;j++) //有16個字符,要循環16次
- {
- writedata(tab1[j]);
- delay(2);
- }
- while(1);
- }
復制代碼
|