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

正文內容

基于單片機的多功能函數信號發(fā)生器設計畢業(yè)論文-資料下載頁

2025-06-20 12:35本頁面
  

【正文】 Triangle Wave Square Wave sawtooth Wave Select Wave: press key S1 !}。uchar idata lcd_hang2[16]={f= Hz }。uchar code waveTH[]={ 0xfd,0xfe,0xff,0xff}。uchar code waveTL[]={ , //正弦波頻率調整中間值,//三角波頻率調整中間值,0xac,0xde,0xd0,0xde}。 /****************************/uchar code triangle_tab[]={ //每隔數字8,采取一次,0x40,0x48,0x50,0x58,0x70,0x78,0x80,0x88,0x90,0x98,0xd8,0xe0,0xe8,0xf0,0xf8,0xf8,0xd0,0xc8,0xc0,0x98,0x90,0x88,0x80,0x78,0x50,0x28,0x20,0x18,0x00}。uchar code sine_tab[256]={//輸出電壓從0到最大值(正弦波1/4部分),0xf9,0xf8,0xf7,0xf6,0xf5,0xda,0xd8,0xd6,0xcf,0xcc,0xa8,0xa5, ,0x96,0x93,0x90,0x8d,//輸出電壓從最大值到0(正弦波1/4部分),0xf8,0xf7,0xf6,0xf5,0xf4,0xe1,0xde,0xdd,0xd4,0xd1,0xcf,//輸出電壓從最小值到0(正弦波1/4部分)0x00,0x07,0x08,0x09,0x0a,0x1a,0x1c,x2b,0x2e,0x30,0x33,d,55,0x57,0x5a,0x5d,9,0x6c,0x6f,}。 void delay(uchar z) { uint x,y。for(x=z。x0。x)for(y=110。y0。y)。} void triangle_out()//三角波輸出{ DAdata=triangle_tab[wavecount++]。if(wavecount64) wavecount=0。DA_S1=0。 //打開8位輸入寄存器DA_S1=1。 //}void sine_out() //正弦波輸出{ DAdata=sine_tab[wavecount++]。DA_S1=0。 //打開8位輸入寄存器DA_S1=1。 //} void square_out() //方波輸出{ judge=~judge。 if(judge==1) DAdata=0xff。else DAdata=0x00。DA_S1=0。 //DA_S1=1。 //關閉8位輸入寄存器}void sawtooth_out() //鋸齒波輸出{ /*uchar j。 for(j=0。j25。j++) DAdata=j。 delay(5) 。 */ DAdata=sawtooth_tab[wavecount++]。if(wavecount71) wavecount=0。DA_S1=0。 //打開8位輸入寄存器DA_S1=1。 //}/************1602液晶的相關函數*************/define lcd_ports P1sbit rs=P2^2。sbit rw=P2^3。sbit lcden=P2^4。 void write_(uchar ){rs=0。//置零,表示寫指令lcden=0。lcd_ports=。delay(5)。lcden=1。delay(5)。lcden=0。}void write_date(uchar date){rs=1。//置1,表示寫數據lcden=0。lcd_ports=date。delay(5)。lcden=1。delay(5)。lcden=0。} void disp_lcd(uchar addr,uchar *temp1){uchar num。write_(addr)。delay(1)。 //延時一會兒???for(num=0。num16。num++){write_date(temp1[num])。//或者這樣寫write_date(*(temp1+num))。delay(1)。}} void init_lcd(){//uchar num。lcden=0。rw=0。 //初始化為零,寫數據write_(0x38)。 //使液晶顯示點陣write_(0x0c)。 //初始設置write_(0x06)。write_(0x01)。 write_(0x80)。 //指針指向第一格 disp_lcd(0x80,amp。lcd_hang1[4*16])。 //在第一行顯示 disp_lcd(0xc0,amp。lcd_hang1[5*16])。 //在第二行顯示}/********************1602液晶函數聲明結束*********************/ void main(){ uchar i=0。DA_S2=0。 //使DAC寄存器處于直通狀態(tài)DAdata=0。DA_S1=1。 //關閉8位輸入寄存器init_lcd()。 waveform=0。 TMOD=0x01。 //設置定時器,16位工作方式IT0=1。 //設置外部中斷,下降沿觸發(fā)ET0=1。 EX0=1。 EA=1。 //開中斷while(1){}} void timer0() interrupt 1{TH0=THtemp。TL0=TLtemp。if(waveform==0) sine_out()。//正弦波輸出else if(waveform==1) triangle_out()。else if(waveform==2) square_out()。//方波else if(waveform==3) sawtooth_out()。//else if(waveform==4) waveform=0。 //鋸齒波后重復正弦波}void key_int0() interrupt 0{ uchar keytemp。uint total_freq。 //總頻率EA=0。 TR0=0。 delay(5)。 //延時if(key==0) //判斷按鍵是否按下{keytemp=P3amp。0xf0。 //獲取P3口高四位的值switch(keytemp) //根據按鍵次數選擇波形{ case 0xe0: waveform++。 if(waveform3) waveform=0。 break。case 0xd0: wavefreq[waveform]++。 //頻率按單位增加 if(wavefreq[waveform]10) wavefreq[waveform]=1。 break。 case 0xb0: //頻率按規(guī)定單位依次衰減 wavefreq[waveform]。 if(wavefreq[waveform]1) wavefreq[waveform]=10。 break。 case 0x70: //TTL輸出 DA_S2=1。 //使DAC寄存器關閉 break。} THtemp=waveTH[waveform*10+(wavefreq[waveform]1)]。TLtemp=waveTL[waveform*10+(wavefreq[waveform]1)]。total_freq= wavefreq[waveform] * freq_unit[waveform]。 lcd_hang2[5]=total_freq%10+0x30。 total_freq/=10。 lcd_hang2[4]=total_freq%10+0x30。 //LCD顯示十位 total_freq/=10。 lcd_hang2[3]=total_freq%10+0x30。 //百位 total_freq/=10。 lcd_hang2[2]=total_freq%10+0x30。 //千位 disp_lcd(0x80,amp。lcd_hang1[waveform*16])。 //在第一行顯示 disp_lcd(0xc0,lcd_hang2)。 //在第二行顯示}EA=1。 TR0=1。 //開啟總中斷與定時器
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1