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

📄 dds9954.lst

📁 基于AD9954的扫频仪程序设计
💻 LST
📖 第 1 页 / 共 3 页
字号:
 222          ** 输 出:      无
 223          ** 全局变量:    无
 224          ** 调用模块:    无
 225          ***********************************************************************/
 226          
 227          void AD9954_Update(void)
 228          {
 229   1      
 230   1       IO_UPDATE_0();
 231   1       
 232   1       nNop(40);
 233   1       IO_UPDATE_1(); 
 234   1      }
 235          
 236          
 237          void  AD9954_LinearSweep_Init(void)
 238          {
 239   1      
 240   1      WriteByte(0x00);
 241   1      
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 5   

 242   1      WriteByte(0x00);
 243   1      WriteByte(0x20);
 244   1      WriteByte(0x00);
 245   1      WriteByte(0x44);
 246   1      AD9954_Update();
 247   1      
 248   1      }
 249          
 250          void  AD9954_LinearSweep_Freq(void)
 251           {
 252   1      
 253   1       
 254   1       
 255   1        WriteByte(0x04);
 256   1        
 257   1        WriteByte(0x00);
 258   1        WriteByte(0x09);
 259   1        WriteByte(0xD4);
 260   1        WriteByte(0x95);
 261   1      
 262   1        WriteByte(0x06);
 263   1        
 264   1        WriteByte(0x00);
 265   1        WriteByte(0x16);
 266   1        WriteByte(0xF0);
 267   1        WriteByte(0x06);
 268   1      
 269   1      
 270   1      
 271   1        WriteByte(0x07);
 272   1        
 273   1        WriteByte(0xFF);
 274   1        WriteByte(0x00);
 275   1        WriteByte(0x00);
 276   1        WriteByte(0x00);
 277   1        WriteByte(0x0B);
 278   1      
 279   1      
 280   1        WriteByte(0x08);
 281   1        
 282   1        WriteByte(0xFF);
 283   1        WriteByte(0x00);
 284   1        WriteByte(0x00);
 285   1        WriteByte(0x00);
 286   1        WriteByte(0x0B);
 287   1        AD9954_Update();
 288   1      }
 289          
 290          
 291          //*******************************************
 292          //*函数名称:void Parallel_Check_Busy(void)      *
 293          //*函数功能:并行方式查忙                                        *
 294          //*形式参数:无                                                          *
 295          //*形参说明:无                                                          *
 296          //*返回参数:无                                                          *
 297          //*使用说明:无                                                          *
 298          //*******************************************
 299          void Parallel_Check_Busy(void)
 300          {
 301   1              bit temp;
 302   1              P2 = 0xff;      //输入前置1
 303   1              RS = 0;         //指令
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 6   

 304   1              RW = 1;         //读模式
 305   1              do
 306   1              {       
 307   2                  E  = 1;      //使能
 308   2                      temp = BUSY;
 309   2                  E  = 0;
 310   2              }
 311   1              while(temp);//等待不忙
 312   1      }
 313          
 314          
 315          //************************************************************************************
 316          //*函数名称:void Parallel_Write_LCD( bit b_Data_Command , unsigned char uc_Content ) *
 317          //*函数功能:并行模式向LCD发送数据或指令                                                                                          *
 318          //*形式参数:bit b_Data_Command , unsigned char uc_Content                                                        *
 319          //*形参说明:数据或指令的标志位,指令或数据的内容                                                                          *
 320          //*返回参数:无                                                                                                                                           *
 321          //*使用说明:无                                                                                                                                           *
 322          //************************************************************************************
 323          void Parallel_Write_LCD( bit b_Data_Command , unsigned char uc_Content )
 324          {
 325   1              Parallel_Check_Busy();
 326   1              if(b_Data_Command)
 327   1               {
 328   2                      RS = 1;   //数据
 329   2              RW = 0;   //写模式
 330   2               }
 331   1              else 
 332   1               {
 333   2              RS = 0;   //指令
 334   2              RW = 0;   //写模式
 335   2               }
 336   1              P2=uc_Content;//数据放到P1口上
 337   1              E = 1;
 338   1              _nop_();//很重要 
 339   1              _nop_();
 340   1              _nop_();
 341   1          E = 0;                                                                                                              
 342   1      }
 343          
 344          
 345          //********************************************
 346          //*函数名称:uc_Parallel_Read_LCD_Data            *
 347          //*函数功能:并行读LCD数据                                        *
 348          //*形式参数:无                                                           *
 349          //*形参说明:无                                                           *
 350          //*返回参数:读回的数据                                           *
 351          //*使用说明:无                                                           *
 352          //********************************************
 353          uchar uc_Parallel_Read_LCD_Data(void)
 354          {
 355   1              uchar uc_Content;
 356   1              Parallel_Check_Busy();
 357   1              P2 = 0xff;                      //输入前置1
 358   1          RS = 1;                     //数据
 359   1          RW = 1;                     //读模式
 360   1              E = 1;                          //使能
 361   1              uc_Content = P2;    //P1口的内容放到变量中
 362   1              E = 0;
 363   1              return uc_Content;
 364   1      }
 365          
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 7   

 366          //*************************************************************
 367          //*函数名称:void Parallel_DDRAM_Address_Set(uchar ucDDramAdd) *
 368          //*函数功能:设定DDRAM(文本区)地址到地址计数器AC                           *
 369          //*形式参数:uchar ucDDramAdd                                                              *
 370          //*行参说明:具体地址                                                                              *
 371          //*格式说明:                                                                                              *
 372          //*             RS      RW      DB7     DB6     DB5     DB4     DB3     DB2     DB1     DB0                               *
 373          //*             0       0       1       AC6     AC5     AC4     AC3     AC2     AC1     AC0                               *
 374          //*返回参数:无                                                                                            *
 375          //*使用说明:                                                                                              *
 376          //*     第一行地址:80H~8FH                                                                                *
 377          //*     第二行地址:90H~9FH                                                                                *
 378          //*     第三行地址:A0H~AFH                                                                                *
 379          //*     第四行地址:B0H~BFH                                                                                *
 380          //*************************************************************
 381          void Parallel_DDRAM_Address_Set(uchar ucDDramAdd)
 382          {
 383   1              Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);                     //基本指令集
 384   1              Parallel_Write_LCD(COMMAND,ucDDramAdd);                         //设定DDRAM地址到地址计数器AC
 385   1      }
 386          
 387          
 388          //*************************************************************
 389          //*函数名称:void Parallel_CGRAM_Address_Set(uchar ucCGramAdd) *
 390          //*函数功能:设定CGRAM(自定义字库区)地址到地址计数器AC             *
 391          //*形式参数:uchar ucCGramAdd                                                              *
 392          //*形参说明:具体地址                                                                              *
 393          //*格式说明:                                                                                              *
 394          //*             RS      RW      DB7     DB6     DB5     DB4     DB3     DB2     DB1     DB0                               *
 395          //*             0       0       0       1       AC5     AC4     AC3     AC2     AC1     AC0                               *
 396          //*返回参数:无                                                                                            *
 397          //*使用说明:地址范围为40H~3FH                                                             *
 398          //*************************************************************
 399          void Parallel_CGRAM_Address_Set(uchar ucCGramAdd)
 400          {
 401   1              Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);                     //基本指令集
 402   1              Parallel_Write_LCD(COMMAND,ucCGramAdd);                         //设定CGRAM地址到地址计数器AC
 403   1      }
 404          
 405          
 406          //*******************************************************************************
 407          //*函数名称:void Parallel_GDRAM_Address_Set(uchar ucGDramAdd)                                   *
 408          //*函数功能:设定GDRAM(图形区)地址到地址计数器AC                                                                 *
 409          //*形式参数:uchar ucGDramAdd                                                                                                    *
 410          //*形参说明:具体地址值                                                                                                                  *
 411          //*             RS      RW      DB7     DB6     DB5     DB4     DB3     DB2     DB1     DB0                                                                     *
 412          //*             0       0       1       AC6     AC5     AC4     AC3     AC2     AC1     AC0                                                                     *
 413          //*             先设定垂直位置再设定水平位置(连续写入两个字节完成垂直和水平位置的设置)  *       
 414          //*             垂直地址范围:AC6~AC0                                                                                                    *
 415          //*             水平地址范围:AC3~AC0                                                                                                    *
 416          //*返回参数:无                                                                                                                                  *
 417          //*使用说明:必须在扩展指令集的情况下使用                                                                                *
 418          //*******************************************************************************
 419          void Parallel_GDRAM_Address_Set(uchar ucGDramAdd)
 420          {
 421   1              Parallel_Write_LCD(COMMAND,EXTEND_FUNCTION);                    //扩展指令集
 422   1              Parallel_Write_LCD(COMMAND,ucGDramAdd);         
 423   1      }
 424          
 425          
 426          
 427          //*******************************************
C51 COMPILER V8.02   DDS9954                                                               04/08/2008 23:07:51 PAGE 8   

 428          //*函数名称:void Parallel_Init_LCD(void)        *
 429          //*函数功能:并行初始化LCD                                       *
 430          //*形式参数:无                                                          *
 431          //*形参说明:无                                                          *
 432          //*返回参数:无                                                          *
 433          //*使用说明:无                                                          *
 434          //*******************************************
 435          void Parallel_Init_LCD(void)
 436          {
 437   1              RST = 1;                                                                        //复位后拉高,停止复位
 438   1              PSB = 1;                                                                        //选择并行传输模式              
 439   1              Parallel_Write_LCD(COMMAND,BASIC_FUNCTION); //基本指令动作   
 440   1              Parallel_Write_LCD(COMMAND,CLEAR_SCREEN);       //清屏,地址指针指向00H
 441   1              Parallel_Write_LCD(COMMAND,0x06);                   //光标的移动方向
 442   1              Parallel_Write_LCD(COMMAND,0x0c);                       //开显示,关游标
 443   1      
 444   1      }
 445          
 446          
 447          
 448          //********************************************************
 449          //*函数名称:void Parallel_Clear_Ram(void)                    *

⌨️ 快捷键说明

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