📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 07/05/2006 05:56:10 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char //定义一下方便使用
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg52.h> //包括一个52标准内核的头文件
5 //本课试验写入一个字节到24c02中
6
7 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的
8
9 #define WriteDeviceAddress 0xa0 //定义器件在IIC总线中的地址
10 #define ReadDviceAddress 0xa1
11 sbit SCL=P2^7;
12 sbit SDA=P2^6;
13
14 sbit P10=P1^0;
15
16 //定时函数
17 void DelayMs(uint number)
18 {
19 1 uchar temp;
20 1 for(;number!=0;number--)
21 1 {
22 2 for(temp=112;temp!=0;temp--) ;
23 2 }
24 1 }
25
26 //开始总线
27 void Start()
28 {
29 1 SDA=1;
30 1 SCL=1;
31 1 SDA=0;
32 1 SCL=0;
33 1 }
34
35 //结束总线
36 void Stop()
37 {
38 1 SCL=0;
39 1 SDA=0;
40 1 SCL=1;
41 1 SDA=1;
42 1 }
43
44 //测试ACK
45 bit TestAck()
46 {
47 1 bit ErrorBit;
48 1 SDA=1;
49 1 SCL=1;
50 1 ErrorBit=SDA;
51 1 SCL=0;
52 1 return(ErrorBit);
53 1 }
54
55 //写入8个bit到24c02
C51 COMPILER V7.07 MAIN 07/05/2006 05:56:10 PAGE 2
56 Write8Bit(uchar input)
57 {
58 1 uchar temp;
59 1 for(temp=8;temp!=0;temp--)
60 1 {
61 2 SDA=(bit)(input&0x80);
62 2 SCL=1;
63 2 SCL=0;
64 2 input=input<<1;
65 2 }
66 1 }
67
68 //写入一个字节到24c02中
69 void Write24c02(uchar ch,uchar address)
70 {
71 1 Start();
72 1 Write8Bit(WriteDeviceAddress);
73 1 TestAck();
74 1 Write8Bit(address);
75 1 TestAck();
76 1
77 1 Write8Bit(ch);
78 1 TestAck();
79 1
80 1 Stop();
81 1 DelayMs(10);
82 1 }
83
84
85
86 //老鼠爱大米
87 uchar code dami[]={
88 "321-|3.2_1-|3231|3_6.5-|3_5_665|65-3_2_|122_3_2|12--|"
89 };
90
91 //本课试验写老鼠爱大米的乐谱到24c02中
92 void main(void) // 主程序
93 {
94 1 uchar i;
95 1 for(i=0;dami[i]!=0;i++)
96 1 {
97 2 Write24c02(dami[i],i);// 逐个写入到24c02的中
98 2 }
99 1 Write24c02(0x00,i); //写入最后一个0
100 1
101 1 P10=0; //指示运行完毕
102 1 while(1); //程序挂起
103 1
104 1
105 1 }
106
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 129 ----
CONSTANT SIZE = 54 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILER V7.07 MAIN 07/05/2006 05:56:10 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -