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

正文內(nèi)容

畢業(yè)論文基于stc12c5410ad單片機的傾角測試系統(tǒng)設計-在線瀏覽

2024-12-26 04:45本頁面
  

【正文】 掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。目前采用RS232接口與計算機通信,但隨著計算機技術的發(fā)展,支持熱插拔的USB標準接口將取代RS232接口,因此計算機將越來越少配置甚至不配置RS232接口。這樣單片機不能編程下載和和上位機通訊,這樣給開發(fā)帶來了麻煩。方案是采用USB/RS232橋接器件如CP2102,CP2103進行設計,計算機通過USB接口虛擬一個RS232接口,與傳統(tǒng)設備器件連接,設備對計算機接口的形式為USB接口。Silicon Laboratories公司推出的USB接口與RS232接口轉(zhuǎn)換器CP2102/CP2103是一款高度集成的USBUART橋接器,提供一個使用最小化元件和PCB空間來實現(xiàn)RS232轉(zhuǎn)換USB的簡便解決方案。CP2102/CP2103作為USB/RS232雙向轉(zhuǎn)換器,一方面可以從主機接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設;另一方面可從RS232外設接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送至主機,其中包括控制和握手信號。R,T分別接單片機的TXD(發(fā)射端)和RXD(接收端)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補償功能。采用雙電源供電(主電源和備用電源),可設置備用電源充電方式,提供了對后背電源進行涓細電流充電的能力。 DS1302電路連接圖 微控制器模塊 STC12系列單片機簡介宏晶STC12C5410AD單片機是新一代單片機,它主要特點是高速,高可靠,寬電壓,低功耗,超強抗干擾,無法解密[11]。2) 寬電壓:~,~(STC12LE5410AD系列)。4) 工作頻率:0~35MHz,相當于普通8051:0~420MHz。7) ISP/IAP,在系統(tǒng)可編程/在應用可編程,無需編程器和仿真器。10) 硬件看門狗(WTD),高速SPI通訊接口,全雙工異步串行口通訊(UART)兼容普通8051串口。每個I/O口驅(qū)動能力均可達20mA,但整個芯片最大不得超過55mA.選擇STC12C5410AD單片機為主控器件,單片機的片上資源能滿足系統(tǒng)的功能要求,減少了外圍器件,加強了系統(tǒng)的抗干擾能力,提高系統(tǒng)穩(wěn)定性,降低了開發(fā)成本和開發(fā)難度。單片機STC12C5410AD的P1為通用數(shù)字I/O與12位AD轉(zhuǎn)換器模擬輸入通道復用端口。 MMA7260Q與MSP430接口示意圖2) 74HC595與單片機接口單片機的 SPI由MISO()、MOSI()、SCLK()和/SS()4根信號線構(gòu)成。 74HC595與單片機接口 其他電路設計 .鍵盤電路設計 系統(tǒng)涉及到壓力的上下限報警值的設定,時間的設定,由于沒有過多的鍵,考慮到單片機的I/O口,所以用獨立式鍵盤來實現(xiàn)。 鍵盤電路設計.聲光報警電路設計報警功能主要是角度超過設定的上線報警值或低于設定的下線報警值時候會發(fā)出報警信號,系統(tǒng)采用較為常用的方案設計——聲光報警。報警聲音可以有高低報警,LED閃爍報警[14]。 角度數(shù)據(jù)采集設計 MMA7260Q輸出為模擬信號,采集過程需進行AD轉(zhuǎn)換。它是一種逐次比較型模數(shù)轉(zhuǎn)換器,速度可達到100KHz(10萬次/秒),10位的轉(zhuǎn)換精度,ADC輸入通道與P1口復用,上電復位后P1口為弱上拉型I/O口,用戶可以通過軟件設置將8路中的任何一路設置為A/D轉(zhuǎn)換,不需作為A/D 使用的口可繼續(xù)作為I/O口使用。AD轉(zhuǎn)換頻率: 52khz/2=26khzA/D轉(zhuǎn)換結(jié)果計算公式如下: (ADC_DATA[7:0],ADC_LOW2[1:0])= 1024Vin/Vcc其中,Vin為模擬輸入通道輸入電壓,Vcc為單片機實際工作電壓,用單片機工作電壓作為模擬參考電壓。 數(shù)字濾波及工程變換部分 采樣結(jié)束后進行數(shù)字濾波,數(shù)字濾波有多種方式,由于角度變化,可慢可快,所以為了適應快速變化的角度的測量,相比之下,采用了均值濾波,由于它實現(xiàn)簡單,占用單片機的資源較少,是一種比較好的選擇。濾波程序 float filter(void)//AD濾波 平均值濾波 { float sum=0。 char count。countN。 } return (sum/N)。以下為程序代碼:int ChengeADtoAngle(float m1) //m1為數(shù)字量{ float q2,q1。 //q1為得到的電壓值 4335為實際單片機的電壓值 q2=((q11650)/800)。 // 將角度 擴大10倍}為了觀察角度的變化及對角度的歷史數(shù)據(jù)經(jīng)行分析,需要將該數(shù)據(jù)與出現(xiàn)該數(shù)據(jù)的時間同時記錄。DS1302時鐘芯片可以用于時間記錄,很好地解決了這個問題。這2K字節(jié)的數(shù)據(jù)Flash存儲器分為4個扇區(qū),每個扇區(qū)包含512字節(jié)。對于數(shù)據(jù)Flash存儲器的操作有三個基本命令,分別是字節(jié)讀、字節(jié)編程和扇區(qū)擦除??紤]到數(shù)據(jù)Flash只有扇區(qū)擦除,所以將數(shù)據(jù)按扇區(qū)存儲,不按字節(jié)數(shù)存儲。角度數(shù)據(jù)再加上時間標簽共9個字節(jié)。每個扇區(qū)可存儲56個數(shù)據(jù)塊。 數(shù)據(jù)存儲子程序部分子程序//扇區(qū)擦除功能void sector_erase(unsigned int addr) //送地址{ ISP_CONTR = 0x83。 //3為扇區(qū)擦除功能 ISP_ADDRH = addr8。0x00ff。 //以免中斷打斷 ISP_TRIG = 0x46。 EA=1。}//字節(jié)編程void byte_program(unsigned int addr, char dat) //送地址addr 和數(shù)據(jù) dat{ ISP_CONTR = 0x83。 //2為字節(jié)編程 ISP_ADDRH = addr8。0x00ff。 EA=0。 ISP_TRIG = 0xb9。 iap_disable()。 ISP_CONTR = 0x83。 //1為字節(jié)讀功能 ISP_ADDRH = addr8。0x00ff。 ISP_TRIG = 0x46。 dat= ISP_DATA。 iap_disable()。} DS1302軟件設計DS1302是SPI總線驅(qū)動方式。1) DS1302的控制字節(jié)表 DS1302的控制字1RAMA4A3A2A1A0RD/CK/WR DS1302 的控制字如圖所示。位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù)。最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。 ACC = d。 i0。 DS1302_CLK = 1。 ACC = ACC 1。 for(i=8。 i) { ACC = ACC 1。 DS1302_CLK = 1。 } return(ACC)。 DS1302_CLK = 0。 DS1302InputByte(ucAddr)。 // 寫1Byte數(shù)據(jù) DS1302_CLK = 1。}unsigned char Read1302(unsigned char ucAddr) //讀取DS1302某地址的數(shù)據(jù){ unsigned char ucData。 DS1302_CLK = 0。 DS1302InputByte(ucAddr)。 // 讀1Byte數(shù)據(jù) DS1302_CLK = 1。 return(ucData)。鍵值功能設計:系統(tǒng)默認顯示的是當前時間和當前角度值,當?shù)谝淮伟聪耂1時,顯示切換到角度上下限的顯示,第二次按下調(diào)節(jié)角度下限的小數(shù)位,第三次按下調(diào)節(jié)角度下限的個位,依次按下,依次調(diào)節(jié)各位。S3作為調(diào)節(jié)角度上下限時的減一及角度正負號的切換用。鍵盤功能程序代碼請見附錄。定時掃描有鍵按下?延時4ms有鍵按下?延時4ms讀取鍵值開始//獲取鍵值void getkey(void) { if(P00==0amp。key_last0==1) { delay_flag=0。 //延時4ms,去抖動 if(P00==0amp。key_last0==1) { key_num=0。 delay_flag=0。 //延時4ms,去抖動 } else if(P00==1) key_last0=1。 if(P01==0amp。key_last1==1) { delay_flag=0。 //去抖動 if(P01==0amp。key_last1==1) { key_num=1。 delay_flag=0。 //延時4ms,去抖動 else if(P01==1) key_last1=1。 if(P02==0amp。key_last2==1) { delay_flag=0。 //延時4ms,去抖動 if(P02==0amp。key_last2==1) { key_num=2。 delay_flag=0。 //延時4ms,去抖動 } else if(P02==1) key_last2=1。 if(P03==0amp。key_last3==1) { delay_flag=0。 //延時4ms,去抖動 if(P03==0amp。key_last3==1) { key_num=3。 delay_flag=0。 //延時4ms,去抖動 } //去抖動 else if(P03==1) key_last3=1。} 通信部分上位機與單片機通信按應答方式經(jīng)行。將操作結(jié)果返回給上位機。單片機向上位機發(fā)送的數(shù)據(jù)的方式考慮了兩種,第一種是等數(shù)據(jù)存儲器容量存滿了后在一塊發(fā),這種方式實時性不夠,為了使角度數(shù)據(jù)的變化能夠及時的傳到上位機,采用定時發(fā)送,定時時間和上傳的次數(shù)由上位機來定,這樣一來就解決了實時性問題。這可由時間標簽,加以區(qū)分,而FF為數(shù)據(jù)存儲器中尚未寫進的字節(jié)單元,通過上位機軟件可以濾除。上位機給單片機的指令為:報文開始識別字(STX)命令碼(CMD)報文結(jié)束(ETX)內(nèi)容0XEECC0XFF字節(jié)數(shù)1視命令定11) 0x10:上傳數(shù)據(jù)存儲器中角度數(shù)據(jù)命令格式:0xEE 0x100x01/00 0xXX0xYY/00 0xFF第二字節(jié) 01 表示允許上傳數(shù)據(jù) 00 表示不允許上傳數(shù)據(jù)第三字節(jié) XX表示隔多少時間上傳一次第四字節(jié) 表示上傳多少次數(shù)據(jù)。2) 0x11:上傳報警次數(shù)命令格式:0xEE 0x11 0xff3) 0x12:上傳角度上下限命令格式:0xEE 0x12 0xff4) 0x13:接收設定上下限角度命令格式:0xEE 0x13 0xXX0xYY 0xZZ0x 0xWW 0xRR 0xffXX:表示上限正負號,為1為正,非1為負YY:表示上限的整數(shù)部分ZZ:表示上限的小數(shù)部分:表示下限正負號,為1為正,非1為負WW:表示下限的整數(shù)部分RR:表示下限的小數(shù)部分5) 0x14:接收設定時間命令格式: 0xEE 0x140xXX 0xXX0xXX0xXX0xXX 0xXX 0xXX 0xFF 從左到右依次為 秒、分、 時、 日、 月 、星期 、年6) 其他 :命令錯誤返回給上位機的值為:0xEE33 30300xFF 其他部分軟件設計 報警部分軟件設計:報警采用輸出不同占空比的PWM波形,通過音調(diào)高低的變化來實現(xiàn)高于上限獲低于下限的報警。并對上限和下限報警分別計數(shù),方便向上位機傳送數(shù)據(jù)。通過設置標志位,很好的解決了這個問題。 temp0=temp。amp。 stop=0。 Is_HIalarm=1。 H_is_add=1。 L_is_add=0。 Is_HIalarm=0。 L_is_add=1。 H_is_add=0。amp。amp。amp。}
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1