?? shiyan3.lst
字號:
C51 COMPILER V8.01 SHIYAN3 11/06/2008 18:52:58 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE SHIYAN3
OBJECT MODULE PLACED IN shiyan3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shiyan3.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //*****液晶顯示程序設計(HD44780)*******
2 //*****設計者*******************展凌***
3 //****程序實現功能:簡單的顯示字符******
4 #include<reg52.h>
5 #define uchar unsigned char
6 sbit rs=P1^5;//寫信號
7 sbit rw=P1^6;//讀信號
8 sbit en=P1^7;//使能信號
9 sbit flag=ACC^7;//忙標志,flag=1(正在忙),flag=0(空閑)
10 uchar idata fttp[13]="www.heart.com";//要顯示的字符
11 uchar idata host[16]="ZhanLing welcome";
12
13 //*****************************************
14 void delay()//延時函數
15 {//用于讀寫數據要保持的時間
16 1 //時序圖要求是120ns,長點沒關系
17 1 uchar i;
18 1 for(i=200;i>0;i--);
19 1 }
20 //*****************************************
21 void busy_flag()//檢查忙標志函數
22 {//如果正在處理數據,則等待
23 1 do
24 1 {//這段要按照時序圖來寫
25 2 en=0;
26 2 rw=1;
27 2 rs=0;
28 2 en=1;
29 2 ACC=P0;
30 2 en=0;
31 2 }while(flag==1);
32 1 }
33 //*****************************************
34 void write_com(uchar com)//寫命令函數
35 {//向液晶寫入命令
36 1 //要按照時序圖來寫
37 1 busy_flag();//檢查忙
38 1 en=0;
39 1 rw=0;
40 1 rs=0;
41 1 en=1;
42 1 P0=com;//寫入命令
43 1 en=0;
44 1 delay();//延時一會
45 1 }
46 //******************************************
47 void write_dat(uchar dat)//寫數據函數
48 {//向LCD寫入數據,LCD會顯示出來的
49 1 //嚴格按照時序圖來寫
50 1 busy_flag();//檢查忙
51 1 en=0;
52 1 rw=0;
53 1 rs=1;
54 1 en=1;
55 1 P0=dat;//寫入數據
C51 COMPILER V8.01 SHIYAN3 11/06/2008 18:52:58 PAGE 2
56 1 en=0;
57 1 delay();//延時一會
58 1 }
59 //*****************************************
60 void intc()//初始化函數
61 {
62 1 write_com(0x01);//LCD清屏
63 1 write_com(0x02);//LCD光標復位
64 1 write_com(0x06);//寫入一數據,光標自動右移
65 1 write_com(0x0c);//不顯示光標
66 1 write_com(0x38);//P0的8位數據線都有效(必須)
67 1 }
68 //*********************************************
69 void main()//主函數
70 {
71 1 uchar i;
72 1 intc();//初始化
73 1 for(i=0;i<13;i++)
74 1 {
75 2 write_dat(fttp[i]);
76 2 //第1行頂格顯示13個字符
77 2 }
78 1 write_com(0x80+0x40);//改變光標位置
79 1 //0x80表示第1行頂格,0x80+0x40第2行頂格
80 1 //0x80+0x41表示第2行第2個位置
81 1 for(i=0;i<16;i++)
82 1 {
83 2 write_dat(host[i]);
84 2 //第2行頂格顯示16個字符
85 2 }
86 1 while(1);//循環
87 1 }
88 //**************************************************
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 122 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 29 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -