freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于dds信號發(fā)生器-資料下載頁

2025-05-06 00:53本頁面

【導(dǎo)讀】根據(jù)題目要求,我們以單片機C8051F020芯片和AD9954芯片為核心,輔。以必要的模擬電路,設(shè)計一臺信號發(fā)生器,使之能產(chǎn)生正弦波、方波和三角波。該系統(tǒng)主要由控制模塊、信號模塊、顯示模塊、鍵盤輸入模塊構(gòu)成。AD9954就實現(xiàn)了直接數(shù)字頻率合成技術(shù),產(chǎn)生穩(wěn)幅正弦波。單片機對內(nèi)部寄存器控制,AD9954就可以產(chǎn)生一個頻譜純凈、單,功能強大,可擴展性強。通過鍵盤輸入、LCD顯示形成人機交互界面,實現(xiàn)

  

【正文】 f。 o_buf[1]=0xff。 AD9954_write_reg(2,o_buf)。 AD9954_io_updata()。 } 35 附錄 二 LCD 顯示子程序 // LCD 顯示子程序 include /*************************** LCD_RS{ } LCD_WR{ } LCD_E{ } 要求 :, 設(shè)置為推拉輸出 。 P5 口設(shè)置為帶弱上拉的漏極輸出 , 電平標(biāo)準(zhǔn)即可 ***************************/ /*LCDInitial LCD 初始化程序: 初始化 LCD 并顯示歡迎屏。 */ /************************************** 延時子程序 ***************************************/ void lcd_delay() { unsigned char delayTime。 for(delayTime=10。delayTime0。delayTime)。 } /**************************************** 顯示主程序 *****************************************/ void DISPInitial() { WriteLCD_Command(0x30)。 //功能設(shè)置 8BIT 控制界面,基本指令集 36 WriteLCD_Command(0x0C)。 //顯示打開,光標(biāo)關(guān),反白顯示關(guān) WriteLCD_Command(0x01)。 //清除屏幕顯示,將 DDRAM 的地址計數(shù)器歸零 WriteLCD(0x80,0,f=)。 WriteLCD(0x90,0,A:)。 WriteLCD(0x88,0,B:)。 WriteLCD(0x98,0,G=)。 WriteLCD(0x9D,0,Y=)。 //WriteLCD(0x88,0,1 2 3 4 5 6 7 8 )。 } /************************************************** 返回值 Status: 當(dāng)前地址計數(shù)器的值 . ************************************************/ unsigned char LCDBusyWait() //等待 LCD 就緒 { unsigned char Status。 P4amp。=0xfe。 //11111110,LCD_RS=0 //LCD_RS=0。 lcd_delay()。 P4|=0x02。 //00000010,LCD_RW=1 //LCD_WR=1。 lcd_delay()。 P5 = 0xFF。 P4|=0x04。 //00000100,LCD_E=1 //LCD_E=1。 lcd_delay()。 Status=P5。 37 P4amp。=0xfB。 //11111011,LCD_E=0 //LCD_E=0。 while(Status amp。 0x80) { lcd_delay()。 P4|=0x04。 //00000100,LCD_E=1 //LCD_E=1。 lcd_delay()。 Status=P5。 lcd_delay()。 P4amp。=0xfB。 //11111011,LCD_E=0 //LCD_E=0。 } P4amp。=0xfd。 //11111101,LCD_RW=0 //LCD_WR=0。 return Status。 } void WriteLCD_Data(unsigned char Data) //向 LCD 寫入一個字節(jié)的數(shù)據(jù) { LCDBusyWait()。 P4|=0x01。 //00000001,LCD_RW=0,LCD_RS=1 //LCD_RS=1。 lcd_delay()。 P5 = Data。 lcd_delay()。 P4|=0x04。 //00000100,LCD_E=1 //LCD_E=1。 38 lcd_delay()。 P4amp。=0xfB。 //11111011,LCD_E=0 //LCD_E=0。 } void WriteLCD_Command(unsigned char Command) //向 LCD 寫入一個字節(jié)的命令 { LCDBusyWait()。 P4amp。=0xFE。 //11111110,LCD_RS=0 //LCD_RS=0。 lcd_delay()。 P5 = Command。 lcd_delay()。 P4|=0x04。 //00000100,LCD_E=1 //LCD_E=1。 lcd_delay()。 P4amp。=0xfB。 //11111011,LCD_E=0 //LCD_E=0。 } //改變地址 ,實現(xiàn)了逐行顯示 unsigned char ChangeAddress(unsigned char StartAddress) { switch(StartAddress) { case 0x87: WriteLCD_Command(0x90)。 StartAddress=0x90。break。 39 case 0x8F: WriteLCD_Command(0x98)。 StartAddress=0x98。break。 case 0x97: WriteLCD_Command(0x88)。 StartAddress=0x88。break。 default:StartAddress+=1。 } return StartAddress。 } /******************************************* WriteLCD 從 LCD 輸出一個字符串: StartAddress 為起始地址; Size 為字符串大小; Size==0 時由程序自己判斷字符串結(jié)束標(biāo)志,否則輸出 Size 個字符,不夠則填充空格; Charactors 為要求輸出的字符串; *******************************************/ void WriteLCD(unsigned char StartAddress,unsigned char Size,unsigned char Charactors[]) { unsigned char *i=Charactors。 //字符串的首地址 WriteLCD_Command(StartAddress)。 if(Size) //Size 不為 0 { // bit Over=0。 while(i(Charactors+Size)) //判斷字符串結(jié)尾 { 40 WriteLCD_Data(*i)。 i++。 //WriteLCD_Data(*i)。 //i++。 StartAddress=ChangeAddress(StartAddress)。 //改變地址 ,實現(xiàn)了逐行顯示 } } else //Size 為 0 { while(*i) //判斷字符串結(jié)尾 ,*i 為0 代表結(jié)束 { WriteLCD_Data(*i)。 i++。 WriteLCD_Data(*i)。 i++。 StartAddress=ChangeAddress(StartAddress)。 } } } void WriteLcd_Number_4bit(unsigned char Address_4bit,unsigned int Number4bit) { unsigned char Number4_H。 //存放高 2 位 unsigned char Number4_L。 //存放低 2 位 Number4_H = Number4bit / 100。 Number4_L = Number4bit % 100。 41 WriteLCD_Number(Address_4bit,Number4_H)。 WriteLCD_Number(Address_4bit + 1,Number4_L)。 } /********************************************** 寫入數(shù)字 Number, Number 為 09999 的四位數(shù)字 *********************************************/ void WriteLcd_Number_3bit(unsigned char Address,unsigned char Number) { if(Address) WriteLCD_Command(Address)。 //如果地址為 0 則自動接著原來的位置寫 . 否則按指定地址寫 // WriteLCD_Data((Number /1000) + 0x30)。 //取出千位數(shù)字 WriteLCD_Data((Number/100) + 0x30)。 //取出百位數(shù)字 WriteLCD_Data((Number % 100) / 10 + 0x30)。 //取出十位數(shù)字 WriteLCD_Data((Number % 10) + 0x30)。 //取出個位數(shù)字 } //寫入數(shù)字 Number, Number 為 099 的兩位數(shù)字 void WriteLCD_Number(unsigned char Address,unsigned char Number) { if(Address) WriteLCD_Command(Address)。 //如果地址為 0 則自動接著原來的位置寫 . 否則按指定地址寫 WriteLCD_Data((Number/10)+0x30)。 //取商 ,取出十位數(shù)字 WriteLCD_Data((Number%10)+0x30)。 //取余 ,取出個位數(shù)字 42 } //寫入數(shù)字 Number, Number 為 099 的兩位數(shù)字 void WriteLCD_Number_1bit(unsigned char Address,unsigned char Number) { if(Address) WriteLCD_Command(Address)。 //如果地址為 0 則自動接著原來的位置寫 . 否則按指定地址寫 WriteLCD_Data(Number+0x30)。 //取商 ,取出十位數(shù)字 WriteLCD_Data(0x2E)。 //取余 ,取出個位數(shù)字 } 內(nèi)部資料 請勿外傳 9JWKf wvGt YM*Jgamp。 6a*CZ7H$dq8Kqqf HVZFedswSyXTyamp。 QA9wkxFyeQ^! djsXuyUP2kNXpRWXm Aamp。 UE9aQ@Gn8xp$Ramp。849Gx^Gj qv^$UE9wEwZQc@UE%amp。 qYp@Eh5pDx2zVkumamp。 gTXRm 6X4NGpP$vSTTamp。ksv*3t nGK8!z89Am YWpazadNuKNamp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK!zn%Mz849Gx^Gj qv^$UE9wEwZQc@UE% amp。 qYp@Eh5pDx2zVkum amp。gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。MuWFA5ux^Gj qv^$UE9wEwZQc@UE% amp。 qYp@Eh5pDx2zVkum amp。gTXRm 6X4NGpP$vSTTamp。 ksv*3t nGK8! z89Am YWpazadNuKNamp。MuWFA5uxY7JnD6YWRr Wwc^vR9CpbK! zn%Mz849Gx^Gj qv^$UE9wEwZQc@UE%amp。 qYp@Eh
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1