📄 serialdac.lst
字号:
C51 COMPILER V7.20 SERIALDAC 07/26/2007 16:42:37 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE SERIALDAC
OBJECT MODULE PLACED IN SerialDAC.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE SerialDAC.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****************************************/
2 /* Copyright (c) 2005, 通信工程学院 */
3 /* All rights reserved. */
4 /* 作 者:戴 佳 */
5 /*****************************************/
6
7 #include "SerialDAC.h"
8
9 /* 延时t毫秒 */
10 void delay(uint t)
11 {
12 1 uint i;
13 1 while(t--)
14 1 {
15 2 /* 对于12M时钟,约延时1ms */
16 2 for (i=0;i<125;i++)
17 2 {}
18 2 }
19 1 }
20
21 /* 起始条件子函数 */
22 void start(void)
23 {
24 1 SDA = 1;
25 1 SCL = 1;
26 1 _nop_();
27 1 SDA = 0;
28 1 _nop_();
29 1 }
30
31 /* 停止条件子函数 */
32 void stop(void)
33 {
34 1 SDA = 0;
35 1 SCL = 1;
36 1 _nop_();
37 1 SDA = 1;
38 1 _nop_();
39 1 }
40
41 /* 应答子函数 */
42 void ack(void)
43 {
44 1 SDA = 0;
45 1 _nop_();
46 1 SCL = 1;
47 1 _nop_();
48 1 SCL = 0;
49 1 }
50
51 /* 发送数据子程序,ch为要发送的数据 */
52 void send(uchar ch)
53 {
54 1 uchar BitCounter = 8; //位数控制
55 1 uchar tmp; //中间变量控制
C51 COMPILER V7.20 SERIALDAC 07/26/2007 16:42:37 PAGE 2
56 1 do
57 1 {
58 2 tmp = ch;
59 2 SCL = 0;
60 2 if ((tmp&0x80)==0x80) //如果最高位是1
61 2 SDA = 1;
62 2 else
63 2 SDA = 0;
64 2 SCL = 1;
65 2 tmp = ch<<1; //左移
66 2 ch = tmp;
67 2 BitCounter--;
68 2 }
69 1 while(BitCounter);
70 1 SCL = 0;
71 1 }
72
73 /* 串行DA转换子函数 */
74 void DACOut(unsigned int ch)
75 {
76 1 start(); // 发送启动信号
77 1 send(0x58); // 发送地址字节
78 1 ack();
79 1 send(0x00); // 发送命令字节
80 1 ack();
81 1 send(ch); // 发送数据字节
82 1 ack();
83 1 stop(); // 结束一次转换
84 1 }
85
86 /* 主函数 */
87 void main(void)
88 {
89 1 // unsigned int i;
90 1 while(1)
91 1 {
92 2
93 2 // for (i=200;i<=255;i++)
94 2 //{
95 2 // delay(2000); // 间隔约2s
96 2
97 2 DACOut(200);
98 2 // 调用串行DA转换子函数
99 2 //}
100 2 // delay(2000); // 延时2s
101 2 }
102 1 }
103
104
105
106
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 125 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V7.20 SERIALDAC 07/26/2007 16:42:37 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -