按鍵狀態機,清晰的實現鍵盤的掃描。 支持多功能按鍵:長按,短按等
上傳時間: 2017-04-07
上傳用戶:ippler8
福運訂餐網免費版,提供大家免費使用! 如需要美化,修改,增加功能請到,福運建站網--福運訂餐網官方網站。 福運訂餐系統分為免費版,普及版,創業版,通用版,中級版,高級版。 歡迎查看演示:http://www.fooun.com 產品管理功能,訂餐管理功能 網站基本設置功能 特色是:按周顯示餐品。 每天都在變化 后臺管理目錄admin 用戶名admin 密碼admin
標簽:
上傳時間: 2014-08-15
上傳用戶:cainaifa
能夠用matlab實現RSA算法中加密解密的功能,產生的密鑰為1024位,計算速度快。
上傳時間: 2014-12-22
上傳用戶:遠遠ssad
單片機控制數碼管顯示,實現計數器功能,使能按下一個按鈕之后計數器開始累加。
上傳時間: 2017-06-28
上傳用戶:gyq
已知數據文件IN.dat中存有200個四位數,并已調用讀函數rData()把這些數存入數組a中,請編寫函數spellNum(),其功能是:把個位數字和千位數字重新組成一個新的二位數(新二位數的十位數字是原四位數的個位數字,新二位數的個位數字是原四位數的千位數字),以及把百位數字和十位數字組成另一個新的二位數(新二位數的十位數字是原四位數的百位數字,新二位數的個位數字是原四位數的十位數字),如果新組成的兩個二位數一個是奇數,另一個為偶數,并且兩個二位數中至少有一個數能被17整除,同時兩個新數的十位數字均不為0,則將滿足此條件的四位數按從大到小的順序存入數組b中,并要計算滿足上述條件的四位數的個數count。最后main()函數調用寫函數wData(),把結果count以及數組b中符合條件的四位數輸出到OUT.dat文件中。
上傳時間: 2014-10-29
上傳用戶:李彥東
程序特色: 一:使搜索引擎更加容易抓取和索引 二:提供更多的功能,提高用戶的友好體驗 三:可用性的提高,提高用戶的友好體驗 html5響應式攝影網站系統使用方法: 將文件上傳只ASP空間,運行http://你的域名/install.asp進行安裝。 只需兩步即可安裝完成,為了保證網站安全,請修改默認后臺路徑及數據庫名稱。 S-CMS醫院建站系統 v3.0 build20190104更新說明: 1.新增:修復PHP版部分SQL注入漏洞 2.新增:后臺新增檢測木馬功能,可恢復已篡改文件和刪除木馬文件 3.優化:PAYPAL支付方式支持設置匯率,境外用戶可以使用美元支付 S-CMS醫院建站系統 v3.0 build20190111更新說明: 1.優化:兼容多種編碼,解決因編碼不同無法導入SQL文件的問題 2.新增:PHP版新增批量上傳圖片功能及通過excel批量導入產品功能 3.新增:后臺登錄界面加入驗證碼功能,防止暴力破解密碼 S-CMS醫院建站系統 v3.0 build20190308更新說明: 1.新增:新聞模塊招聘功能支持編輯條目標題 2.新增:萬能表單系統加入開啟驗證碼的選項,可根據需要開啟或關閉 3.優化:后臺會員模塊列表加入分頁功能,縮短加載時間 S-CMS醫院建站系統 v3.0 build20190322更新說明: 1.優化:支持恢復舊版程序時備份的數據庫文件 2.優化:生成全站靜態文件時,采用了分批次生成方法,防止代碼運行超時 3.修復:修復會員中心積分轉余額功能及完善信息加積分功能的錯誤 4.優化:優化核心程序,使頁面加載速度更快 S-CMS醫院建站系統 v3.0 build20190412更新說明: 1.新增:加入回收站功能,所有誤刪除的數據均可在回收站內進行恢復 2.優化:用戶登錄后臺和導入模板數據時自動備份數據,防止誤操作損壞網站數據 3.優化:后臺富文本編輯器改為Ueditor,功能更加強大 S-CMS醫院建站系統 v3.0 build20190419更新說明: 1.新增:新增頁面防復制功能,可以保護網頁內容防止文字被復制和圖片被保存 2.新增:當管理員登錄IP有變動時,需要二次驗證郵箱,保障后臺數據安全 3.新增:取消圖形驗證碼,改為拖動滑塊驗證,增加了人機驗證的安全性同時減少出錯概率 S-CMS醫院建站系統 v3.0 build20190510更新說明: 1.新增:支持編輯器上傳圖片加水印及同步到OSS云儲存 2.新增:產品和新聞分類按鈕棄用click點擊,采用a鏈接,對搜索引擎更加友好 3.新增:新增MIP(即移動端網頁加速技術)模板,可以有效的提高網站的搜索引擎排名
上傳時間: 2019-05-14
上傳用戶:tiansan52077
在過去的幾年,人們共同見證了科學技術為社會發展所帶來的奇跡。人們對生活水平有了更高的追求,而智能家居就扮演了一個很重要的角色。智能家居將家庭生活中的各種電器結合成一個有機的整體,進行統一控制,給人們提供了一個高效、優質的生活環境。但隨之而來的問題是,如何提出一套符合標準又被大眾接受的智能家居系統。本課題聚焦于目前智能家居所面臨的價格高昂,布線復雜等問題,設計出一種以MSP430作為主控芯片的無線智能家居控制系統。 本課題主要研究的是一款以超低功耗MSP430單片機作為主控制器,融入各種傳感器技術,利用nRF24L01與PT2262/PT2272無線收發芯片組建家庭內網,通過GSM模塊實現遠程通信的實用經濟型智能家居控制系統。系統的研究的內容主要是實現檢測與安防的功能,實現數據的遠距離與近距離無線傳輸。系統將硬件設計分為主控模塊與從控模塊的設計,利用Altium Designer軟件分別繪制出主控模塊與從控模塊的電路連接原理圖。在硬件電路設計的基礎上,確定軟件工作流程,根據軟件流程編寫C語言程序代碼,并且在IAR Systems開發環境中進行編譯。通過軟、硬件聯合調試,確保系統工作的協調性。最后,通過Proteus仿真軟件進行仿真,確定方案的可行性,之后進行硬件系統的測試。測試結果表明系統實現了家居周圍環境監測、環境異常情況下的報警、家居內部的無線通信以及家居外部的遠程通信等功能。 本文研究的智能家居控制系統,融入了無線通信的技術,避免了家庭布線的繁瑣,實現了三種環境檢測與四種異常情況報警。嘗試構建一套成本低,功耗低,操作簡單,便于安裝的適用于普通家庭的家居智能化操作系統,具有很大的現實意義。
上傳時間: 2022-05-22
上傳用戶:
液位是工業生產中常見的測量參數,化工、石油、污水處理等各類工廠企業都要進行液位測量。目前,液位檢測技術飛速發展,新的液位測量儀表量程大、精度高、功能全,我國新型液位儀表大多依靠進口。由于超聲波測量液位具有非接觸測量、可測低溫介質、能夠定點和連續測量等優點,近年來,超聲液位測量技術取得了長足的進步,己成功應用于江河水位、化學和制藥工業、食品加工、罐裝液位等多種領域。 本文研制的是基于ARM的超聲波液位計。傳統的超聲波液位計一般使用8位的單片機作處理器,采用電子元件捕捉到超聲波回波信號后產生中斷,判斷超聲波的傳播時間。本文提出了使用32位ARM芯片做處理器,采用數字信號處理的方法來判斷超聲波傳播時間的設計方案。 本文使用高性能的ARM7TDMI-S內核的芯片LPC2119作為系統的運算控制器,加強了系統對超聲波回波信號的處理能力;使用A/D轉換器將回波信號轉換為數字信號,采用數字濾波處理信號,利用數值處理來判斷超聲波回波信號的起始點,提高了液位的測量精度;采用單換能器收發一體式電路設計,簡化了液位的計算;利用LPC2119芯片內部的CAN總線控制器設計了CAN總線通信接口;選用一線式數字溫度傳感器DSl8820進行溫度補償,避免了由于環境溫度的變化而產生的測量誤差。ARM芯片豐富的內部資源和I/0口線有利于今后擴展功能,升級系統。本超聲波液位計使用方便,精度高,能滿足工業生產中的要求。
上傳時間: 2013-04-24
上傳用戶:lwt123
設計了一個基于單片機的轎車車內一氧化碳濃度測控功能的系統。該系統以16位高性能單片機SPCE061A為控制核心,采用高精度敏感元件MQ-7,集成運算放大器INA128進行信號調理,并引入了實時操作系統μC/OS-II進行任務管理。實驗表明:系統實現了轎車空調運行時一氧化碳氣體的實時監控,CO濃度不超過300 ppm,同時具有溫度測量功能,便于進行空調操作,參數測量準確,為保證轎車內人員安全提供了可靠方案。
上傳時間: 2013-12-04
上傳用戶:縹緲
單片機指令系統原理 51單片機的尋址方式 學習匯編程序設計,要先了解CPU的各種尋址法,才能有效的掌握各個命令的用途,尋址法是命令運算碼找操作數的方法。在我們學習的8051單片機中,有6種尋址方法,下面我們將逐一進行分析。 立即尋址 在這種尋址方式中,指令多是雙字節的,一般第一個字節是操作碼,第二個字節是操作數。該操作數直接參與操作,所以又稱立即數,有“#”號表示。立即數就是存放在程序存儲器中的常數,換句話說就是操作數(立即數)是包含在指令字節中的。 例如:MOV A,#3AH這條指令的指令代碼為74H、3AH,是雙字節指令,這條指令的功能是把立即數3AH送入累加器A中。MOV DPTR,#8200H在前面學單片機的專用寄存器時,我們已學過,DPTR是一個16位的寄存器,它由DPH及DPL兩個8位的寄存器組成。這條指令的意思就是把立即數的高8位(即82H)送入DPH寄存器,把立即數的低8位(即00H)送入DPL寄存器。這里也特別說明一下:在80C51單片機的指令系統中,僅有一條指令的操作數是16位的立即數,其功能是向地址指針DPTR傳送16位的地址,即把立即數的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數直接以單元地址的形式給出,也就是在這種尋址方式中,操作數項給出的是參加運算的操作數的地址,而不是操作數。例如:MOV A,30H 這條指令中操作數就在30H單元中,也就是30H是操作數的地址,并非操作數。 在80C51單片機中,直接地址只能用來表示特殊功能寄存器、內部數據存儲器以及位地址空間,具體的說就是:1、內部數據存儲器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話的意思就是這0-127共128位的任何一位,例如0位是以00H這個單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區。20H-2FH地址單元。3、特殊功能寄存器。專用寄存器除以單元地址形式給出外,還可以以寄存器符號形式給出。例如下面我們分析的一條指令 MOV IE,#85H 前面的學習我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV IE,#85H 的形式表述,也可以MOV 80H,#85H的形式表述。 關于數據存儲器RAM的內部情況,請查看我們課程的第十二課。 直接尋址是唯一能訪問特殊功能寄存器的尋址方式! 大家來分析下面幾條指令:MOV 65H,A ;將A的內容送入內部RAM的65H單元地址中MOV A,direct ;將直接地址單元的內容送入A中MOV direct,direct;將直接地址單元的內容送直接地址單元MOV IE,#85H ;將立即數85H送入中斷允許寄存器IE 前面我們已學過,數據前面加了“#”的,表示后面的數是立即數(如#85H,就表示85H就是一個立即數),數據前面沒有加“#”號的,就表示后面的是一個地址地址(如,MOV 65H,A這條指令的65H就是一個單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個工作寄存器組共有32個通用寄存器,但在指令中只能使用當前寄存器組(工作寄存器組的選擇在前面專用寄存器的學習中,我們已知道,是由程序狀態字PSW中的RS1和RS0來確定的),因此在使用前常需要通過對PSW中的RS1、RS0位的狀態設置,來進行對當前工作寄存器組的選擇。2、部份專用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進位位CY。 寄存器尋址方式是指操作數在寄存器中,因此指定了寄存器名稱就能得到操作數。例如:MOV A,R0這條指令的意思是把寄存器R0的內容傳送到累加器A中,操作數就在R0中。INC R3這條指令的意思是把寄存器R3中的內容加1 從前面的學習中我產應可以理解到,其實寄存器尋址方式就是對由PSW程序狀態字確定的工作寄存器組的R0-R7進行讀/寫操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數的地址,即操作數是通過寄存器間接得到的,因此稱為寄存器間接尋址。 MCS-51單片機規定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內部或外部數據存儲器的256個單元。為什么會是256個單元呢?我們知道,R0或者R1都是一個8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV R0,#30H ;將值30H加載到R0中 MOV A,@R0 ;把內部RAM地址30H內的值放到累加器A中 MOVX A,@R0 ;把外部RAM地址30H內的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問片外數據存儲器時,我們通常就用DPTR做為間址寄存器。例:MOV DPTR,#1234H ;將DPTR值設為1234H(16位) MOVX A,@DPTR ;將外部RAM或I/O地址1234H內的值放到累加器A中 在執行PUSH(壓棧)和POP(出棧)指令時,采用堆棧指針SP作寄存器間接尋址。例:PUSH 30H ;把內部RAM地址30H內的值放到堆棧區中堆棧區是由SP寄存器指定的,如果執行上面這條命令前,SP為60H,命令執行后會把內部RAM地址30H內的值放到RAM的61H內。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個,R0、R1、DPTR、SP 寄存器間接尋址范圍總結:1、內部RAM低128單元。對內部RAM低128單元的間接尋址,應使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對外部RAM64KB的間接尋址,應使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內容送入累加器A中。外部RAM的低256單元是一個特殊的尋址區,除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內容送入累加器A。 堆棧操作指令(PUSH和POP)也應算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號的形式表示,為了區別寄存器尋址我寄存器間接尋址的區別,在寄存器間接尋址方式式中,寄存器的名稱前面加前綴標志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計數器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時,把兩者的內容相加,所得到的結果作為操作數的地址。這種方式常用于訪問程序存儲器ROM中的數據表格,即查表操作。變址尋址只能讀出程序內存入的值,而不能寫入,也就是說變址尋址這種方式只能對程序存儲器進行尋址,或者說它是專門針對程序存儲器的尋址方式。例:MOVC A,@A+DPTR這條指令的功能是把DPTR和A的內容相加,再把所得到的程序存儲器地址單元的內容送A假若指令執行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數地址就是54H+3F21H=3F75H。如果3F75H單元中的內容是7FH,則執行這條指令后,累加器A中的內容就是7FH。 變址尋址的指令只有三條,分別如下:JMP @A+DPTRMOVC A,@A+DPTRMOVC A,@A+PC 第一條指令JMP @A+DPTR這是一條無條件轉移指令,這條指令的意思就是DPTR加上累加器A的內容做為一個16位的地址,執行JMP這條指令是,程序就轉移到A+DPTR指定的地址去執行。 第二、三條指令MOVC A,@A+DPTR和MOVC A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來卻有一定的差別,現詳細說明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個16位的數據指針寄存器,按理,它們的尋址范圍都應是64K。我們在學習特殊功能寄存器時已知道,程序計數器PC是始終跟蹤著程序的執行的。也就是說,PC的值是隨程序的執行情況自動改變的,我們不可以隨便的給PC賦值。而DPTR是一個數據指針,我們就可以給空上數據指針DPTR進行賦值。我們再看指令MOVC A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個地址,而PC是固定的,累加器A是一個8位的寄存器,它的尋址范圍是256個地址單元。講到這里,大家應可明白,MOVC A,@A+PC這條指令的尋址范圍其實就是只能在當前指令下256個地址單元。所在,這在我們實際應用中,可能就會有一個問題,如果我們需要查詢的數據表在256個地址單元之內,則可以用MOVC A,@A+PC這條指令進行查表操作,如果超過了256個單元,則不能用這條指令進行查表操作。剛才我們已說到,DPTR是一個數據指針,這個數據指針我們可以給它賦值操作的。通過賦值操作。我們可以使MOVC A,@A+DPTR這條指令的尋址范圍達到64K。這就是這兩條指令在實際應用當中要注意的問題。 變址尋址方式是MCS-51單片機所獨有的一種尋址方式。 位尋址 80C51單片機有位處理功能,可以對數據位進行操作,因此就有相應的位尋址方式。所謂位尋址,就是對內部RAM或可位尋址的特殊功能寄存器SFR內的某個位,直接加以置位為1或復位為0。 位尋址的范圍,也就是哪些部份可以進行位尋址: 1、我們在第十二課學習51單片機的存儲器結構時,我們已知道在單片機的內部數據存儲器RAM的低128單元中有一個區域叫位尋址區。它的單元地址是20H-2FH。共有16個單元,一個單元是8位,所以位尋址區共有128位。這128位都單獨有一個位地址,其位地址的名字就是00H-7FH。這里就有一個比較麻煩的問題需要大家理解清楚了。我們在前面的學習中00H、01H。。。。7FH等等,所表示的都是一個字節(或者叫單元地址),而在這里,這些數據都變成了位地址。我們在指令中,或者在程序中如何來區分它是一個單元地址還是一個位地址呢?這個問題,也就是我們現在正在研究的位尋址的一個重要問題。其實,區分這些數據是位地址還是單元地址,我們都有相應的指令形式的。這個問題我們在后面的指令系統學習中再加以論述。 2、對專用寄存器位尋址。這里要說明一下,不是所有的專用寄存器都可以位尋址的。具體哪些專用寄存器可以哪些專用寄存器不可以,請大家回頭去看看我們前面關于專用寄存器的相關文章。一般來說,地址單元可以被8整除的專用寄存器,通常都可以進行位尋址,當然并不是全部,大家在應用當中應引起注意。 專用寄存器的位尋址表示方法: 下面我們以程序狀態字PSW來進行說明 D7 D6 D5 D4 D3 D2 D1 D0 CY AC F0 RS1 RS0 OV P 1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H MOV C,D5H 2、位名稱表示:表示該位的名稱,例如PSW的位5是F0,所以可以用F0表示 MOV C,F0 3、單元(字節)地址加位表示:D0H單元位5,表示為DOH.5 MOV C,D0H.5 4、專用寄存器符號加位表示:例如PSW.5 MOV C,PSW.5 這四種方法實現的功能都是相同的,只是表述的方式不同而已。 例題: 1. 說明下列指令中源操作數采用的尋址方式。 MOV R5,R7 答案:寄存器尋址方式 MOV A,55H 直接尋址方式 MOV A,#55H 立即尋址方式 JMP @A+DPTR 變址尋址方式 MOV 30H,C 位尋址方式 MOV A,@R0 間接尋址方式 MOVX A,@R0 間接尋址方式 改錯題 請判斷下列的MCS-51單片機指令的書寫格式是否有錯,若有,請說明錯誤原因。 MOV R0,@R3 答案:間址寄存器不能使用R2~R7。 MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。 ADD R0,R1 運算指令中目的操作數必須為累加器A,不可為R0。 MUL AR0 乘法指令中的乘數應在B寄存器中,即乘法指令只可使用AB寄存器組合。
上傳時間: 2013-11-11
上傳用戶:caozhizhi