📄 ad_da.lst
字号:
C51 COMPILER V8.05a AD_DA 12/06/2010 21:00:25 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE AD_DA
OBJECT MODULE PLACED IN AD_DA.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE AD_DA.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***************************************************************************************************
2 *** 慧净电子:1天入门、8天学会、28天精通单片机与C语言视频教程配套程序源码 ***
3 *** 实验板:HJ-1 HJ-1G 开发板 ***
4 *** MCU: STC89C52/AT89S52 部分C源码可以直接用于项目开发、欢迎复制共享、功德无量、没有版权 ***
5 *** 全部资料免费共享:慧净电子如有伤害到你请来信,我们的免费助学会员会定期给你删除 ***
6 *** 编译器:KEIL ***
7 *** 百度交流空间:http://hi.baidu.com/HJMCU ***
8 *** 论坛交流:http://hjdz.5d6d.com/ 欢迎来论坛一分钱不要下载配套的仿真电路 ***
9 *** 配套的硬件学习板网址:http://shop37031453.taobao.com/ ***
10 *** 日期:2008.8.8 ***
11 *** 目标:用C语言写程序就这么简单、慧争祝你1天入门、8天学会、1年精通单片机与C语言、找个好工作 ***
12 *** 慧净系列开发板:51开发板1G AVR开发板2G PIC开发板5G MPS430开发板6G ARM开发板7G ***
13 *** 慧净系列烧写器、仿真器:51/AVR HJ-ISP AVR仿真器 HJ-JTAG PIC烧写器 HJ-PIC ***
14 *** 慧净电子网:WWW.HLMCU.COM 免费下载本开发板最新资料,还有51/AVR/PIC/MPS430/ARM资料 ***
15 *** 慧净邮箱:hjmcu@139.com ***
16 ****************************************************************************************************/
17 /*-----------------------------------------------
18 名称:IIC协议 PCF8591ADDA转换 显示只有一个可以调节的
19 内容:此程序通过IIC协议对DAAD芯片操作, 并输出模拟量,用LED亮度渐变指示
20 杜邦线 接上 P2.3到VCC
21 ------------------------------------------------*/
22 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
23 #include <intrins.h> //包含NOP空指令函数_nop_();
24
25 #define AddWr 0x90 //写数据地址
26 #define AddRd 0x91 //读数据地址
27
28 sbit RST=P2^5; //时钟
29 sbit Sda=P2^0; //定义总线连接端口
30 sbit Scl=P2^1;
31 sbit Fm=P2^3; //FM
32 sbit dula=P2^6;
33 sbit wela=P2^7;
34 bit ADFlag; //定义AD采样标志位
35 unsigned char code Datatab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//7段数共阴码管段码表
36 data unsigned char Display[8];//定义临时存放数码管数值
37 /*------------------------------------------------
38 延时程序
39 ------------------------------------------------*/
40 void mDelay(unsigned char j)
41 {
42 1 unsigned int i;
43 1 for(;j>0;j--)
44 1 {
45 2 for(i=0;i<125;i++)
46 2 {;}
47 2 }
48 1 }
49 /*------------------------------------------------
50 初始化定时器1
51 ------------------------------------------------*/
52 void Init_Timer1(void)
53 {
54 1 TMOD |= 0x10;
55 1 TH1=0xff; /* Init value */
C51 COMPILER V8.05a AD_DA 12/06/2010 21:00:25 PAGE 2
56 1 TL1=0x00;
57 1 //PT1=1; /* 优先级 */
58 1 EA=1; /* interupt enable */
59 1 ET1=1; /* enable timer1 interrupt */
60 1 TR1=1;
61 1 }
62 /*------------------------------------------------
63 启动IIC总线
64 ------------------------------------------------*/
65 void Start(void)
66 {
67 1 Sda=1;
68 1 _nop_();
69 1 Scl=1;
70 1 _nop_();
71 1 Sda=0;
72 1 _nop_();
73 1 Scl=0;
74 1 }
75
76
77 /*------------------------------------------------
78 停止IIC总线
79 ------------------------------------------------*/
80 void Stop(void)
81 {
82 1 Sda=0;
83 1 _nop_();
84 1 Scl=1;
85 1 _nop_();
86 1 Sda=1;
87 1 _nop_();
88 1 Scl=0;
89 1 }
90
91
92 /*------------------------------------------------
93 应答IIC总线
94 ------------------------------------------------*/
95 void Ack(void)
96 {
97 1 Sda=0;
98 1 _nop_();
99 1 Scl=1;
100 1 _nop_();
101 1 Scl=0;
102 1 _nop_();
103 1 }
104
105
106 /*------------------------------------------------
107 非应答IIC总线
108 ------------------------------------------------*/
109 void NoAck(void)
110 {
111 1 Sda=1;
112 1 _nop_();
113 1 Scl=1;
114 1 _nop_();
115 1 Scl=0;
116 1 _nop_();
117 1 }
C51 COMPILER V8.05a AD_DA 12/06/2010 21:00:25 PAGE 3
118
119
120 /*------------------------------------------------
121 发送一个字节
122 ------------------------------------------------*/
123 void Send(unsigned char Data)
124 {
125 1 unsigned char BitCounter=8;
126 1 unsigned char temp;
127 1
128 1 do
129 1 {
130 2 temp=Data;
131 2 Scl=0;
132 2 _nop_();
133 2 if((temp&0x80)==0x80)
134 2 Sda=1;
135 2 else
136 2 Sda=0;
137 2
138 2 Scl=1;
139 2 temp=Data<<1;
140 2 Data=temp;
141 2 BitCounter--;
142 2 }
143 1 while(BitCounter);
144 1 Scl=0;
145 1 }
146
147
148 /*------------------------------------------------
149 读入一个字节并返回
150 ------------------------------------------------*/
151 unsigned char Read(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -