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

📄 top.lst

📁 lcd1286显示模块 EWB Quartus2编译 电子综合设计试验箱程序
💻 LST
字号:
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:40:12 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE TOP
OBJECT MODULE PLACED IN top.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE top.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*电子综合设计实验箱测试程序
   2          说明:此程序为51单片机系统模块,键盘LED模块,LCD1602显示模块,LCD12864显示模块
   3          万能板模块测试程序
   4          插上跳线冒J104确保总线给其他模块供电
   5          技术支持:qq:190189667 胡玉贵
   6          */
   7          #include <reg51.h>
   8          #include <absacc.h>
   9          #include <string.h>
  10          #include<INTRINS.H>
  11          #include "lcd.h"
  12          #include "serial.h"
  13          //#include "lcd12864.h"
  14          #include "ziku.h"
  15          #include "keypad.h"
  16          #include "led.h"
  17          #include "OCMJ.h"
  18          #include "TLC549.h"
  19          #include "EPM240.h"
  20          
  21          
  22          sbit sdata=P0^3;
  23          sbit sclk=P0^4;
  24          sbit load=P0^5;
  25          sbit ldac=P0^6;
  26          //注意跳线冒P13~P15插到右边
  27          sbit ds=P1^3;
  28          sbit sh=P1^4;
  29          sbit st=P1^5;
  30          
  31          //AD9850控制引脚,注意将P32~P35的跳线冒插到左边
  32          sbit DDS_reset=P3^2;
  33          sbit DDS_sclk=P3^3;
  34          sbit DDS_load=P3^4;   //FQUD
  35          sbit DDS_sdata=P3^5;  //DATA
  36          
  37          typedef unsigned char uint8;
  38          extern uint8 code tab[13];
  39          extern uint8 d[8];
  40          
  41          uchar code tab1[]={
  42          "  电子综合设计  "
  43          "  南京师范大学  "
  44          "  实验系统V1.0  "
  45          "   2007/10/30   "
  46          };
  47          
  48          /*************************AD9850初始化********************************/
  49          void  ad9850init()
  50          {
  51   1        DDS_reset=0;
  52   1        DDS_reset=1;
  53   1        DDS_reset=0;
  54   1        DDS_load=0;
  55   1      }
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:40:12 PAGE 2   

  56          
  57          /*************************AD9850显示正弦波********************************/
  58          AD9850(float freq)
  59          {
  60   1          float fw;
  61   1          uchar temp;
  62   1              uchar i,j;
  63   1          uchar d[5];
  64   1      //   fw=freq*34.359738368;                     //d[4]中存放控制字最高位,即相位控制字
  65   1                                                     //Freq=MCLK*FW/2^32
  66   1          fw=freq*85.89934592;
  67   1          d[4]=0;
  68   1          d[0]=(unsigned long)fw;
  69   1          d[1]=(unsigned long)fw>>8;
  70   1          d[2]=(unsigned long)fw>>16;
  71   1          d[3]=(unsigned long)fw>>24;
  72   1          DDS_load=0; 
  73   1          DDS_sclk=0; 
  74   1          DDS_sclk=1;
  75   1          DDS_sclk=0;
  76   1          DDS_load=1;
  77   1          DDS_load=0;
  78   1           for(i=0;i<5;i++)
  79   1           {
  80   2              temp=d[i];
  81   2              for(j=0;j<8;j++)
  82   2              {
  83   3                  DDS_sclk=0;
  84   3                  if(temp&1) DDS_sdata=1;
  85   3                  else DDS_sdata=0;
  86   3                  DDS_sclk=1;
  87   3                  temp=temp>>1;
  88   3               }
  89   2            }
  90   1      
  91   1            DDS_load=1;
  92   1            DDS_load=0;
  93   1                DDS_load=0;
  94   1                DDS_load=0;
  95   1      }
  96          
  97          
  98          void WriteSIOByte(unsigned char led,unsigned char sel,unsigned char seg) 
  99          { 
 100   1        unsigned char i; 
 101   1              for (i=0;i<8;i++)
 102   1              {
 103   2                      led=led<<1; ds=CY; sh=1; sh=0;  
 104   2           }
 105   1              _nop_();//延时
 106   1              for (i=0;i<8;i++)
 107   1              {
 108   2                      sel=sel<<1; ds=CY; sh=1; sh=0;  
 109   2           }  
 110   1              _nop_();//延时
 111   1              for (i=0;i<8;i++)
 112   1              {
 113   2                      seg=seg<<1; ds=CY; sh=1; sh=0;  
 114   2           }
 115   1      
 116   1        //SER=1;//释放数据总线 
 117   1      //以下3条指令若在多字节时,应该移入多字节全发送完后在执行此3条指令 
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:40:12 PAGE 3   

 118   1         st=0; 
 119   1       // #asm("nop");//延时 
 120   1         //delay(2);
 121   1         st=1;//打入并行数据 
 122   1      }  
 123          
 124          dac1_tlc5620(unsigned char  send_char)
 125          {
 126   1              uchar i;
 127   1                      load=1;
 128   1                      sclk=1;sdata=0;sclk=0;
 129   1                      sclk=1;sdata=0;sclk=0;
 130   1              sclk=1;sdata=0;sclk=0;
 131   1      
 132   1                      for(i=0;i<8;i++)
 133   1                      {
 134   2                              sclk=1;
 135   2                              if(send_char&0x80) sdata=1;
 136   2                                      else sdata=0;
 137   2                                      sclk=0;
 138   2                                      send_char=send_char<<1;
 139   2                      }
 140   1                      load=0;
 141   1                      load=1;
 142   1      
 143   1      }
 144          
 145          dac2_tlc5620(unsigned char  send_char)
 146          {
 147   1              uchar i;
 148   1                      //ldac=1;
 149   1                      load=0;//load=1;
 150   1                      sclk=0;sdata=0;sclk=1;//sclk=1;sdata=1;sclk=0;
 151   1                      sclk=0;sdata=0;sclk=1;//sclk=1;sdata=1;sclk=0;
 152   1              sclk=0;sdata=1;sclk=1;//sclk=1;sdata=1;sclk=0;
 153   1      
 154   1                      for(i=0;i<8;i++)
 155   1                      {
 156   2                              sclk=0;//sclk=1;
 157   2                              if(send_char&0x80) sdata=0;//sdata=1;
 158   2                                      else //sdata=0;
 159   2                                      sclk=1;//sclk=0;
 160   2                                      send_char=send_char<<1;
 161   2                      }
 162   1                      load=1;//load=0;
 163   1                      load=0;//load=1;
 164   1      
 165   1      }
 166          
 167          main()
 168          {
 169   1              //unsigned char xdata str[]="freq:1K ";
 170   1              //unsigned char xdata str2[]="KeyValue:";
 171   1              //unsigned int v;
 172   1              ad9850init();
 173   1              AD9850(1000);//AD9850输出1KHZ的正弦波
 174   1          WriteSIOByte(1,0,0);//防止蜂鸣器乱叫
 175   1              InitSerial();
 176   1              Timer0Init();
 177   1              InitSerialBuffer();//初始化串口波特率:9600bps
 178   1              init_lcd ();//LCD12864测试程序
 179   1              chn_disp (tab1);
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:40:12 PAGE 4   

 180   1              while(1)
 181   1              {       
 182   2              }
 183   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    418    ----
   CONSTANT SIZE    =    233    ----
   XDATA SIZE       =   ----      13
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -