-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #include <REG52.H>
- #include<INTRINS.H>
- #include<STRING.H>
- #define uchar unsigned char
- #define uint unsigned int
-
- #define COUNT 0x10
-
-
- #define LINE_ONE_ADDRESS 0x80
- #define LINE_TWO_ADDRESS 0x90
- #define LINE_THREE_ADDRESS 0x88
- #define LINE_FOUR_ADDRESS 0x98
-
-
- #define DATA 1 //数据位
- #define COMMAND 0 //命令位
- #define CLEAR_SCREEN 0x01 //清屏
- #define ADDRESS_RESET 0x02 //地址归零
- #define BASIC_FUNCTION 0x30 //基本指令集
- #define EXTEND_FUNCTION 0x34 //扩充指令集
-
-
-
- #define AWAIT_MODE 0x01 //待命模式
- #define ROLLADDRESS_ON 0x03 //允许输入垂直卷动地址
- #define IRAMADDRESS_ON 0x02 //允许输入IRAM地址
- #define SLEEP_MODE 0x08 //进入睡眠模式
- #define NO_SLEEP_MODE 0x0c //脱离睡眠模式
- #define GRAPH_ON 0x36 //打开绘图模式
- #define GRAPH_OFF 0x34 //关闭绘图模式
-
-
-
- sbit RS=P1^4;
- sbit RW=P1^5;
- sbit E= P1^6;
-
- sbit BUSY=P2^7;
-
-
- sbit PSB = P1^7;
- sbit RST = P3^0;
-
-
- uchar code Tab1[]="扫频仪";
- uchar code Tab2[]="起始频率: 3KHz";
- uchar code Tab3[]="终止频率: 7KHz";
- uchar code Tab4[]="扫描时间: 4s";
- uchar code Tab5[]={0x54,0xf4};
-
- unsigned long CFR1 ;
- unsigned long CFR2 = 0;
- unsigned long FTW0;
- unsigned long FTW1;
- unsigned long NLSCW;
- unsigned long PLSCW;
- unsigned long multfreq = 0xFFFFFFFF;
-
-
-
-
-
-
- sbit IO_UPDATE = P0^0;
- sbit PS1 = P0^1;
- sbit PS0 = P0^2;
- sbit IO_SYNC = P0^3;
- sbit SDIO = P0^4;
- sbit SCLK = P0^5;
- sbit CS = P0^6;
- sbit SDO = P0^7;
-
-
- sbit CS2 = P1^0;
- sbit PWR = P1^1;
- sbit CLKMS = P1^2;
- sbit RET = P1^3;
-
-
-
- /***********************************************************************
- ** 函数名称: 端口操作
- ** 功能描述: AD9954端口基本操作
- ** 输 入: 无
- ** 输 出: 无
- ** 全局变量: 无
- ** 调用模块: 无
- ***********************************************************************/
- void SCLK_0(void)
- {
- SCLK = 0;
- }
-
-
- void SCLK_1(void)
- {
- SCLK = 1;
- }
-
-
- void SDIO_0(void)
- {
- SDIO = 0;
- }
-
-
- void SDIO_1(void)
- {
- SDIO = 1;
- }
-
-
-
-
- void IO_UPDATE_0(void)
- {
- IO_UPDATE = 0;
- }
-
- void IO_UPDATE_1(void)
- {
- IO_UPDATE = 1;
- }
-
-
-
-
-
-
-
-
-
-
-
-
- void IO9954_Init()
- {
- CS2= 0;
- PWR=0;
- CLKMS=0;
- RET=0;
-
- IO_UPDATE = 0;
-
-
- IO_SYNC = 0;
- SDIO = 0;
- SCLK = 0;
- CS = 0;
-
- }
-
-
-
-
-
-
-
-
-
- void nNop(unsigned long nValue)
- {
- unsigned long i;
- for(i=nValue;i>0;i--);
- }
-
-
-
-
-
-
-
-
-
- void WriteByte(unsigned char Data)
- {
- unsigned char k;
- for(k=0;k<8;k++)
- {
- SCLK_0();
- nNop(4);
- if((Data&0x80) == 0x80)
- SDIO_1();
- else
- SDIO_0();
- Data = Data << 1;
- nNop(2);
- SCLK_1();
- nNop(4);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- void AD9954_Update(void)
- {
-
- IO_UPDATE_0();
-
- nNop(40);
- IO_UPDATE_1();
- }
-
-
- void AD9954_LinearSweep_Init(void)
- {
-
- WriteByte(0x00);
-
- WriteByte(0x00);
- WriteByte(0x20);
- WriteByte(0x00);
- WriteByte(0x44);
- AD9954_Update();
-
- }
-
- void AD9954_LinearSweep_Freq(void)
- {
-
-
-
- WriteByte(0x04);
-
- WriteByte(0x00);
- WriteByte(0x09);
- WriteByte(0xD4);
- WriteByte(0x95);
-
- WriteByte(0x06);
-
- WriteByte(0x00);
- WriteByte(0x16);
- WriteByte(0xF0);
- WriteByte(0x06);
-
-
-
- WriteByte(0x07);
-
- WriteByte(0xFF);
- WriteByte(0x00);
- WriteByte(0x00);
- WriteByte(0x00);
- WriteByte(0x0B);
-
-
- WriteByte(0x08);
-
- WriteByte(0xFF);
- WriteByte(0x00);
- WriteByte(0x00);
- WriteByte(0x00);
- WriteByte(0x0B);
- AD9954_Update();
- }
-
-
-
-
-
-
-
-
-
-
- void Parallel_Check_Busy(void)
- {
- bit temp;
- P2 = 0xff;
- RS = 0;
- RW = 1;
- do
- {
- E = 1;
- temp = BUSY;
- E = 0;
- }
- while(temp);
- }
-
-
-
-
-
-
-
-
-
-
- void Parallel_Write_LCD( bit b_Data_Command , unsigned char uc_Content )
- {
- Parallel_Check_Busy();
- if(b_Data_Command)
- {
- RS = 1;
- RW = 0;
- }
- else
- {
- RS = 0;
- RW = 0;
- }
- P2=uc_Content;
- E = 1;
- _nop_();
- _nop_();
- _nop_();
- E = 0;
- }
-
-
-
-
-
-
-
-
-
-
- uchar uc_Parallel_Read_LCD_Data(void)
- {
- uchar uc_Content;
- Parallel_Check_Busy();
- P2 = 0xff;
- RS = 1;
- RW = 1;
- E = 1;
- uc_Content = P2;
- E = 0;
- return uc_Content;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_DDRAM_Address_Set(uchar ucDDramAdd)
- {
- Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);
- Parallel_Write_LCD(COMMAND,ucDDramAdd);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_CGRAM_Address_Set(uchar ucCGramAdd)
- {
- Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);
- Parallel_Write_LCD(COMMAND,ucCGramAdd);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_GDRAM_Address_Set(uchar ucGDramAdd)
- {
- Parallel_Write_LCD(COMMAND,EXTEND_FUNCTION);
- Parallel_Write_LCD(COMMAND,ucGDramAdd);
- }
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_Init_LCD(void)
- {
- RST = 1;
- PSB = 1;
- Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);
- Parallel_Write_LCD(COMMAND,CLEAR_SCREEN);
- Parallel_Write_LCD(COMMAND,0x06);
- Parallel_Write_LCD(COMMAND,0x0c);
-
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_Clear_Ram(void)
- {
- Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);
- Parallel_Write_LCD(COMMAND,CLEAR_SCREEN);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_Graph_Mode_Set(bit bSelect)
- {
- Parallel_Write_LCD(COMMAND,EXTEND_FUNCTION);
- if(bSelect)
- {
- Parallel_Write_LCD(COMMAND,GRAPH_ON);
- }
- else
- {
- Parallel_Write_LCD(COMMAND,GRAPH_OFF);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_DisplayStrings_WithAddress(uchar ucAdd,uchar code *p)
- {
- uchar length;
- length = strlen(p);
- Parallel_Write_LCD(COMMAND,BASIC_FUNCTION);
- Parallel_DDRAM_Address_Set(ucAdd);
- for( ; length ; length -- )
- Parallel_Write_LCD(DATA, *(p++));
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_ImgDisplay(unsigned char code *img)
- {
- uchar i,j;
- Parallel_Graph_Mode_Set(0x01);
- for(j=0;j<32;j++)
- {
- for(i=0;i<8;i++)
- {
- Parallel_Write_LCD(COMMAND,0x80+j);
- Parallel_Write_LCD(COMMAND,0x80+i);
- Parallel_Write_LCD(DATA,img[j*16+i*2]);
- Parallel_Write_LCD(DATA,img[j*16+i*2+1]);
- }
- }
- for(j=32;j<64;j++)
- {
- for(i=0;i<8;i++)
- {
- Parallel_Write_LCD(COMMAND,0x80+j-32);
- Parallel_Write_LCD(COMMAND,0x88+i);
- Parallel_Write_LCD(DATA,img[j*16+i*2]);
- Parallel_Write_LCD(DATA,img[j*16+i*2+1]);
- }
- }
- Parallel_Graph_Mode_Set(0x00);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- void Parallel_ImgDisplayCharacter(uchar x,uchar y,uchar code *img)
- {
- uchar i;
- Parallel_Graph_Mode_Set(0x01);
- Parallel_Write_LCD(COMMAND,EXTEND_FUNCTION);
- for(i=0;i<16;i++)
- {
-
-
-
- Parallel_GDRAM_Address_Set(0x80+y+i);
- Parallel_GDRAM_Address_Set(0x80+x);
- Parallel_Write_LCD(DATA,img[i*2]);
- Parallel_Write_LCD(DATA,img[i*2+1]);
- }
- Parallel_Graph_Mode_Set(0x00);
- }
-
-
-
-
-
- void main()
- {
-
- PSB=0;
- Parallel_Init_LCD();
- Parallel_DisplayStrings_WithAddress(0x80,Tab1);
- Parallel_DisplayStrings_WithAddress(0x90,Tab2);
- Parallel_DisplayStrings_WithAddress(0x88,Tab3);
- Parallel_DisplayStrings_WithAddress(0x98,Tab4);
-
- IO9954_Init();
- PS1=0;
- PS0=0;
- AD9954_LinearSweep_Init();
-
- while(1)
- {
-
-
- PS0=0;
- nNop(2);
- PS0=1;
- AD9954_LinearSweep_Freq();
-
-
- }
- }
-
关闭
站长推荐
/2
用户377235 2013-10-23 11:25
用户1456817 2009-7-14 09:55