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

正文內(nèi)容

基于單片機(jī)的正弦波信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2024-11-10 02:46本頁(yè)面

【導(dǎo)讀】=======================畢業(yè)設(shè)計(jì)。目錄

  

【正文】 PCA_AD9835_MCLK()。 //PCA的 CEX0 輸出 1M 到 AD9835_MCLK Freq_Adjust1(600)。 Freq_Adjust0(400)。 square_wave(15)。 //調(diào)制波頻率 Delay_N_MCLK(80)。 //延遲 8 個(gè) AD9835_MCLK 即 80 個(gè)系統(tǒng)時(shí)鐘 while(1)。 } void SYS_init(void) { WDTCN = 0xDE。 //禁止看門(mén)狗 WDTCN = 0xAD。 SYSCLK_init ()。 //系統(tǒng)時(shí)鐘初始化 PORT_init ()。 //系統(tǒng)端口初始化 } 河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)設(shè)計(jì) 28 /**********************系統(tǒng)時(shí)鐘初始化 ***********************/ void SYSCLK_init(void) { int i。 // delay counter char SFRPAGE_SAVE = SFRPAGE。 // Save Current SFR page SFRPAGE = CONFIG_PAGE。 // Set SFR Page OSCXCN = 0x66。 // start external oscillator with 10MHz crystal (XFCN = 6) for (i=0。 i 255。 i++) //Delayms(100)。 // XTLVLD blanking interval (1ms) while (!(OSCXCN amp。 0x80))。 // Wait for crystal osc. to settle SFRPAGE = LEGACY_PAGE。 RSTSRC = 0x04。 // enable missing clock detector SFRPAGE = CONFIG_PAGE。 CLKSEL = 0x01。 // select external oscillator as SYSCLK source OSCICN = 0x00。 // disable internal oscillator SFRPAGE = SFRPAGE_SAVE。 // Restore SFR page } /******************端口初始化 *******************/ void PORT_init(void) { SFRPAGE = CONFIG_PAGE。 XBR0 =0x09。 //SDA=,SCL=,CEX0= XBR1 =0x20。 //T2 配置到 XBR2 =0xC0。 //弱上拉禁止,功能選擇開(kāi)關(guān)允許 P0MDOUT = 0x0C。 //, 為開(kāi)漏輸出, , 為推挽輸出 P0 =0xff。 P1MDIN = 0xff。 //ditigal input of P1 P1MDOUT = 0x00。 P1 = 0xff。 P2MDOUT = 0x07。 P2 = 0xFF。 P3MDOUT = 0x00。 P3 = 0xff。 } 河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)設(shè)計(jì) 29 /******************向 AD9835 寫(xiě)入 16bit 數(shù)據(jù) **********************/ void byte_shift (unsigned int data_16) { unsigned int temp。 FSYNC=0。 AD9835_SCLK=1。 for(temp=0x8000。temp。 temp=1,AD9835_SCLK=1) { AD9835_SDATA=data_16amp。temp。 //先發(fā)送最高位數(shù)據(jù) AD9835_SCLK=0。 } FSYNC=1。 } /******************計(jì)算頻率寄存器參數(shù) *************************/ void Freq_Process1 (unsigned char FREQ1_LSBs_L, unsigned char FREQ1_LSBs_H, unsigned char FREQ1_MSBs_L, unsigned char FREQ1_MSBs_H) { byte_shift(0xF800)。 //byte_shift(0xA000)。 //SNYC=1,同步方式; SELSRC=0,用 pins 選擇頻率寄存器 byte_shift(0x3400+FREQ1_LSBs_L)。 byte_shift(0x2500+FREQ1_LSBs_H)。 byte_shift(0x3600+FREQ1_MSBs_L)。 byte_shift(0x2700+FREQ1_MSBs_H)。 byte_shift(0xC000)。 } void Freq_Process0 (unsigned char FREQ0_LSBs_L, unsigned char FREQ0_LSBs_H, unsigned char FREQ0_MSBs_L, unsigned char FREQ0_MSBs_H) { byte_shift(0xF800)。 河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)設(shè)計(jì) 30 byte_shift(0x3000+FREQ0_LSBs_L)。 byte_shift(0x2100+FREQ0_LSBs_H)。 byte_shift(0x3200+FREQ0_MSBs_L)。 byte_shift(0x2300+FREQ0_MSBs_H)。 byte_shift(0xC000)。 } /******************產(chǎn)生任意指定頻率的正弦波 ******************/ void Freq_Adjust1(float value_Freq1) { float x。 unsigned long Freq_reg1。 unsigned char L_L1, L_H1, H_L1, H_H1。 x=。 Freq_reg1=value_Freq1*x。//x=2exp32/1M(選用 1M 晶振) L_L1=Freq_reg1amp。0x000000FF。 L_H1=(Freq_reg18)amp。0x000000FF。 H_L1=(Freq_reg116)amp。0x000000FF。 H_H1=(Freq_reg124)amp。0x000000FF。 Freq_Process1(L_L1,L_H1,H_L1,H_H1)。 } void Freq_Adjust0(float value_Freq0) { float z。 unsigned long Freq_reg0。 unsigned char L_L0, L_H0, H_L0, H_H0。 z=。 Freq_reg0=value_Freq0*z。 //z=2exp32/1M(選用 1M 晶振) L_L0=Freq_reg0amp。0x000000FF。 L_H0=(Freq_reg08)amp。0x000000FF。 H_L0=(Freq_reg016)amp。0x000000FF。 H_H0=(Freq_reg024)amp。0x000000FF。 Freq_Process0(L_L0,L_H0,H_L0,H_H0)。 } 河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)設(shè)計(jì) 31 /************延遲 N 個(gè) MCLK 節(jié)拍 ***************/ void Delay_N_MCLK(unsigned char N) { for (N=0。N=8。N++) _nop_()。 } /******************用 T2 產(chǎn)生調(diào)制方波 ***********************/ void square_wave (unsigned char a)//產(chǎn)生頻率為 a 的調(diào)制波并輸出到 { unsigned int RCAP_data16。 float w。 w=625000。 //外部時(shí)鐘 8 分頻 = RCAP_data16=(65536(w/a))。 SFRPAGE=TMR2_PAGE。 TMR2CN=0x04。 TMR2CF=0x12。 //T2 方式一 自動(dòng)重裝載方 式 RCAP2=RCAP_data16。 } /*****************從 輸出 1M 到 AD9835_MCLK*************/ void PCA_AD9835_MCLK(void) { SFRPAGE=PCA0_PAGE。 PCA0CN=0x40。 //使能位 CR=1 PCA0MD=0x08。 //系統(tǒng)時(shí)鐘,禁止中斷 PCA0CPM0=0xC6。//16 為脈寬,頻率輸出方式 (ECOM0=1,TOG0=1,PWM0=1) PCA0CPH0=0x05。//時(shí)間常 數(shù)為 251 } void MT_SEND(unsigned char out_op, unsigned int out_data) { while(SM_BUSY)。 SM_BUSY = 1。 SMB0CN = 0x64。 河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)設(shè)計(jì) 32 COMMAND = (0x98|WRITE)。 BYTE_Number=2。 OP_CODE = out_op。 // 發(fā)送控制字 DATA16=out_data。 //發(fā)送 16 位數(shù)據(jù) data_MSB=(DATA168)amp。0x00FF。 data_LSB=DATA16amp。0x00FF。 STA = 1。 // Start transfer. } include define UCHAR unsigned char define UINT unsigned int UCHAR code segment[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 UCHAR temp[4]={0x00,0x00,0x00,0x00}。 UCHAR discan[4]={0xfe,0xfd,0xfb,0xf7}。.. UCHAR TotalCount,Count,Idata,k。 UCHAR a=0,b=0,c=0。 //數(shù)碼管掃描 void Discan1() { UINT i。 for(i=0。i4。i++) { P0=temp[i]。 P2=discan[i]。 P2=0xff。 } } //數(shù)碼管顯示 void Display(UCHAR TotalCount,a,b) { 河南機(jī)電高等專(zhuān)科學(xué)校畢業(yè)設(shè)計(jì) 33 UCHAR j,k,l,s。 j=TotalCount。k=a。l=b。 s=c。 temp[0]=segment[j]。 temp[1]=segment[k]。 temp[2]=segment[l]。 temp[3]=segment[s]。 } //鍵盤(pán)控制 UCHAR JudgeKey() { static UCHAR m。 P1=0xff。 if(P1!=0XFF) { if(P1==0xfe) m=1。 if(P1==0xfd) m=2。 if(P1==0xfb) m=3。 if(P1==0xf7) m=4。 } return m。 } void SMBUS_ISR (void) interrupt 7 { switch (SMB0STA) { case SMB_START: SMB0DAT = 0x98。STA = 0。 break。 case SMB_MTADDACK: SMB0DAT = OP_CODE。 break。 case SMB_MTADDNACK: STO = 1。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1