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

正文內(nèi)容

基于aduc848的智能電壓測試儀課程設(shè)計(含全部源程序)-wenkub

2023-07-09 12:06:40 本頁面
 

【正文】 ) { Data_Process(ad)。 id=0。 } break。 id=0。 } break。 id=0。 } break。 id=0。 } break。 id=0。 } break。 id=0。 } break。 id=0。 } } tflag=0。 delay()。 } lcd_wc(0x0f)。i 100。 //改動時間標(biāo)志, tflag=1 時能改動時間, tflag=0 時鎖存時間,禁止改動。 idata uchar kcount=0。 a、中斷子程序流程圖 關(guān) tim e r0中 斷 入 口蜂 鳴 器 輸 入 端 取 反給 tim e r0賦 初 值啟 動 tim e r0中 斷 返 回 1602 字符顯示 程序流程圖如圖所示。 復(fù)位與下載 復(fù)位與下載電路如圖 所示。 圖 IIC總線連接 AduC848 片內(nèi)有 I2C 模塊,并有獨立的引腳 SCLOCK 和 SDATA。 插針配置: ( 1)插針 10上面兩腳接跳線帽, 4X4矩陣式鍵盤輸入,行掃描信號為 ~ ,列掃描信號為 ~ 。 按鍵輸入 模塊 該模塊原理如圖 所示。蜂鳴器和紅外 LED的驅(qū)動均采用普通 NPN三極管。切勿插錯。 ( 4) RS:數(shù)據(jù)、指令選擇信號。 顯示模塊 采用 LCD1602, 顯示信號連接圖如圖 所示。 模擬信號有兩種輸入方式: ( 1)兩路單端輸入。 ADuC848 內(nèi)部有 16 位 ADC,模擬信號輸入模塊原理圖如圖 所示。 要求 1)顯示內(nèi)容:電壓當(dāng)前值;最大電壓值;最小電壓值;電壓合格率;超上限率;超下限率;電壓上、下限給定值、當(dāng)前時間 2)利用小鍵盤實現(xiàn)電壓上、下限給定值的輸入和顯示選擇命令 3)電壓采樣周期為 1秒,平均值的計算周期為 2分鐘,所求得的電壓平均值作為統(tǒng)計和計算的依據(jù),統(tǒng)計和計算以一天為單位,超過 24小時則從頭開始統(tǒng)計計算 4)超上限率 =(其中超上限的次數(shù)) /(采樣計算得到的總的電壓平均值次數(shù)) *100%;超下限率的計算公式與此類似 5)合格率 =1超上限率 超下限率 6)顯示北京時間,可調(diào)整 7)當(dāng)前電壓超上限或下限時,利用蜂鳴器報警 (二)系統(tǒng)原理框圖 (三)硬件原理圖 1. 元器件清單 ADuC848 開發(fā)板, 5V 電源適配器 , LCD1602 , USB 轉(zhuǎn)串口線 , 杜邦線、短路帽 等。 2. 硬件模塊接線圖及各模塊作用 電源模塊 原理圖如圖 所示。 圖 模擬信號輸入模塊 D15和 D16為鉗位保護(hù)二極管, R55為限流保護(hù)電阻。把輸入信號電壓高的一端接到第 1腳,電壓低的一端接到同一個接口的第 2腳。 圖 LCD信號連接 關(guān)鍵網(wǎng)絡(luò)名和引腳名解釋: ( 1) DISCTRL0~ 4:顯示控制信號。 ( 5) RW:讀、寫選擇信號。 蜂鳴器和紅外發(fā)送 模塊 該模塊原理圖如圖 所示。為方便調(diào)試,對該模塊中的信號設(shè)了測試點,具體位置參見附圖 1。 圖 按鍵模塊 由于 P1口(用于行掃描)內(nèi)部無上拉電阻,為使無鍵按下時行信號為高電平,故將行信號接上拉電阻,電阻大小 10K即可。 ( 2)插針 10下面兩腳接跳線帽,獨立按鍵輸入,該模式有 4個獨立按鍵可用,按鍵掃描所用端口為 ~ 。板上的 RTC 時鐘芯片DS1307 和 EEPROM 芯片 AT24C08 均使用了 I2C 總線。 圖 復(fù)位與下載 進(jìn)入下載或調(diào)試模式的步驟為: ( 1)按住 BTN1(down or debug按鍵 )不要放開; ( 2)按下 BTN2(reset 按鍵 ),然后放開 BTN2(reset 按鍵 ); ( 3)放開 BTN1(down or debug按鍵 )。 開 始初 始 化 液 晶寫 要 顯 示 的 數(shù) 據(jù) 地 址寫 要 顯 示 的 數(shù) 據(jù)寫 要 顯 示 的 數(shù) 據(jù) 地 址寫 要 顯 示 的 數(shù) 據(jù) A/D 轉(zhuǎn)換 程序流程圖如圖所示。 //按鍵次數(shù)量,亦即光標(biāo)顯示位置的標(biāo)志量 idata uchar kcount1。 uchar ad=0。i++)。//光標(biāo)顯示并閃爍 //光標(biāo)閃爍位置 if(kcount8) { lcd_wc(0xC0+kcount9)。 while(kcount==kcount1) { Keyscan()。 } //lcd 屏幕顯示 void lcd_display(uchar key) { switch(key) { case 1: //當(dāng)前電壓值 Check_Busy()。 setbz_flag(0)。 case 2: //最大電壓值 Check_Busy()。 setbz_flag(0)。 case 3: //最小電壓值 Check_Busy()。 setbz_flag(0)。 case 4: //電壓合格率 Check_Busy()。 setbz_flag(1)。 case 5: //超上限率 Check_Busy()。 setbz_flag(2)。 case 6: //超下限率 Check_Busy()。 setbz_flag(3)。 case 7: //電壓上限值 Check_Busy()。 ad_flag=1。 Keyscan()。 gettable8()。 setbz_flag(0)。 case 9: //顯示時間 Check_Busy()。 tflag=1。 id=1。 unsigned int j=0。=0xf0。 //延時消抖 if(temp==(P1amp。 lcd_display(1)。 break。 case 0x07: //確認(rèn) ad=0。 default:break。 // 為 0 switch(P1amp。 case 0x0 ad=6。 kcount++。 tiaoya_add(ad_flag)。 } P2amp。0x0f) { case 0x0 ad=3。 lcd_display(7)。 break。 case 0x0f:break。 P2|=0x0e。 break。 case 0x0b: //減光標(biāo)所在位置的數(shù)值 ad=0。 lcd_wc(0x0c)。 } } } } //設(shè)置按鍵次數(shù)量,主要負(fù)責(zé)清零重置 void setk(uchar count) { kcount=count。 } 2) LCD1602 模塊 include //延時函數(shù) void lcd_delay(uint t) { while(t)。 rw = 1。0X80)。 } //lcd 寫指令 void lcd_wc(uchar cmd) { Check_Busy()。 P0=cmd。 lcd_delay(65535)。 e=1。 lcd_delay(250)。 uint i=0。 lcd_delay(60000)。 lcd_wc(0x38)。 lcd_delay(60000)。 //開顯示,不顯示光標(biāo) lcd_wc(0x06)。 while(table[i]!=39。 } } 3) DS1307 模塊 include //include //define uchar unsigned char //define uint unsigned int void iic_delay_4us() { uchar t=25+5。 } void iic_init() { I2CM=1。 //釋放 SDA } void iic_start() { MDE=1。 //制造起始條件 iic_delay_4us()。 //拉低數(shù)據(jù)線,產(chǎn)生起始信號 iic_delay_4us()。 MDO=0。 iic_delay_5us()。 MDO=dat。 MCO=0。 MCO=0。 MCO=1。 iic_delay_4us()。 bit res。0x01)。 for(i=0。 } iic_write_bit(nack)。 if(iic_write_char(address)!=0)return 1。//定義秒計數(shù)變量并賦初值 0 unsigned int count1=0。//電壓上、下限值、合格率、超上限率、超下限率 unsigned int upper_limit=20xx。 //電壓位 unsigned int num=0,num1=0。 //取樣電壓值數(shù)組,存放一個平均值計算周期內(nèi)的每秒電壓值 unsigned int average[a_count]。 //選用內(nèi)部參考電源,模擬信號從 AIN5 AIN6 輸入 /* TMOD=0x01。 ET0=1。//使能定時器 0 中斷和全局中斷 TH0=0X00。 if(RDY0) { CurrentValue=((ADC0H*256)+ADC0M)*5/256。 min=value[0]。 } else { max=value[w]。//求電壓采樣周期內(nèi)電壓總和 average[num1]=sum/v_count。 //當(dāng)超過上下限值時,蜂鳴器鳴響報警 if(CurrentValueupper_limit||CurrentValuelower_limit) { beep=0。 } //選擇顯示對應(yīng) AD 標(biāo)號電壓值或比率 switch(ad) { case 1: AD_display(CurrentValue)。 case 3: AD_display(min)。 case 5: AD_display(overup_rate)。 case 7: AD_display(upper_limit)。 } RDY0 = 0。x) { for(y=100。 InterruptCounter++。 //1 秒采樣一個電壓 if(count1) { count=0。 //一個采樣周期后采樣電壓值清零,重新存儲 for(k=0。knum1。 } if(average[k]lower_limitamp。 num=0。ka_count。 Thi_bit = d/10%10。 lcd_wd(0x2e)。 lcd_wd(0x30+Thi_bit)。V39。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1