亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mad9850fap_test1.c

?? AD9850開發(fā)程序:鍵盤輸入
?? C
字號:
/*
名稱:AD9850測試程序

功能描述:輸出頻率、頻率步進值、幅值均可調
	  4個按鍵接在 P3.0 -- 調幅
	  	      P3.1 -- 調步進值
	  	      P3.2 -- 頻率加
	  	      P3.3 -- 頻率減
	  按鍵低電平有效。
	      
程序中的顯示部分 用的是4位數(shù)碼管 顯示步進值,用戶可根據(jù)需要自行改用其他顯示
      P0 -- 段碼輸出口
      P2 -- 位碼輸出口
      P3.5 -- 573使能口
//備注:調試通過
*/
//**********************************************
#include<reg52.h>
#include<intrins.h>  //包含右移
#include<math.h>

/*數(shù)碼管送段碼函數(shù)*/
#define   Ledbit(temp)    P3 &=0XDF; P2  =temp;  P3 |=0X20; 
/*數(shù)碼管送段位函數(shù)*/
#define   Ledseg(temp)    P3 &=0XDF;P0 =temp; P3 |=0X20; 

sbit UPDCLK = P2^0;  //20 更新時鐘,上升沿鎖存數(shù)據(jù)到編程寄存器
sbit MRESET = P2^1;  //71 主復位端,高電平有效復位
sbit PMODE  = P2^2;  //70 串并編程模式選擇 0:串行 1:并行
sbit WRCLK  = P2^3;  //21 寫端口數(shù)據(jù) 上升沿鎖存數(shù)據(jù)
sbit RDCLK  = P2^4;  //22 讀端口數(shù)據(jù) 高電平讀
sbit F_B_H  = P2^5;  //29 低電平
sbit OSK    = P2^6;  //30

sbit DATACLK= P1^0;  //高電平有效,選中數(shù)據(jù)鎖存器,低電平鎖存
sbit ADDRCLK= P1^1;  //高電平有效,選中地址鎖存器,低電平鎖存
sbit CONCLK = P1^2;  //高電平有效,選中外部控制端驅運器,低電平鎖存

sbit PD     = P1^4;
sbit EN     = P1^5;
sbit SCLK   = P1^6;
sbit SDATA  = P1^7;


//unsigned char Address;  //寄存器地址
//unsigned char PortReg;  //控制端口寄存器
//unsigned char MultReg;  //乘法寄存器
//unsigned char ModeReg;  //工作模式寄存器
//unsigned char PowerReg; //功率寄存器

unsigned char AH,AL;    // 振幅字
unsigned char PH,PL;    // 相位字

unsigned char	resulth[4],resultm[4],resultl[4];
unsigned long int fwh,fwm,fwl;
unsigned char   FWord[6]; // 存放頻率字
unsigned long int fbj;        // 頻率步進值
unsigned long int pref;  //要輸出的頻率值

unsigned char code led_code[20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,	//數(shù)碼管顯示段碼
		                         0x90,0x88,0x83,0xc6,0xa1,0x86,0x81,0x7f,0xff,0xb7,0xb6};
unsigned char data dis_data[4]={0x00,0x00,0x00,0x00};  //顯示緩沖區(qū)
unsigned char idata dis_bit[4]={0x7f,0xbf,0xdf,0xef};//位碼單元

void WriteData(unsigned char DataByte);    //寫字節(jié)數(shù)據(jù)
void WriteADDR(unsigned char DATAAddress); //寫寄存器地址
void UpdataFWord(void);                   //頻率字更新
void UpdataAWord(void);	                  //振幅字更新
void UpdataPWord(void);			  //相位字更新
void fck_hz(unsigned long int mf);        //頻率計算
void convertdoub_long(void);		  //長整型轉1字節(jié)
void coutFWord(void);                     // 頻率字計算
void switchpowrd(void);                   // 計算 要寫入的預設頻率的頻率字
void Get_key(void);                       // 按鍵
void switchdata(void);                    //步進值拆碼
void display(unsigned char *p,unsigned char n); //顯示步進值
delay(unsigned int n);
void  Delayms(unsigned int ms);         

//*********************************
void main()
{
   unsigned char n;//,ku;
   P3 = 0XFF;
   AH = 0XFF;   // 振幅初始值 
   AL = 0XFF;
  // PH = 0XFF;   // 相位初始值 
  // PL = 0XFF;
   fbj = 1;      // 頻率步進 初始值 1hz
   pref = 1;     // 頻率初始值  1hz
   //MultReg = 0x46;     //乘法器
   //PortReg = 0x04;     //控制端口
   P2=0;
   DATACLK=0;
   ADDRCLK=0;

   P2=0x06;            //設置成并行模式,并復位
   for(n=5;n>0;)
       n--;
   P2=0x04;
   CONCLK =0;          //鎖存控制端口狀態(tài)
//*************************
   
   WriteADDR(0x1E);    //寫乘法器地址
   WriteData(0x46);    //初始化乘法器,打開倍速頻器,倍頻6x50=300Mhz
   			//  4*50=200Mhz
   //WriteADDR(0x1f);    //工作模式選擇地址
   //WriteData(0x03);    //模式001,是 Unramped FSK模式  ,Ramped FSK (Mode 010)
   
   WriteADDR(0x20);    //反辛格函數(shù)濾波器地址
   WriteData(0X60);    //0X60 是關閉反辛格函數(shù)濾波,0X20是打開反辛格函數(shù)濾波
   	
   UpdataAWord();	// 寫 幅值
   switchpowrd();   	// 計算 要寫入的預設頻率的頻率字
   UpdataFWord();       // 寫頻率字
   
   while(1)
   {
      // for(ku=0;ku<5;ku++)
	  // { 
	//	UpdataAWord();
       // UpdataPWord();
   	    //switchpowrd();   
   	   // UpdataFWord();
     //  }
   	while(P3==0xff)       //等待按鍵按下
   	{ 
	switchdata();
   	display(dis_data,4);           
   	}
	Get_key();                   //讀鍵并處理
   	}
	    
}


//*********************************
//***振幅字更新
void UpdataAWord(void)
{
	WriteADDR(0x21);    //幅度字高字節(jié)地址
        WriteData(AH);    //幅度字高字節(jié)
   	WriteADDR(0x22);    //幅度字低字節(jié)地址
   	WriteData(AL);
}
/*
//*********************************
//***相位字更新
void UpdataPWord(void)
{
	WriteADDR(0x00);    //相位字高字節(jié)地址
        WriteData(PH);    //幅度字高字節(jié)
   	WriteADDR(0x01);    //幅度字低字節(jié)地址
   	WriteData(PL);
}
*/
//*********************************
// 入口參數(shù) mf 表示 要輸出的頻率值
// 0x0e,0x51,0x0a 的由來是:2^48/300000000hz=938249.9 = 0x0E510a
void fck_hz(unsigned long int mf)  
{	  
	  fwh = mf*0x0e;
	  fwm = mf*0x51;
	  fwl = mf*0x0a;
}

void convertdoub_long(void)  //將長整型數(shù) 轉化成字節(jié)
{
	unsigned char c=0;   
  	unsigned char i=0;
	for(i=0;i<4;i++)
	{
	   resultl[i]=0;
	   resultm[i]=0;
	   resulth[i]=0;
	} 
	 i=0;
    while(fwl/256)   
  	{   
  	c=fwl%256;     
  	resultl[i++]=c;   
  	fwl=fwl/256;   
  	}
  	c=fwl%256;      
  	resultl[i++]=c;
	
	i=0;
	while(fwm/256)   
  	{   
  	c=fwm%256;     
  	resultm[i++]=c;   
  	fwm=fwm/256;   
  	}
  	c=fwm%256;      
  	resultm[i++]=c;

        i=0;
	while(fwh/256)   
  	{   
  	c=fwh%256;      
  	resulth[i++]=c;   
  	fwh=fwh/256;   
  	}
  	c=fwh%256;      
  	resulth[i++]=c;
}

void coutFWord(void)       // 計算頻率字碼
{
	unsigned int md1=0,md2=0,md3=0,md4=0;
	unsigned char mh=0;
		FWord[0]=resultl[0];
	md1=resultm[0]+resultl[1];
		FWord[1]=md1;
	md1=md1&0xff00;
	mh=md1>>8;
	md2=resulth[0]+resultm[1]+resultl[2]+mh;
		FWord[2]=md2;
	md2=md2&0xff00;
	mh=md2>>8;
	md3=resulth[1]+resultm[2]+resultl[3]+mh;
		FWord[3]=md3;
	md3=md3&0xff00;
	mh=md3>>8;
	md4=resulth[2]+resultm[3]+mh;
		FWord[4]=md4;
	md4=md4&0xff00;
	mh=md4>>8;
		FWord[5]=resulth[3]+mh;
}

void switchpowrd(void)   // 寫入目標頻率 并計算頻率字
{
        fck_hz(pref);
	convertdoub_long();
	coutFWord();
}

//***頻率字更新
void UpdataFWord(void)
{
   WriteADDR(0x04);
   WriteData(FWord[5]);    //頻率字最高字節(jié)
   WriteADDR(0x05);
   WriteData(FWord[4]);
   WriteADDR(0x06);
   WriteData(FWord[3]);
   WriteADDR(0x07);
   WriteData(FWord[2]);
   WriteADDR(0x08);
   WriteData(FWord[1]);
   WriteADDR(0x09);
   WriteData(FWord[0]);    //頻率字最低字節(jié)
}
//*********************************
//***寫入數(shù)據(jù)
void WriteData(unsigned char DataByte)
{
   unsigned char bdata x,y;
   x =DataByte;
   y =0;
   if(x&0x01)        //數(shù)據(jù)格式旋轉180
      y=y|0x80;      //由D7 D6 D5 D4 D3 D2 D1 D0
   if(x&0x02)        //  D0 D1 D2 D3 D4 D5 D6 D7
      y=y|0x40;
   if(x&0x04)
      y=y|0x20;
   if(x&0x08)
      y=y|0x10;
   if(x&0x10)
      y=y|0x08;
   if(x&0x20)
      y=y|0x04;
   if(x&0x40)
      y=y|0x02;
   if(x&0x80)
      y=y|0x01;
   P2=y;
   DATACLK=1;       //鎖存數(shù)據(jù)
   DATACLK=0;

}
//*********************************
//***完整地址
void WriteADDR(unsigned char DATAAddress)
{
   P2=DATAAddress;
   ADDRCLK=1;
   ADDRCLK=0;

   P2=0x04;
   CONCLK = 1;
     WRCLK=1;
     WRCLK=0;
   CONCLK = 0;

}
//按鍵程序****************************************************************
void Get_key(void)
{
    unsigned char temp;
	Delayms(50);                        //延時消抖
	if(P3==0xff)return;
	temp=P3;
	switch(temp)
	{
	        case  0xfe:      // 振幅調節(jié) 減	 若 0xffff 對應800mv(實際情況并不一定是800mv) 
	        		{             		 // 則此處 的調節(jié) 振幅是 
		               	AL=AL-0X33;		 // 每 按鍵一次 減 10mv
		               	if(AL<0X12)
		               	{
					AL = 0XFF;
		               		AH=AH-0X01;
		               		if(AH<0X01)
		               		{AH = 0XFF;
		               		 AL = 0XFF;
		               		}               	
		               	}
					UpdataAWord();
					}
					break;
		               	    
		case  0xfd:	  //頻率步進 控制鍵 
		               {
		               	if(fbj<=10)         // 步進值小于10hz時,每按鍵一次步進值+1hz
		               	  {fbj=fbj+1;}
		               	if(fbj>10&&fbj<=100) // 步進值小于100hz,大于10hz時,每按鍵一次步進值+10hz
		               	  {fbj=fbj+10;}
		               	if(fbj>100&&fbj<=1000) // 意思 同上
		               	  {fbj=fbj+100;}
		               	if(fbj>1000&&fbj<=10000)  
		               	 {fbj=fbj+1000;}
		               	if(fbj>10000&&fbj<=100000)
		               	 {fbj=fbj+10000;}
		               	if(fbj>100000&&fbj<=1000000)
		               	 {fbj=fbj+100000;}		               	
		               	if(fbj>999999)    // 最大步進值 999999hz
		               	 {fbj=1;}		               	
		               }
				break;    
		case  0xfb:	 //頻率加調整
		               {
		               	 pref = pref+fbj;
		               	 if(pref>200000000)      // 200MHZ
		               	 {pref=1;}		             
					switchpowrd();   
   	    				UpdataFWord();
				}
				break;
		case  0xf7:      //頻率減調整
				{
				if(pref>=fbj)
				{
				pref = pref-fbj;
				if(pref<fbj)
				{pref = 1;}
				}					   
				switchpowrd();   
   	                        UpdataFWord();
				}
			        /* {             	// 相移鍵	 
		               	PL=PL-0X33;	
		               	if(PL<0X12)
		               	{
		               		PH=PH-0X01;
		               		if(PH<0X01)
		               		{PH = 0XFF;
		               		 PL = 0XFF;
		               		}               	
		               	}
		                 }*/
				 break;
		default:    break;
	
	}
	//while(!(P3==0xff));                      //等待按鍵釋放
	//Delayms(800);
}


void switchdata(void)
{
	if(fbj<9999)
	{
	dis_data[0]=fbj/1000;   //gao
	dis_data[1]=fbj%1000/100;
	dis_data[2]=fbj%100/10;
	dis_data[3]=fbj%10;		//di
	}
	if(fbj>9999&&fbj<99999)
	{
	    dis_data[0]=18;   //gao		 // 標志位
		dis_data[1]=fbj/10000;		 // 有效位
		dis_data[2]=fbj%10000/1000;	 // 有效位
		dis_data[3]=3;		//di	 //3 表示 有效位后 0 的個數(shù) 
	}
	if(fbj>99999&&fbj<999999)
	{
		dis_data[0]=19;   //gao	    // 標志位
		dis_data[1]=fbj/100000;		// 有效位
		dis_data[2]=fbj%100000/10000;  // 有效位
		dis_data[3]=4;		//di	 //4 表示 有效位后 0 的個數(shù)
	}	
}

void display(unsigned char *p,unsigned char n)
{
 unsigned char i;

  for(i=0;i<n;i++)
   {

   	Ledbit(dis_bit[i]);	   //送段碼
	Ledseg(led_code[p[i]]);    //送位碼
    delay(40);			   //顯示延時:小于20/i 秒
	Ledseg(0Xff);      	   //消隱
    }

}

delay(unsigned int n)
{
  while(n)
     n--;
}


void  Delayms(unsigned int ms)
{
    unsigned char  i;
	while(ms--)
	{
	    for(i=126;i>1;i--);
	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷久久综合| 国产一区二区毛片| 91精品福利视频| 亚洲激情校园春色| 在线观看国产日韩| 亚洲综合激情另类小说区| 欧美视频你懂的| 首页国产欧美日韩丝袜| 欧美大片一区二区| 国产乱码精品一区二区三区av | 国产在线播放一区二区三区| 久久久亚洲午夜电影| 国产精品一区二区在线看| 亚洲视频网在线直播| 欧美视频中文一区二区三区在线观看| 日日摸夜夜添夜夜添亚洲女人| 日韩精品一区二区三区在线观看| 国产成人综合在线观看| 亚洲日本护士毛茸茸| 欧美高清dvd| 国产91丝袜在线观看| 亚洲午夜av在线| 久久久91精品国产一区二区三区| 色婷婷综合久色| 蜜桃视频在线观看一区二区| 欧美国产成人精品| 欧美性做爰猛烈叫床潮| 精品一区二区三区不卡| 中文字幕一区av| 日韩亚洲欧美在线| 午夜精彩视频在线观看不卡| 国产欧美一区二区精品性色超碰| 在线免费观看不卡av| 国产主播一区二区三区| 亚洲综合成人在线视频| 久久久一区二区三区捆绑**| 欧美日韩一级视频| 成人黄色综合网站| 看电视剧不卡顿的网站| 亚洲欧美一区二区三区孕妇| 精品国产一区二区精华| 欧美色图天堂网| 国产精品77777竹菊影视小说| 亚洲线精品一区二区三区八戒| 久久久91精品国产一区二区精品| 5858s免费视频成人| 91在线porny国产在线看| 国产一区免费电影| 午夜欧美视频在线观看| 亚洲人成影院在线观看| 欧美国产国产综合| 久久人人爽爽爽人久久久| 91.xcao| 欧洲中文字幕精品| 91浏览器打开| 丰满少妇在线播放bd日韩电影| 久久草av在线| 日韩电影在线一区二区| 亚洲成av人片一区二区梦乃| 中文字幕中文乱码欧美一区二区| 精品99一区二区| 欧美一级夜夜爽| 欧美乱熟臀69xxxxxx| 欧美亚洲综合在线| 日本丶国产丶欧美色综合| 99v久久综合狠狠综合久久| 成人性色生活片免费看爆迷你毛片| 久久国产婷婷国产香蕉| 蜜臀av一区二区在线免费观看| 亚洲高清中文字幕| 亚洲大片在线观看| 亚洲v日本v欧美v久久精品| 一区二区三区在线高清| 亚洲三级久久久| 亚洲激情六月丁香| 一区二区三区四区av| 亚洲一区视频在线| 亚洲一级二级在线| 午夜不卡av免费| 日韩av在线免费观看不卡| 天天综合天天综合色| 日韩高清欧美激情| 毛片一区二区三区| 激情亚洲综合在线| 成人中文字幕在线| 99视频一区二区| 在线亚洲高清视频| 欧美久久高跟鞋激| 欧美成人a∨高清免费观看| 精品久久久久一区二区国产| 久久久精品黄色| 亚洲视频一区二区在线观看| 一区二区三区中文字幕精品精品 | 亚洲一二三四在线| 天堂va蜜桃一区二区三区漫画版| 午夜av一区二区三区| 免费一级欧美片在线观看| 国产曰批免费观看久久久| 成人的网站免费观看| 欧洲在线/亚洲| 日韩精品资源二区在线| 日本一区二区免费在线| 亚洲精品视频在线看| 首页国产丝袜综合| 国产**成人网毛片九色| 色偷偷一区二区三区| 91精品国产综合久久婷婷香蕉| 久久影音资源网| 亚洲色图制服诱惑| 免费人成网站在线观看欧美高清| 国产91精品欧美| 欧美精品在线观看一区二区| 久久综合九色欧美综合狠狠 | 中文字幕欧美激情| 天天色天天操综合| 成人美女在线观看| 欧美日本在线播放| 欧美激情资源网| 婷婷综合在线观看| 国产a区久久久| 欧美高清视频在线高清观看mv色露露十八| 欧美xxxxxxxx| 亚洲与欧洲av电影| 国产精品18久久久久久久久 | 亚洲精品国产一区二区精华液 | 欧美日韩国产综合久久| 久久久久久久网| 视频一区在线视频| 99久久777色| 久久影院视频免费| 天天av天天翘天天综合网| 处破女av一区二区| 日韩午夜激情免费电影| 夜夜爽夜夜爽精品视频| 国产suv精品一区二区三区| 欧美一级一区二区| 亚洲综合视频网| 粉嫩aⅴ一区二区三区四区| 日韩一级免费观看| 艳妇臀荡乳欲伦亚洲一区| 国产成人aaa| 2023国产精品视频| 老司机精品视频导航| 欧美午夜精品一区二区蜜桃| 国产精品免费视频观看| 久久国产精品第一页| 欧美精品亚洲一区二区在线播放| 一区二区三区四区视频精品免费 | 欧美中文字幕一二三区视频| 国产精品久久二区二区| 国产美女一区二区三区| 日韩午夜激情电影| 日韩电影在线一区二区| 欧美日韩在线播放一区| 亚洲免费观看高清完整版在线| 从欧美一区二区三区| 久久久久国色av免费看影院| 麻豆传媒一区二区三区| 555夜色666亚洲国产免| 亚洲444eee在线观看| 欧美无砖专区一中文字| 一区二区三区日韩| 日本精品视频一区二区| 一区二区三区四区精品在线视频| 色呦呦一区二区三区| 亚洲女人****多毛耸耸8| 91日韩精品一区| 亚洲乱码中文字幕综合| 99re视频精品| 一区二区三区四区蜜桃| 欧美色图激情小说| 日韩高清欧美激情| 精品理论电影在线观看| 国产综合色在线视频区| 久久精品视频在线看| 国产99一区视频免费| 中文字幕中文字幕一区二区| 91麻豆国产自产在线观看| 一区二区三区自拍| 欧美精品欧美精品系列| 美国精品在线观看| 国产色婷婷亚洲99精品小说| 不卡一区二区三区四区| 亚洲乱码国产乱码精品精98午夜| 色狠狠色噜噜噜综合网| 无码av中文一区二区三区桃花岛| 91精品国产乱码| 国内精品免费**视频| 中文字幕av在线一区二区三区| 99re热这里只有精品免费视频| 亚洲国产精品嫩草影院| 欧美一级片在线看| 国产成人亚洲综合a∨婷婷图片| 国产精品电影一区二区三区| 欧美性感一类影片在线播放| 久久国产尿小便嘘嘘| 成人免费在线视频| 欧美一级生活片| 99久免费精品视频在线观看| 亚洲二区视频在线|