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

正文內(nèi)容

基于tea5767模塊的數(shù)字fm收音機(jī)設(shè)計(jì)-資料下載頁(yè)

2025-06-18 16:06本頁(yè)面
  

【正文】 void autosearch(void)。 //自動(dòng)頻率搜索void init(void)。 //TEA5767初始化void key_scan(void)。 //鍵掃描void ask(void)。 //問(wèn)答訊號(hào)void n_ask(void)。 //非應(yīng)答訊號(hào)void checkack(void)。 //檢查應(yīng)答訊號(hào)void rebyte(uchar idata *sla, uchar n)。 //與recbyte一起構(gòu)成接收I2C數(shù)據(jù)函數(shù)void recbyte(uchar idata *ch)。void setByte1Byte2(void)。 //設(shè)置第一第二字節(jié)頻率void AUTO_search_up(void)。 //自動(dòng)頻率搜索void volume_up(void)。//音量增加void volume_down(void)。//音量減小void AMP_sendnbyte(uchar idata *sla,uchar numbyte_AMP)。void init(void){ uchar idata sbuf[5]={0XF0,0X2C,0XD0,0X10,0X40}。 //FM模塊預(yù)設(shè)值 uchar idata rbuf[5]={0X00,0X00,0X00,0X00,0X00}。 uchar idata ampint[5]={0X27,0X40,0X42,0X46,0XC3}。 FM_PLL=0X302C。 FM_FREQ=100800000。 //開機(jī)預(yù)設(shè)頻率  PLL_HIGH=0。 PLL_LOW=0。 delay100ms()。 delay100ms()。 P1=0XFF。 P2=0XFF。 I2C_byte1=0XF0。 //FM模塊預(yù)設(shè)值 I2C_byte2=0X2C。 I2C_byte3=0XD0。 I2C_byte4=0X10。 I2C_byte5=0X40。 byte1=0X27。 byte2=0X40。 byte3=0X42。 byte4=0X46。 byte5=0XC3。 sendnbyte(amp。ADDRESS_SEND,numbyte)。 delay100ms()。 AMP_sendnbyte(amp。ADDRESS_AMP,numbyte_AMP)。}void I2C_start(void) //在SCL為高時(shí),SDA由高變低即為I2C傳輸開始{ SDA=1。 SCL=1。 DELAY5US。 SDA=0。 DELAY5US。 SCL=0。}void stop(void) //在SCL為高時(shí),SDA由低變高即為I2C傳輸結(jié)束{ SDA=0。 SCL=1。 DELAY5US。 SDA=1。 DELAY5US。 SCL=0。}/* 應(yīng)答位檢查子函數(shù) */void checkack(void){ SDA = 1。 // 應(yīng)答位檢查(,必須先向端口寫1) SCL = 1。 F0 = 0。 DELAY5US。// SDA=0。 if(SDA == 1) // 若SDA=1表明非應(yīng)答,置位非應(yīng)答標(biāo)志F0 F0 = 1。 SCL = 0。}/* 發(fā)送一個(gè)字節(jié)數(shù)據(jù)子函數(shù) */void sendbyte(uchar idata *ch){ uchar idata n = 8。 uchar idata temp。 temp = *ch。 while(n) { if((tempamp。0x80) == 0x80) // 若要發(fā)送的數(shù)據(jù)最高位為1則發(fā)送位1 { SDA = 1。 // 傳送位1 SCL = 1。 DELAY5US。 SCL = 0。 SDA = 0。 } else { SDA = 0。 // 否則傳送位0 SCL = 1。 DELAY5US。 SCL = 0。 } temp = temp1。 // 數(shù)據(jù)左移一位 }}/* 發(fā)送n字節(jié)數(shù)據(jù)子程序 */void sendnbyte(uchar idata *sla, uchar n){ uchar idata *p。 sbuf[0]=I2C_byte1。 sbuf[1]=I2C_byte2。 sbuf[2]=I2C_byte3。 sbuf[3]=I2C_byte4。 I2C_start()。 // 發(fā)送啟動(dòng)信號(hào) sendbyte(sla)。 // 發(fā)送從器件地址字節(jié) checkack()。 // 檢查應(yīng)答位 if(F0 == 1) { NACK = 1。 return。 // 若非應(yīng)答表明器件錯(cuò)誤置錯(cuò)誤標(biāo)志位NACK } p = amp。sbuf[0]。 while(n) { sendbyte(p)。 checkack()。 // 檢查應(yīng)答位 if (F0 == 1) { NACK=1。 return。 // 若非應(yīng)答表明器件錯(cuò)誤置錯(cuò)誤標(biāo)志位NACK } p++。 } stop()。 // 全部發(fā)完則停止}void delay1ms(void) //延遲1ms{ uchar i。 for(i=1000。i0。i){。}}void delay100ms() //延遲100ms{ uchar i。 for(i=100。i0。i){delay1ms()。}}void delay600ms(){ uchar i。 for(i=600。i0。i){delay1ms()。}}void delay10ms() //延遲10ms{ uchar i,j。 for(i=900。i0。i) {for(j=100。j0。j){。}}}void LCDshow(void){ num1=FM_FREQ/100000000。 num2=(FM_FREQ%100000000)/10000000。 num3=(FM_FREQ%10000000)/1000000。 num4=(FM_FREQ%1000000)/100000。 LCD_write_shuzi(6,2,num1)。 LCD_write_shuzi(7,2,num2)。 LCD_write_shuzi(8,2,num3)。 LCD_write_zimu(9,2,5)。 //. LCD_write_shuzi(10,2,num4)。 delay600ms()。 }void key_scan(void){ if(Key1==0) { delay10ms()。 if(Key1==0) { while(Key1==0)。 search_up()。 //頻率向上 LCDshow()。 delay600ms()。 } } if(Key2==0) { delay10ms()。 if(Key2==0) { while(Key2==0)。 search_down()。 //頻率向下 LCDshow()。 delay600ms()。 } }}/*向上搜索*/ void search_up(void){ MUTE=1。 //靜音 SUD=1。 //搜索標(biāo)志位設(shè)為向上 if(FM_FREQ108000000){FM_FREQ=87500000。} // 判斷頻率是否到頂 FM_FREQ=FM_FREQ+100000。 //頻率加100K FM_PLL=(unsigned short)((4000*(FM_FREQ/1000+225))/32768)。 //計(jì)算PLL值 setByte1Byte2()。 //設(shè)置I2C第一第二字節(jié)PLL 值}/*向下搜索*/void search_down(void){ MUTE=1。 //靜音 SUD=0。//搜索標(biāo)志位設(shè)為向下 if(FM_FREQ87500000){FM_FREQ=108000000。} // 判斷頻率是否到底 FM_FREQ=FM_FREQ100000。 //頻率減100K FM_PLL=(unsigned short)((4000*(FM_FREQ/1000+225))/32768)。 //計(jì)算PLL值 setByte1Byte2()。 //設(shè)置I2C第一第二字節(jié)PLL值}/*第一第二字節(jié)PLL值設(shè)定*/void setByte1Byte2(void){ PLL_HIGH=(uchar)((FM_PLL 8)amp。0X3f)。 //PLL高字節(jié)值 I2C_byte1=(I2C_byte1amp。0XC0)|PLL_HIGH。 //I2C第一字節(jié)值 PLL_LOW=(uchar)FM_PLL。 //PLL低字節(jié)值 I2C_byte2= PLL_LOW。 //I2C第二字節(jié)值 sendnbyte(amp。ADDRESS_SEND,numbyte)。 //I2C數(shù)據(jù)發(fā)送 MUTE=0。 delay100ms()。 //延時(shí)100ms sendnbyte(amp。ADDRESS_SEND,numbyte)。 //I2C 數(shù)據(jù)發(fā)送 DELAY5US。}/* 發(fā)送n字節(jié)數(shù)據(jù)子程序 */void AMP_sendnbyte(uchar idata *sla, uchar n){ uchar idata *p。 ampint[0]=byte1。 ampint[1]=byte2。 ampint[2]=byte3。 ampint[3]=byte4。 ampint[4]=byte5。 I2C_start()。 // 發(fā)送啟動(dòng)信號(hào) sendbyte(sla)。 // 發(fā)送從器件地址字節(jié) checkack()。 // 檢查應(yīng)答位 if(F0 == 1) { NACK = 1。 return。 // 若非應(yīng)答表明器件錯(cuò)誤置錯(cuò)誤標(biāo)志位NACK } p=amp。ampint[0]。 while(n) { sendbyte(p)。 checkack()。 // 檢查應(yīng)答位 if (F0 == 1) { NACK=1。 return。 // 若非應(yīng)答表明器件錯(cuò)誤置錯(cuò)誤標(biāo)志位NACK } p++。 } stop()。 // 全部發(fā)完則停止}void main(void){ numbyte = 5。 numbyte_AMP=5。 ADDRESS_SEND = 0xC0。 // TEA5767寫地址 ADDRESS_RECEIVE=0XC1。 //TEA5767讀地址 ADDRESS_AMP=0X8E。 init()。 // 初始化TEA5767 LCD_init()。 //初始化LCD模塊 LCD_clear()。 //清屏幕 BLED=0。 //背光開 LCD_write_hanzi(2,0,0)。 //調(diào) LCD_write_hanzi(4,0,1)。 //頻 LCD_write_hanzi(6,0,2)。 //收 LCD_write_hanzi(8,0,3)。 //音 LCD_write_hanzi(10,0,4)。 //機(jī) LCD_write_hanzi(8,4,5)。 //單 LCD_write_hanzi(10,4,6)。 //片 LCD_write_hanzi(12,4,7)。 //機(jī) while(1){ key_scan()。 //鍵掃描 }} 5110C液晶顯示程序 通過(guò)單片機(jī)內(nèi)的程序,使得TEA5767所在的頻率數(shù)值顯示在液晶屏上include sbit sce = P1^4。 //片選sbit res = P1^0。 //復(fù)位,0復(fù)位sbit dc = P1^1。 //1寫數(shù)據(jù),0寫指令sbit sdin =
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1