⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad_da.lst

📁 很实用的单片机例程
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -