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

📄 includes.h

📁 单片机控制FPGA的程序,包括AD转换,频率输出,测试程序
💻 H
字号:
#ifndef _INCLUDES_H_
#define _INCLUDES_H_


#include"c8051f000.h"
#include"stdlib.h"
#include"stdio.h"
#include"math.h"
#include"intrins.h"

sfr16  RCAP2 = 0xca;
sfr16  TMR2 = 0xcc;

sfr16  ADC0VAL=0xbe;                //将ADC0H-ADC0L通过sfr16实现
sfr16  DAC0=0xd2;
sfr16  DAC1=0xd2; 

sfr16 RCAP3=0xca; 
sfr16 TMR3=0xcc;
sfr16 DAC1VAL=0xD2; 

void SYSCLK_Init();
void PORT_Init();
void DAC0_Init();
void DAC1_Init();
void T2_Init();

/*******************************************************************************/
/*key16                                                                        */
/*          																   */
/*                                                                             */
/*                                                                             */
/*******************************************************************************/
sbit keyin=P3^4;

void key16();
void turnward();
void sword();
void wav_mem();
void freq_set();




/*******************************************************************************/
/*ad_fpga                                                                      */
/*          																   */
/*                                                                             */
/*                                                                             */
/*******************************************************************************/
sbit write=P0^2;		   //开始信号
sbit read=P0^1;			   //读取数据信号
sbit clk=P0^3;			   //时钟信号
sbit da=P0^5;			   //数据线
sbit clr=P0^4;			   //清零信号



void read_result(unsigned char *da);
void read_ready();
unsigned char read_data( );
void fpag_clr();
void mydelay(unsigned int j);
void delay_1us(void);
void set_dac0(unsigned char da);
void set_dac1(unsigned int da);
void show_wavright(unsigned char *da/*波形储存数组*/);	//,unsigned int num/*显示数组偏移*/
void show_wavleft(unsigned char *da/*波形储存数组*/); // ,unsigned int num/*显示数组偏移*/




/*******************************************************************************/
/*lcd                                                                          */
/*          																   */
/*                                                                             */
/*                                                                             */
/*******************************************************************************/
sbit cs=P2^0;		      //液晶片选:低电平有效
sbit res=P2^1;		      //液晶复位:低电平有效
sbit a0=P2^2;		      //低电平:指令通道;高电平:数据通道
sbit sck=P2^3;			  //液晶时钟信号
sbit cda=P2^4;             //液晶数据信号



void lcd_senddata(unsigned char da);
void lcd_sendcmd(unsigned char da);
void lcd_init(void);
void Set_Page_Address(unsigned char dat);
void Set_Colume_Address(unsigned char dat);
void lcd_clr(void);
void lcd_drawpot(unsigned char x/*0-127*/, unsigned char y/*0-63*/);
void lcd_drawhanzimo(unsigned char x/*0-127*/,unsigned char y/*0-7*/,unsigned char* ptr);
void lcd_drawnumber(unsigned char x/*0-127*/,unsigned char y/*0-15*/,unsigned char* ptr);





/*******************************************************************************/
/*cymometer                                                                    */
/*          																   */
/*                                                                             */
/*                                                                             */
/*******************************************************************************/
sbit ccda=P0^6;         //数据读取
sbit dclk=P1^2;       //数据时钟
sbit recont=P0^7;     //数据读取控制
sbit cclr=P1^1;        //清零控制
sbit tim=P1^0;        //测量时间

void set_tim();
void show_lcd();
void delay_nms(unsigned int num);
void delay_1msb(void);
//void set_freq(unsigned char num);
void set_clr();
void count_freq();
void read_fpg();




/*******************************************************************************/
/*AD9851                                                                       */
/*          																   */
/*                                                                             */
/*                                                                             */
/*******************************************************************************/
#define STEP_OSC   0.013969838619232177734375//单位赫兹,用晶振频率除以2的32次幂得到(60M除以2的32次幂就是这个数)
#define delay_con 1000
#define PWR_DOWN 0x04
#define MULT6 0x01;


sbit FQ_UD = P1^7;
sbit W_CLK = P1^6;
sbit D7    = P1^4;
sbit RESET = P1^3;



void ad9851_init(void);
void ad9851_send(unsigned char* ptr_data);
void delay(unsigned int t_i);
void ad9851_calfreq(double freq/*单位是MHz*/,float phase_data/*单位是度,应为11。25度的整数倍*/, unsigned char* ptr_data);

⌨️ 快捷键说明

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