|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (92.26 KB, 下載次數(shù): 20)
下載附件
2020-7-4 18:14 上傳
單片機源程序如下:
- #include<reg52.h>
- #include<string.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit RS = P1^0;
- sbit E = P1^1;
- uchar code table[] = {"hello world"};
- void delay(uint time);
- void lcdinit(void);
- void writecmd(int z);
- void writedata(char t);
- void display(uchar num);
- int main()
- {
- delay(1000);
- lcdinit();
- delay(500);
- writecmd(0x82);
- delay(500);
- display(strlen(table));
- while(1);
- return 0;
- }
- void lcdinit(void)
- {
- delay(15000);
- writecmd(0x30);
- delay(4500);
- writecmd(0x30);
- delay(300);
- writecmd(0x30);
- delay(650);
- writecmd(0x38); //function set
- writecmd(0x0c); //display on,cursor off,blink off
- writecmd(0x01); //clear display
- writecmd(0x06); //entry mode, set increment
- }
- void writecmd(int z)
- {
- RS = 0; // => RS = 0
- P2 = z; //Data transfer
- E = 1; // => E = 1
- delay(150);
- E = 0; // => E = 0
- delay(150);
- }
- void writedata(char t)
- {
- RS = 1; // => RS = 1
- P2 = t; //Data transfer
- E = 1; // => E = 1
- delay(150);
- E = 0; // => E = 0
- delay(150);
- }
- void display(uchar num)
- {
- uchar i;
- for(i = 0; i < num; i++)
- {
- writedata(table[i]);
- }
- delay(500);
- }
- void delay(uint time)
- {
- unsigned char a,b,i;
- for(i = time; i != 0;i--)
- for(b=199;b>0;b--)
- for(a=1;a>0;a--);
- }
復(fù)制代碼
|
-
-
a.rar
2020-7-4 16:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
22.33 KB, 下載次數(shù): 5, 下載積分: 黑幣 -5
|