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

正文內(nèi)容

工程實踐與科技創(chuàng)新-第7組設(shè)計報告組長陳曦東(電子版)-資料下載頁

2024-11-03 01:31本頁面

【導(dǎo)讀】過單片機小系統(tǒng)控制直流增益等級的切換。拓展任務(wù)為函數(shù)信號發(fā)生暨電。形(方波)等數(shù)學(xué)函數(shù)波形和播放音樂。

  

【正文】 i[2] = (test_counter)/10+20。 /*計算十位數(shù)*/ digi[3] = (test_counter%10)。 /*計算個位數(shù) */ } } 第 43頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 include include /*////////////////////////////*/ /*/ 常量定義 /*/ /*////////////////////////////*/ /* 定時器初值 */ //define V_T1 0xfd /*SCOM 9600 baud, ! notice: crystal */ define V_TH0 0xee /* ~ 5ms , ! notice: crystal */ define V_TL0 0x00 /* 1s軟件定時器溢出值,個 ms */ define V_T1s 200 /* 數(shù)碼管段驅(qū)動寄存器地址 */ define ADDR_8SEG XBYTE[0x2020] /* 數(shù)碼管位驅(qū)動和指示燈驅(qū)動寄存器地址 */ define ADDR_SEL XBYTE[0x4000] /* 按鍵 */ sbit KEY1=P1^0。 sbit KEY2=P1^1。 sbit KEY3=P1^2。 sbit KEY4=P1^3。 //樂曲卡秋莎的樂譜 {頻率值,節(jié)拍值 } code類型指明要存放在程序存儲器中 unsigned int code music_data[][2]= 第 44頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 { {440,600},{494,200},{523,600},{440,200}, {523,400},{494,200},{440,200},{494,400}, {330,400},{494,600},{523,200},{578,600}, {494,200},{578,400},{523,200},{494,200}, {440,800},{659,400},{880,400},{784,400}, {880,200},{784,200},{698,400},{659,200}, {578,200},{659,400},{440,400},{0,200}, {698,400},{578,200},{659,600},{523,200}, {494,200},{330,200},{523,200},{494,200}, {440,800},{659,400},{880,400},{784,400}, {880,200},{784,200},{698,400},{659,200}, {578,200},{659,400},{440,400},{0,200}, {698,400},{578,200},{659,600},{523,200}, {494,200},{330,200},{523,200},{494,200}, {440,800},{0,0} }。 /* 輸出引腳指定 */ //電壓增益控制 sbit out3 = P1^4。 sbit out2 = P1^5。 sbit out1 = P1^6。 sbit out0 = P1^7。 //音頻輸出 sbit buzzer = P3^5。 /*////////////////////////////*/ /*/ 變量定義 /*/ /*////////////////////////////*/ /* 1s軟件定時器計數(shù) */ unsigned char clock1s。 /* 1s軟件定時器溢出標志,位變量 */ bit clock1s_flag。 第 45頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 /* 數(shù)碼管位驅(qū)動和指示燈驅(qū)動信號輸出緩存,定義了一個可位尋址的變量*/ unsigned char bdata output_sel。 sbit led_1 = output_sel^5。 sbit led_2 = output_sel^6。 sbit led_3 = output_sel^7。 sbit led_4 = output_sel^4。 /* 數(shù)碼管掃描驅(qū)動指針,為測試外部存儲器( U3 6264),特使用 xdata類型 */ unsigned char xdata digi_scaner。 /* 測試用計數(shù)器,為測試外部存儲器( U3 6264),特使用 xdata類型 */ unsigned int xdata test_counter。 /* 測試用計數(shù)值十進制表示,為測試外部存儲器( U3 6264),特使用xdata類型 */ unsigned char xdata digi[4]。 unsigned char xdata form。 unsigned char xdata order。 unsigned char xdata sin。 unsigned char xdata san。 void delay(void){ int xdata i。 for(i=0。i10000。i++)。 } /* 播放樂曲功能變量 */ // 播放中,當前的音頻頻率 unsigned int audio_frequency。 // 輔助讀譜指針、持續(xù)時間計數(shù)變量 unsigned int audio_ptr,audio_dura。 // 輔助狀態(tài)標志 bit buzzer_flag。 //////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// 第 46頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 /*////////////////////////////*/ /*/ 函數(shù)定義 /*/ /*////////////////////////////*/ /**** 7段數(shù)碼顯示譯碼 參數(shù): DATA:需要顯示的數(shù)字或符號; 返回值: 7段譯碼結(jié)果 ( D7~0 = PGFEDCBA ) *****/ unsigned char NUMTOSEG7(unsigned char DATA) { unsigned char AA。 switch (DATA) { case 0: AA=0xc0。break。 /* ‘’ */ case 1: AA=0xf9。break。 /* ‘’ */ case 2: AA=0xa4。break。 /* ‘’ */ case 3: AA=0xb0。break。 /* ‘’ */ case 4: AA=0x99。break。 /* ‘’ */ case 5: AA=0x92。break。 /* ‘’ */ case 6: AA=0x82。break。 /* ‘’ */ case 7: AA=0xf8。break。 /* ‘’ */ case 8: AA=0x80。break。 /* ‘’ */ case 9: AA=0x90。break。 /* ‘’ */ default: AA=0xff。 } return(AA)。 } /**** T0時鐘中斷服務(wù)程序 在本例 中,每 ms被執(zhí)行一次 *****/ timer0() interrupt 1 using 0 第 47頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 { //EA=0。 /*T0,T1中斷允許嵌套,不再關(guān)中斷 */ /* 重新對計數(shù)器賦初值,并啟動定時計數(shù) */ TH0=V_TH0。 TL0=V_TL0。 TR0=1。 output_sel = 0xf0。 /*初值,設(shè)置數(shù)碼管驅(qū)動位無效,且指示燈全滅 */ /* 檢測到按鍵被按下()時,相應(yīng)的指示燈亮() */ if (KEY1==0) led_1 = 0。 if (KEY2==0) led_2 = 0。 if (KEY3==0) led_3 = 0。 if (KEY4==0) led_4 = 0。 /* 數(shù)碼管掃描驅(qū)動指針值從到重復(fù)變換,每 ms間隔對一個數(shù)碼管進行驅(qū)動, ms一個輪回 */ if (++digi_scaner=5) digi_scaner = 1。 switch (digi_scaner) { case 1: /* 驅(qū)動第一個數(shù)碼管 */ output_sel |= 0x01。 ADDR_8SEG = NUMTOSEG7(digi[0])。 /*輸出到鎖存器 U5(在電路圖中找) */ break。 case 2: /* 驅(qū)動第二個數(shù)碼管 */ output_sel |= 0x02。 ADDR_8SEG = NUMTOSEG7(digi[1])。 /*輸出到鎖存器 U5*/ 第 48頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 break。 case 3: /* 驅(qū)動第三個數(shù)碼管 */ output_sel |= 0x04。 ADDR_8SEG = NUMTOSEG7(digi[2])。 /*輸出到鎖存器 U5*/ break。 case 4: /* 驅(qū)動第四個數(shù)碼管 */ output_sel |= 0x08。 ADDR_8SEG = NUMTOSEG7(digi[3])。 /*輸出到鎖存器 U5*/ break。 } ADDR_SEL = output_sel。 /*輸出到鎖存器 U6(在電路圖中找) */ if(form==1){ /* 樂曲 (循環(huán) )播放讀譜和計時 */ if (audio_dura==0) { //定時器暫停 ET1=0。 TR1=0。 if (music_data[audio_ptr][1]==0) //判是否終止 { /*樂曲終止 */ audio_ptr=0。 audio_dura=0。 buzzer=1。//輸出置高 } else { audio_dura=music_data[audio_ptr][1]/5。 //讀節(jié)拍, 第 49頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 除法用于調(diào)整節(jié)奏快慢 if (music_data[audio_ptr][0]!=0) //判休止符 { /*不是休止符 */ //根據(jù)音頻計算定時器的初值,并啟動定時器 audio_frequency=0xffff460800/music_data[audio_ptr][0]+15。 TH1=audio_frequency/256。 TL1=audio_frequency%256。 TR1=1。 ET1=1。 } else { /*是休止符 */ buzzer=1。//輸出置高 } audio_ptr++。 } } else audio_dura。 } //EA=1。 /*開中斷 */ } /**** T1時鐘中斷服務(wù)程序 產(chǎn)生音頻方波信號所需的計時 *****/ timer1() interrupt 3 using 0 { if(form==1){ /* 重新對計數(shù)器賦初值 */ TR1=0。 TH1=audio_frequency/256。 第 50頁 上海交通大學(xué) 電子信息與電氣工程學(xué)院 TL1=audio_frequency%256。 TR1=1。 buzzer_flag=!buzzer_flag。 buzzer=buzzer_flag。 } //輸出音頻方波 else if(form==2){TR1=0。TH1=0x00。 TL1=0x00。TR1=1。 if(order==0){P1=0xff。 order=1。} else{P1=0xcf。order=0。} } else if(form=
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1