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

📄 top.lst

📁 lcd1602显示系统 EWB Quartus2编译 电子综合设计试验箱程序
💻 LST
字号:
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:37:26 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          
  15          
  16          
  17          sbit sdata=P0^3;
  18          sbit sclk=P0^4;
  19          sbit load=P0^5;
  20          sbit ldac=P0^6;
  21          //注意跳线冒P13~P15插到右边
  22          sbit ds=P1^3;
  23          sbit sh=P1^4;
  24          sbit st=P1^5;
  25          
  26          //AD9850控制引脚,注意将P32~P35的跳线冒插到左边
  27          sbit DDS_reset=P3^2;
  28          sbit DDS_sclk=P3^3;
  29          sbit DDS_load=P3^4;   //FQUD
  30          sbit DDS_sdata=P3^5;  //DATA
  31          
  32          typedef unsigned char uint8;
  33          //extern uint8 code tab[13];
  34          //extern uint8 d[8];
  35          #define uchar unsigned char
  36          
  37          
  38          /*************************AD9850初始化********************************/
  39          void  ad9850init()
  40          {
  41   1        DDS_reset=0;
  42   1        DDS_reset=1;
  43   1        DDS_reset=0;
  44   1        DDS_load=0;
  45   1      }
  46          
  47          /*************************AD9850显示正弦波********************************/
  48          AD9850(float freq)
  49          {
  50   1          float fw;
  51   1          uchar temp;
  52   1              uchar i,j;
  53   1          uchar d[5];
  54   1      //   fw=freq*34.359738368;                     //d[4]中存放控制字最高位,即相位控制字
  55   1                                                     //Freq=MCLK*FW/2^32
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:37:26 PAGE 2   

  56   1          fw=freq*85.89934592;
  57   1          d[4]=0;
  58   1          d[0]=(unsigned long)fw;
  59   1          d[1]=(unsigned long)fw>>8;
  60   1          d[2]=(unsigned long)fw>>16;
  61   1          d[3]=(unsigned long)fw>>24;
  62   1          DDS_load=0; 
  63   1          DDS_sclk=0; 
  64   1          DDS_sclk=1;
  65   1          DDS_sclk=0;
  66   1          DDS_load=1;
  67   1          DDS_load=0;
  68   1           for(i=0;i<5;i++)
  69   1           {
  70   2              temp=d[i];
  71   2              for(j=0;j<8;j++)
  72   2              {
  73   3                  DDS_sclk=0;
  74   3                  if(temp&1) DDS_sdata=1;
  75   3                  else DDS_sdata=0;
  76   3                  DDS_sclk=1;
  77   3                  temp=temp>>1;
  78   3               }
  79   2            }
  80   1      
  81   1            DDS_load=1;
  82   1            DDS_load=0;
  83   1                DDS_load=0;
  84   1                DDS_load=0;
  85   1      }
  86          
  87          
  88          void WriteSIOByte(unsigned char led,unsigned char sel,unsigned char seg) 
  89          { 
  90   1        unsigned char i; 
  91   1              for (i=0;i<8;i++)
  92   1              {
  93   2                      led=led<<1; ds=CY; sh=1; sh=0;  
  94   2           }
  95   1              _nop_();//延时
  96   1              for (i=0;i<8;i++)
  97   1              {
  98   2                      sel=sel<<1; ds=CY; sh=1; sh=0;  
  99   2           }  
 100   1              _nop_();//延时
 101   1              for (i=0;i<8;i++)
 102   1              {
 103   2                      seg=seg<<1; ds=CY; sh=1; sh=0;  
 104   2           }
 105   1      
 106   1        //SER=1;//释放数据总线 
 107   1      //以下3条指令若在多字节时,应该移入多字节全发送完后在执行此3条指令 
 108   1         st=0; 
 109   1       // #asm("nop");//延时 
 110   1         //delay(2);
 111   1         st=1;//打入并行数据 
 112   1      }  
 113          
 114          main()
 115          {
 116   1              unsigned char xdata i,str[]="freq:1K ";
 117   1              unsigned char xdata str2[]="KeyValue:";
C51 COMPILER V7.50   TOP                                                                   08/22/2008 20:37:26 PAGE 3   

 118   1              //unsigned int v;
 119   1              ad9850init();
 120   1              AD9850(1000);//AD9850输出1KHZ的正弦波
 121   1          WriteSIOByte(1,0,0);//防止蜂鸣器乱叫
 122   1              InitSerial();
 123   1              //Timer0Init();
 124   1              InitSerialBuffer();//初始化串口波特率:9600bps
 125   1              LCDInit();
 126   1              LCDWriteCommand(0x80);
 127   1              for(i=0;i<strlen(str);i++)
 128   1                 LCDWriteData(str[i]);
 129   1              LCDWriteCommand(0xC0);
 130   1              for(i=0;i<strlen(str2);i++)
 131   1                 LCDWriteData(str2[i]);
 132   1              while(1)
 133   1              {       
 134   2                      
 135   2              }
 136   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    464    ----
   CONSTANT SIZE    =     19    ----
   XDATA SIZE       =   ----      33
   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 + -