📄 lcd.lst
字号:
C51 COMPILER V7.09 LCD 12/06/2008 18:59:39 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /* 版权所有,请勿用于商业目的,仅供学习参考,以下为程序说明:
2 程序中所引用的歌曲16进制数值,均从WAV歌曲文件中提取,其中WAV文件以8000HZ采样8位编码,DAC0832同样
3 以8000HZ采样8位编码恢复波形,通过示波器观察声音波形
4 程序中3首歌曲均选取WAV文件中的192个采样点即24ms时间的波形
5 */
6 #include<reg52.h>
7 #include<absacc.h>
8 #define uchar unsigned char
9 #define uint unsigned int
10 uchar code table1[]="The 1th oneM:6.7 m:3.5 24ms";
11 uchar code table2[]="The 2th oneM:6.1 m:4.5 24ms";
12 uchar code table3[]="The 3th oneM:6.8 m:3.0 24ms";
13 uchar code tableFailure[]="Failure!Not Defined!";
14 uchar code Music1[]={ 0x72,0x75,0x6C,0x78,0x78,0x7E,0x85,0x7E,0x86,0x77,0x7A,0x75,0x6A,0x76,0x6C,0x7B,
15 0x7A,0x7B,0x83,0x75,0x7A,0x6F,0x71,0x6E,0x70,0x70,0x7B,0x7C,0x8F,0x8D,0x95,0x95,
16 0x94,0x93,0x93,0x95,0x99,0x98,0xA0,0x9B,0x9E,0x9E,0x9A,0x9B,0x9A,0x97,0x96,0x8E,
17 0x93,0x8A,0x90,0x89,0x8A,0x86,0x81,0x7F,0x77,0x79,0x74,0x7A,0x72,0x7A,0x70,0x75,
18 0x67,0x6D,0x5A,0x65,0x59,0x62,0x61,0x60,0x69,0x60,0x70,0x65,0x71,0x68,0x6A,0x67,
19 0x65,0x6A,0x6A,0x71,0x74,0x75,0x78,0x77,0x74,0x7F,0x6F,0x75,0x6D,0x69,0x73,0x6C,
20 0x81,0x7A,0x89,0x8B,0x90,0x94,0x9E,0x98,0xAC,0x9E,0xAA,0x9E,0x98,0x97,0x8F,0x99,
21 0x97,0x9E,0xA5,0xA0,0xAA,0xA0,0x9F,0x99,0x8A,0x8C,0x7F,0x80,0x86,0x82,0x8F,0x8A,
22 0x89,0x87,0x7E,0x85,0x75,0x80,0x71,0x7D,0x73,0x80,0x75,0x7C,0x72,0x71,0x70,0x6C,
23 0x75,0x6C,0x75,0x71,0x72,0x70,0x6D,0x6C,0x67,0x6C,0x6B,0x6F,0x70,0x74,0x74,0x77,
24 0x72,0x76,0x6C,0x71,0x62,0x6C,0x62,0x6D,0x72,0x75,0x80,0x7D,0x88,0x88,0x88,0x8F,
25 0x85,0x91,0x87,0x94,0x93,0x95,0x9D,0x9B,0xA0,0xA0,0x9E,0x9A,0x9A,0x93,0x94,0x8D,0x00};
26 uchar code Music2[]={ 0x79,0x85,0x78,0x8F,0x75,0x8D,0x77,0x8D,0x75,0x94,0x74,0x90,0x77,0x91,0x76,0x94,
27 0x76,0x92,0x78,0x94,0x7B,0x90,0x7E,0x8C,0x7F,0x8B,0x83,0x85,0x84,0x85,0x81,0x86,
28 0x82,0x85,0x83,0x87,0x88,0x88,0x88,0x87,0x86,0x80,0x88,0x7E,0x86,0x81,0x82,0x7A,
29 0x81,0x77,0x85,0x81,0x85,0x7E,0x81,0x7A,0x83,0x7E,0x84,0x7E,0x7F,0x80,0x7E,0x7B,
30 0x7E,0x80,0x7E,0x84,0x81,0x7E,0x85,0x83,0x87,0x84,0x87,0x7C,0x86,0x7B,0x85,0x7C,
31 0x87,0x7E,0x87,0x7D,0x85,0x7A,0x88,0x81,0x89,0x7A,0x89,0x78,0x86,0x7A,0x85,0x73,
32 0x84,0x73,0x83,0x77,0x86,0x7B,0x84,0x7D,0x82,0x78,0x7F,0x76,0x80,0x77,0x7F,0x72,
33 0x7D,0x75,0x7D,0x79,0x82,0x7D,0x80,0x7C,0x7C,0x77,0x81,0x79,0x7E,0x75,0x7B,0x74,
34 0x7D,0x7C,0x80,0x82,0x7C,0x81,0x7A,0x84,0x7B,0x86,0x7B,0x81,0x77,0x7D,0x77,0x7F,
35 0x7A,0x82,0x74,0x80,0x75,0x88,0x7B,0x8E,0x7A,0x8B,0x78,0x86,0x7C,0x88,0x7F,0x8F,
36 0x78,0x90,0x79,0x96,0x7E,0x9B,0x7D,0x9C,0x7E,0x96,0x83,0x93,0x85,0x96,0x83,0x92,
37 0x82,0x97,0x83,0x96,0x83,0x8F,0x80,0x8C,0x80,0x7E,0x81,0x76,0x82,0x78,0x80,0x75,0x00};
38 uchar code Music3[]={ 0x75,0x6C,0x75,0x71,0x78,0x77,0x73,0x69,0x75,0x65,0x74,0x68,0x72,0x5D,0x76,0x60,
39 0x73,0x6E,0x75,0x7A,0x74,0x84,0x7A,0x99,0x7B,0x93,0x7C,0x7C,0x7E,0x69,0x78,0x53,
40 0x7B,0x4E,0x7B,0x4C,0x7A,0x5B,0x7E,0x64,0x82,0x75,0x83,0x8A,0x83,0x88,0x84,0x81,
41 0x7F,0x7F,0x7B,0x76,0x7A,0x71,0x7A,0x79,0x7E,0x80,0x7E,0x83,0x80,0x88,0x7C,0x8E,
42 0x77,0x8D,0x7C,0x86,0x78,0x7F,0x79,0x82,0x7A,0x82,0x7A,0x81,0x79,0x8C,0x7C,0x9C,
43 0x80,0xA6,0x7D,0xB1,0x84,0xAE,0x85,0x97,0x84,0x82,0x81,0x76,0x82,0x6E,0x84,0x6D,
44 0x7F,0x7C,0x7F,0x8C,0x7F,0x95,0x7E,0x9C,0x81,0x97,0x85,0x86,0x87,0x83,0x8A,0x87,
45 0x8F,0x88,0x94,0x8C,0x97,0x96,0x9E,0xA8,0x9D,0xA6,0x9B,0x9B,0x9A,0x94,0x97,0x84,
46 0x91,0x77,0x90,0x7F,0x98,0x88,0x95,0x83,0x95,0x88,0x95,0x97,0x8C,0x96,0x8A,0x98,
47 0x8A,0x98,0x86,0x8B,0x88,0x81,0x8B,0x7F,0x85,0x80,0x84,0x7E,0x83,0x89,0x7F,0x92,
48 0x7C,0x8B,0x79,0x85,0x76,0x79,0x72,0x67,0x71,0x60,0x71,0x65,0x6F,0x71,0x6B,0x80,
49 0x6B,0x88,0x67,0x89,0x66,0x87,0x6C,0x74,0x6B,0x60,0x6E,0x5D,0x73,0x51,0x74,0x51,0x00};
50
51
52 #define pa XBYTE[0x0000] //定义8255口地址
53 #define pb XBYTE[0x2000]
54 #define control8255 XBYTE[0x6000]
55 sbit lcdrs = P3^2; //LCD控制位
C51 COMPILER V7.09 LCD 12/06/2008 18:59:39 PAGE 2
56 sbit lcden = P3^3;
57 sbit daccs=P3^1; //DAC控制位
58 sbit dacwr=P3^0;
59 uchar music123=1; //当前播放歌曲代号
60 uchar musicnum=0; //歌曲数据采样点
61
62 void DisplayFailure () ;
63 void delay(uint z) //延时子程序,单位约1ms
64 {
65 1 uint x,y;
66 1 for(x=z;x>0;x--)
67 1 for(y=110;y>0;y--);
68 1 }
69
70
71 void keyscan() //********键盘扫描子程序************
72 {
73 1 uchar temp;
74 1 while(1)
75 1 {
76 2 P1=0xfe; //扫描第一行
77 2 temp=P1;
78 2 temp=temp & 0xf0;
79 2 if (temp!=0xf0) //消抖动检查与延时
80 2 {
81 3 delay(5);
82 3 temp=P1;
83 3 temp=temp & 0xf0;
84 3 if (temp!=0xf0)
85 3 {
86 4 uchar ChangeFlag=music123;//前进快退标志
87 4 uchar ReplayFlag=0; //重播标志
88 4 switch(temp)
89 4 {
90 5 case 0xe0:
91 5 {
92 6 music123--;
93 6 if(music123==0)music123=3;
94 6 break;
95 6 }
96 5 case 0xd0:
97 5 { music123++;
98 6 if(music123==4) music123=1;
99 6 break;
100 6 }
101 5 case 0xb0:
102 5 {
103 6 ReplayFlag=1;
104 6 break;
105 6 }
106 5 case 0x70:
107 5 {
108 6 //CircleFlag=1;
109 6 break;
110 6 }
111 5 }
112 4
113 4 while(temp!=0xf0) //判断按键是否松开
114 4 {
115 5 temp=P1;
116 5 temp=temp & 0xf0;
117 5 }
C51 COMPILER V7.09 LCD 12/06/2008 18:59:39 PAGE 3
118 4 if(ChangeFlag!=music123||ReplayFlag==1)//前进后退标志或重播标志改变开始播放
119 4 {
120 5 TR0=1;
121 5 }
122 4 else
123 4 DisplayFailure ();
124 4
125 4 }
126 3 }
127 2 P1=0xfd; //扫描第二行
128 2 temp=P1;
129 2 temp=temp & 0xf0;
130 2 if (temp!=0xf0)
131 2 {
132 3 delay(5);
133 3 temp=P1;
134 3 temp=temp & 0xf0;
135 3 if (temp!=0xf0)
136 3 {
137 4 switch(temp)
138 4 {
139 5 case 0xe0:
140 5 {
141 6 // key=5;
142 6 break;
143 6 }
144 5 case 0xd0:
145 5 //key=6;
146 5 break;
147 5 case 0xb0:
148 5 //key=7;
149 5 break;
150 5 case 0x70:
151 5 // key=8;
152 5 break;
153 5 }
154 4 while(temp!=0xf0)
155 4 {
156 5 temp=P1;
157 5 temp=temp & 0xf0;
158 5 }
159 4
160 4 DisplayFailure (); //以下按键没定义显示提示
161 4 }
162 3 }
163 2 P1=0xfb; //扫描第三行
164 2 temp=P1;
165 2 temp=temp & 0xf0;
166 2 if (temp!=0xf0)
167 2 {
168 3 delay(5);
169 3 temp=P1;
170 3 temp=temp & 0xf0;
171 3 if (temp!=0xf0)
172 3 {
173 4 switch(temp)
174 4 {
175 5 case 0xe0:
176 5 // key=9;
177 5 break;
178 5 case 0xd0:
179 5 // key=10;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -