Ⅰ 預定義宏__arm__、__aarch64__、__i386__、__x86_64__
ABI:使用預處理器的預定義宏
通常,在構建時使用 #ifdef 及以下各項確定 ABI 最為方便:
對於 32 位 ARM,使用 __arm__
對於 64 位 ARM,使用 __aarch64__
對於 32 位 X86,使用 __i386__
對於 64 位 X86,使用 __x86_64__
請注意:32 位 X86 稱為 __i386__ ,而不是 __x86__ ,這可能與您預想的有所不同!
參考鏈接:
https://developer.android.com/ndk/guides/cpu-features?hl=zh-cn
Ⅱ 單片機!!!!!!!!!!!!!!!
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業控制領域。單片機由晶元內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個晶元中,使計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,單片機和專用處理器的發展便分道揚鑣。
早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列單片機系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,單片機技術得到了巨大的提高。隨著INTEL
i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。
單片機比專用處理器最適合應用於嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百台單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。
Ⅲ keil可以同時注冊2個注冊號嗎一個51的,一個ARM的。
可以的。兩個編譯時用不一樣的編譯程序可以裝兩個序列號,你看license窗口那裡就留了很多行就是給你用不同的編譯環境的序列號的。當然你的破解方式要正確。
求序列號要看版本的。keil3的keil
V809a是CZVPK-ZXW7M-J7QR8-BYQZZ-F3G8L-06LY1,這個版本還要替換一個文件「L51.dll」才能破解成功。
keil4的keil900是TI4HL-09MQ1-KZZW6-D4M8I-NV0YY-T01V1。
我只有這兩個算號的。版本如果不對你可以自己去下,最好一起下,沒有注冊機就不下。也可以keil3和keil4可以安裝在兩個目錄,同時安裝兩個。
Ⅳ gsiarm64和gsi+amr64有什麼區別
gsiarm64和gsi+amr64區別。
為了更廣泛地向企業領域推進,需要引入64位構架,同時也需要在ARMv8架構中引入新的AArch64執行狀態,AArch64不是一個單純的32位ARM構架擴展,而是ARMv8內全新的構架,完全使用全新的A64指令集。
這些都源自於多年對現代構架設計的深入研究,更重要的是,AArch64作為一個分離出的執行狀態,意味著一些未來的處理器可能不支持舊的AArch32執行狀態。
簡介:
雖然最初的64位ARM處理器將會完全向後兼容,但我們大膽且前瞻性地將AArch64作為在ARMv8處理器中唯一的執行狀態,我們在這些系統中將不支持32位執行狀態,這將使許多有益的實現得到權衡,如默認情況下,使用一個較大的64K大小的頁面,並會使得純凈的64位ARM伺服器系統不受遺留代碼的影響。
立即進行這種劃分是很重要的,因為有可能在未來幾年內將出現僅支持64位的伺服器系統。沒有必要在新的64位架構中去實現一個完整的32位流水線,這將會提高未來ARM伺服器系統的能效。
這樣回想起來,AArch64作為在Fedora ARM項目中被支持的ARM構架是一個很自然的過程,armv5tel,armv7hl,aarch64,新的架構被命名為,aarch64,這同ARM自己選擇的主線命名方式保持一致,同時也考慮到了ARM架構名與ARM商標分開的期望。
Ⅳ mcs 51 單片機匯編語言編程題
TEMP EQU 50H ;臨時變數
SGM_H EQU 51H ;求和的高8位,以及平均值
SGM_L EQU 52H ;求和的低8位,以及平均值的余數
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
LCALL MM ;排序子程序
LCALL AVG ;平均值子程序
SJMP $
MM:
MOV R0,#40H
LP_1:
MOV A,R0
MOV R1,A
MOV TEMP,@R0
LP_2:
INC R1
MOV A,@R1
CJNE A,TEMP,NEXT1
NEXT1:
JNC NEXT2
MOV @R0,A
MOV @R1,TEMP
MOV TEMP,@R0
NEXT2:
CJNE R1,#4FH,LP_2
INC R0
CJNE R0,#4FH,LP_1
RET
AVG:
MOV R0,#41H
MOV A,@R0
MOV SGM_H,#00H
LP_3:
CLR C
INC R0
ADD A,@R0
JNC NEXT3
INC SGM_H
NEXT3:
CJNE R0,#4EH,LP_3
MOV SGM_L,A
;以上部分是求和
SWAP A
ANL A,#0FH
MOV R1,A
MOV A,SGM_H
SWAP A
ADD A,R1
MOV B,#14D
DIV AB
SWAP A
MOV SGM_H,A
MOV A,B
SWAP A
MOV R1,A
MOV A,SGM_L
ANL A,#0FH
ADD A,R1
MOV B,#14D
DIV AB
ADD A,SGM_H
MOV SGM_H,A
MOV SGM_L,B
;以上部分是16位除以8位的除法
RET
解題思路是先排序,得到最大值與最小值,然後求平均值。
以上供參考。
Ⅵ 基於MCS-51單片機的精密溫度控制系統的設計與實現
上傳內容
僅供學習與參考
摘要
本檢測系統硬體設計以AT89C51單片機為核心,用溫度感測器DS18B20實現溫度控制,用數碼管顯示實際溫度和預設溫度,製作數字溫度計,並可以實現溫度預警控制。
單片機系統的軟體編程採用單片機匯編進行編程。應用軟體採用KEIL和PROTEUS模擬軟體模擬實現控制過程。
溫度控制系統是基於單片機的計算機檢測技術的軟硬體開發和面向對象的高級可視化程序開發的有機結合。對溫度控制的發展有很大的好處。如果投入生產,不僅會創造良好的經濟效益,還可提高溫控的簡單化。
關鍵詞 單片機;DS18B20;調節;溫度
Abstract
This examination system hardware design take at89C51 monolithic integrated circuit as a core, realizes the temperature control with temperature sensor DS18B20, Demonstrates the actual temperature and the preinstall temperature with the nixie tube,manufactures the simple intelligence temperature control system - - digit thermometer,And may realize the temperature early warning control.
. The monolithic integrated circuit system's software programming uses the monolithic integrated circuit assembly to carry on the programming. The superior machine application software uses KEIL and the PROTEUS simulation software simulation realizes the controlled process.
This article develops the intelligence temperature control system is based on monolithic integrated circuit's computer examination technology software and hardware development and face the object high-level visualization procere development organic synthesis. Has the very big advantage to temperature control's development. If place in operation, not only will create the good economic efficiency, but may also propose the simplification which the high temperature will control.
Keywords microcontroller;DS18B20;measure;temperture
目錄
摘要 I
Abstract II
第1章 緒論 4
1.1 溫度感測器發展概述 4
1.2 單片機技術簡介 4
1.3 溫度檢測技術的發展 5
第2章 溫度感測器的選擇 8
2.1 測溫方法 8
2.2 DS18B20簡介 9
第3章 軟硬體設計 10
3.1 單片機的選擇 10
3.2 溫度感測器的選擇 10
3.3 模擬軟體的選擇 11
3.4 編譯軟體的選擇 11
3.5 PROTEUS 模擬電路圖 12
第4章 匯編語言程序 13
4.1 主程序和溫度值轉換成顯示值子程序的流程圖 13
4.2 DS18B20溫度子程序和顯示子程序的流程圖 14
4.3 匯編語言源程序 14
第1章 緒論
1.1 溫度感測器發展概述(略)
1.2 單片機技術簡介(略)
1.3 溫度檢測技術的發展(略)
第2章 溫度感測器的選擇
2.1 測溫方法
溫度是一個很重要的物理參數,鋼鐵的冶煉、石油的分餾、塑料的合成以
及農作物的生長等等都必須在一定的溫度范圍內進行,各種構件、材料的體積、電阻、強度以及抗腐蝕等物理化學性質,一般也都會隨溫度而變化。人們利用各種能源為人類服務,也往往是使某些介質通過一定的溫度變化來實現的。所以在生產和化學試驗中,人們經常會碰到溫度測量的問題。
溫度感測器是檢測溫度的器件,其種類最多,應用最廣,『發展最快。眾所周知,日常使用的材料及電子元件大部分都隨溫度而變化,資料【5】中介紹了作為實用感測器必須滿足的一些條件:
(1)在使用溫度范圍內溫度特性曲線要求達到的精度能符合要求:為了能
在較寬的溫度范圍內進行檢測,溫度系數不宜過大,過大了就難以使用,但對
於狹窄的溫度范圍或僅僅定點的檢測,其溫度系數越大,檢測電路也能越簡單。
(2)為了將它用於電子線路的檢測裝置,要具有檢測便捷和易於處理的特
性。隨著半導體器件和信號處理技術的進步,對溫度感測器所要求的輸出特性
應能滿足要求。
(3)特性的偏移和蠕變越小越好,互換性要好。
(4)對於溫度以外的物理量不敏感。
(5)體積小,安裝方便:為了能正確地測量溫度,感測器的溫度必須與被
測物體的溫度相等。感測器體積越小,這個條件越能滿足。
(6)要有較好的機械、化學及熱性能。這對於使用在振動和有害氣體的環
境中特別重要。
(7)無毒、安全以及價廉、維修、更換方便等。
溫度測量的方法很多,根據溫度感測器的使用方式,通常分為接觸式測溫
法與非接觸式測溫法兩類。
(1)接觸式測溫法
由熱平衡原理可知,兩個物體接觸後,經過足夠長時間的熱交換達到熱平
衡,則它們的溫度必然相等。如果其中之一為溫度計,就可以用它對另一個物體實現溫度測量,這種測溫方式稱為接觸式測溫法。接觸式測溫的優點顯而易
見,它簡單,可靠,測量精度高,但同時也存在不足:溫度計要與被測物體有
良好的熱接觸,並充分換熱,從而產生了測溫滯後現象;測溫組件可能與被測
物體發生化學反應;由於受到耐高溫材料的限制,接觸式測溫儀表不可能應用
於很高溫度的測量。
(2)非接觸式測溫法
由於測量組件與被測物體不接觸,利用物體的熱輻射能隨溫度變化的原理
測定物體溫度。因而測量范圍原則上不受限制,測溫速度較快,還可以在運動
中測量。這種測溫方式稱為非接觸式測溫法。它的特點是:不與被測物體接觸,也不改變被測物體的溫度分布,熱慣性小。從原理上看,用這種方法測溫無上限。通常用來測定1000℃以上的移動、旋轉或反應迅速的高溫物體的溫度或表面溫度。
2.2 DS18B20簡介
2.2.1技術性能描述
單線介面方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。測溫范圍 -55℃~+125℃,固有測溫解析度0.5℃。支持多點組網功能,多個DS18B20可以並聯在唯一的三線上,實現多點測溫。工作電源: 3~5V直流電源。
在使用中不需要任何外圍元件,測量結果以9~12位數字量方式串列傳送。適用於DN15~25, DN40~DN250各種介質工業管道和狹小空間設備測溫。
2.2.2應用范圍
該產品適用於冷凍庫,糧倉,儲罐,電訊機房,電力機房,電纜線槽等測溫和控制領域,軸瓦,缸體,紡機,空調,等狹小空間工業設備測溫和控制。
2.2.3接線說明
特點有一線介面,只需要一條口線通信 多點能力,簡化了分布式溫度感測應用 無需外部元件 可用數據匯流排供電,電壓范圍為3.0 V至5.5 V 無需備用電源 測量溫度范圍為-55 ° C至+125 ℃ 。華氏相當於是-67 ° F到257華氏度 -10 ° C至+85 ° C范圍內精度為±0.5 ° C。
溫度感測器可編程的解析度為9~12位 溫度轉換為12位數字格式最大值為750毫秒 用戶可定義的非易失性溫度報警設置 應用范圍包括恆溫控制,工業系統,消費電子產品溫度計,或任何熱敏感系統描述該DS18B20的數字溫度計提供9至12位(可編程設備溫度讀數。信息被發送到/從DS18B20 通過1線介面,所以中央微處理器與DS18B20隻有一個一條口線連接。為讀寫以及溫度轉換可以從數據線本身獲得能量,不需要外接電源。 因為每一個DS18B20的包含一個獨特的序號,多個DS18B20可以同時存在於一條匯流排。這使得溫度感測器放置在許多不同的地方。它的用途很多,包括空調環境控制,感測建築物內溫設備或機器,並進行過程監測和控制。【6】
第3章 軟硬體設計
3.1 單片機的選擇
單片機系統由單片機AT89C51、74HC245等晶元構成,完成數據採集、處理、通訊以及所有的功能,是整個系統的核心模塊。
單片機是整個系統的核心,對系統起監督、管理、控製作用,並進行復雜的信號處理,產生測試信號及控制整個檢測過程。所以在選擇單片機時,參考了以下標准。
(1)運行速度。單片機運行速度一般和系統匹配即可。
(2)存儲空間。單片機內部存儲器容量,外部可以擴展的存儲器(包括1/0口)空間。
(3)單片機內部資源。單片機內部存儲資源越多,系統外接的部件就越少,這可提高系統的許多技術指標。
(4)可用性。指單片機是否能很容易地開發和利用,具體包括是否有合適的開發工具,是否適合於大批量生產:、性能價格比,是否有充足的資源,是否有現成的技術資源等。
(5)特殊功能。一般指可靠性、功耗、掉電保護、故障監視等。
從硬體角度來看,與MCS-51指令完全兼容的新一一代AT89CXX系列機,比在片外加EPROM才能相當的8031-2單片機抗干擾性能強,與87C51-2單片機性能相當,但功耗小。程序修改直接用+5伏或+12伏電源擦除,更顯方便、而且其工作電壓放寬至2.7伏一6伏,因而受電壓波動的影響更小,而且4K的程序存儲器完全能滿足單片機系統的軟體要求。故AT89C51單片機是構造本檢測系統的更理想的選擇。本系統選用ATMEL生產的AT89C51單片機,其特性如下:
(1) 4K位元組可編程閃速程序存儲器;1000次循環寫/擦
(2)全靜態工作:OHz-24MHz
(3)三級程序存儲器鎖定
(4) 128 X 8位內部數據存儲器,32條可編程1/0線
(5)兩個十六位定時器/計數器,六個中斷源
(6)可編程串列通道,低功耗閑置和掉電模式
該器件採用了ATMEL的高密度非易失性的存儲器工藝,並且可以與工業標準的MCS-51指令集和輸出管腳兼容。由於將多功能8位CPU與閃速式存儲器組合在單個晶元中,AT89C51是一種高效的微控制器,為很多嵌入式系統提供了高靈活性且價廉的方案。
3.2 溫度感測器的選擇
DS18B20是美國達拉斯半導體公司的產品,與其他產品相比較它的性能有如下特點:①採用單匯流排專用技術,既可通過串列口線,也可通過其它I/O口線與微機介面,無須經過其它變換電路,直接輸出被測溫度值(9位二進制數,含符號位),②測溫范圍為-55℃-+125℃,測量解析度為0.0625℃,③內含64位經過激光修正的只讀存儲器ROM,④適配各種單片機或系統機,⑤用戶可分別設定各路溫度的上、下限,⑥內含寄生電源。所以在本設計中,我採用了DS18B20作為溫度感測器。【8】
3.3 模擬軟體的選擇
Proteus 是英國Labcenter公司開發的電路分析與實物模擬軟體。它運行於Windows操作系統上,可以模擬、分析(SPICE)各種模擬器件和集成電路,該軟體的特點是:
①實現了單片機模擬和SPICE電路模擬相結合。具有模擬電路模擬、數字電路模擬、單片機及其外圍電路組成的系統的模擬、RS232動態模擬、I2C調試器、SPI調試器、鍵盤和LCD系統模擬的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。
②支持主流單片機系統的模擬。目前支持的單片機類型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍晶元。
③提供軟體調試功能。在硬體模擬系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變數、寄存器等的當前狀態,因此在該軟體模擬系統中,也必須具有這些功能;同時支持第三方的軟體編譯和調試環境,如Keil C uVision2、MPLAB等軟體。【9】
3.4 編譯軟體的選擇
KEIL C51標准C編譯器為8051微控制器的軟體開發提供了C語言環境,同時保留了匯編代碼高效,快速的特點。C51編譯器的功能不斷增強,使你可以更加貼近CPU本身,及其它的衍生產品。C51已被完全集成到uVision2的集成開發環境中,這個集成開發環境包含:編譯器,匯編 器,實時操作系統,項目管理器,調試器。uVision2 IDE可為它們提供單一而靈活的開發環境。
C51 V7版本是目前最高效、靈活的8051開發平台。它可以支持所有8051的衍生產品,也可以支持所有兼容的模擬器,同時支持其它第三 方開發工具。因此,C51 V7版本無疑是8051開發用戶的最佳選擇。
uVision2集成開發環境具有如下功能:
一、項目管理
工程(project)是由源文件、開發工具選項以及編程說明三部分組成的。
一個單一的uVision2工程能夠產生一個或多個目標程序。產生目標程序的源文件構成「組」。開發工具選項可以對應目標,組或單個文件。
uVision2包含一個器件資料庫(device database),可以自動設置匯編器、編譯器、連接定位器及調試器選項,來滿足用戶充分利用特定 微控制器的要求。此資料庫包含:片上存儲器和外圍設備的信息,擴展數據指針(extra data pointer)或者加速器(math accelerator)的特 性。
uVision2可以為片外存儲器產生必要的連接選項:確定起始地址和規模。
二、集成功能
uVision2的強大功能有助於用戶按期完工。
1.集成源極瀏覽器利用符號資料庫使用戶可以快速瀏覽源文件。用詳細的符號信息來優化用戶變數存儲器。
2.文件尋找功能:在特定文件中執行全局文件搜索。
3.工具菜單:允許在V2集成開發環境下啟動用戶功能。
4.可配置SVCS介面:提供對版本控制系統的入口。
5.PC-LINT介面:對應用程序代碼進行深層語法分析。
6.Infineon的EasyCase介面:集成塊集代碼產生。【10】
3.5 PROTEUS 模擬電路圖
圖1是基於單片機的智能溫度檢測系統電路原理圖。控制加熱熱水器電源電路用LED燈模擬代替,取消無水報警電路。裝上水後接通電源,下方LED數碼管顯示當前水溫。上方LED數碼管顯示預設水溫。操作「個位」鍵和「十位」鍵可預設水溫(如99℃)控制點。該電路具有如下功能:
(1) 測量水溫,精度為1℃,范圍為0~99℃;
(2) 三位數碼管實時顯示水溫;
(3) 可預設水溫(如99℃)控制點,當水加熱到該水溫時自動斷電,當水溫低於該水溫時自動上電加熱;
(4) 無水自動斷電和報警功能(略)。
圖1 基於單片機的智能溫度檢測系統電路原理圖
第4章 匯編語言程序
4.1 主程序和溫度值轉換成顯示值子程序的流程圖
4.2 DS18B20溫度子程序和顯示子程序的流程圖
4.3 匯編語言源程序
ORG 0
LJMP MAIN1
ORG 0003H
LJMP ZINT0
ORG 13H
LJMP ZINT1
TMPH: EQU 28H
FLAG1: EQU 38H
DATAIN: BIT P3.7
MAIN1: SETB IT0
SETB EA
SETB EX0
SETB IT1
SETB EX1
SETB P3.6
SETB P3.2
MOV 74H,#0
MOV 75H,#0
MOV 76H,#0
MOV 77H,#0
MAIN: LCALL GET_TEMPER
LCALL CVTTMP
LCALL DISP1
AJMP MAIN
INIT_1820:
SETB DATAIN
NOP
CLR DATAIN
MOV R1,#3
TSR1: MOV R0,#107 ;保持642ms
DJNZ R0,$
DJNZ R1,TSR1
SETB DATAIN ;釋放DS18B20匯流排
NOP
NOP
NOP
MOV R0,#25H
TSR2: JNB DATAIN,TSR3
DJNZ RO,TSR2
CLR FLAG1
SJMP TSR2
TSR3: SETB FLAG1 ;標志位置1,證明DS18b20存在
CLR P1.7
MOV R0,#117
TSR6: DJNZ R0,$
TSR7: SETB DATAIN
RET ;延時254us
GET_TEMPER:
SETB DATAIN
LCALL INIT_1820
JB FLAG1,TSS2
NOP
RET ;DS18B20檢測程序
TSS2: MOV A,#0CCH ;跳過ROM,使用存儲器
LCALL WRITE_1820
MOV A,#44H ;對RAM操作,開始溫度轉換
LCALL WRITE_1820
ACALL DISP1
LCALL INIT_1820
MOV A,#0CCH
LCALL WRITE_1820
MOV A,#0BEH
LCALL WRITE_1820
LCALL READ_1820;讀暫存器中的溫度數值
RET
WRITE_1820:
MOV R2,#8
CLR C
WR1: CLR DATAIN
MOV R3,#6
DJNZ R3,$
RRC A
MOV DATAIN,C
MOV R3,#23
DJNZ R3,$
SETB DATAIN
NOP
DJNZ R2,WR1
SETB DATAIN
RET
READ_1820:
MOV R4,#2
MOV R1,#29H
RE00: MOV R2,#8
RE01: CLR C
SETB DATAIN
NOP
NOP
CLR DATAIN
NOP
NOP
NOP
SETB DATAIN
MOV R3,#9
RE10: DJNZ R3,RE10
MOV C,DATAIN
MOV R3,#23
RE20: DJNZ R3,RE20
RRC A
DJNZ R2,RE01
MOV @R1,A
DEC R1
DJNZ R4,RE00
RET
CVTTMP: MOV A,TMPH
ANL A,#80H ;判斷溫度正負,正不變,負則取反加1
JZ TMPC1
CLR C
MOV A,TMP1
CPL A
ADD A,#1
MOV TMP1,A
MOV A,TMPH
CPL A
ADDC A,#0
MOV TMPH,A
MOV 73H,#0BH
SJMP TMPC11
TMPC1: MOV 73H,#0AH
TMPC11: MOV A,TMP1
ANL A,#0FH
MOV DPTR,#TMPTAB
MOVC A,@A+DPTR
MOV 70H,A
MOV A,TMP1
ANL A,#0FH
SWAP A
ORL A,TMPL
B2BCD: MOV B,#100
DIV AB
JZ B2BCD1
MOV 73H,A
B2BCD: MOV A,#10
XCH A,B
DIV AB
MOV 72H,A
MOV 71H,B
TMPC12: NOP
DISBCD: MOV A,73H
ANL A,#0FH
CJNE A,#1,DISBCD0
SJMP DISBCD1
DISBCD0: MOV A,72H
ANL A,#0FH
JNZ DISBCD1
MOV A,73H
MOV 72H,A
MOV 73H,#0AH
DISBCD1: RET
TMPTAB: DB 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9
DISP1: MOV R1,#70H
MOV R0,#74H
MOV R5,#0FEH ;顯示實際溫度
PLAY: MOV P1,#0FFH
MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
MOV P1,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R5
JB ACC.1,LOOP1
JB P1.7
CLR P1.7
CLR P0.7 ;顯示小數點
LOOP1: LCALL DL1MS
INC R1
INC R0
MOV A,R5
JNB ACC.3,ENDOUT
RL A
MOV R5,A
MOV A,73H
CJNE A,#1,DD2
SJMP LEDH
DD2: MOV A,72H
CJNE A,72H,DDH
SJMP DD1
DDH: JNE PLAY1
LEDH: CLR P3.6
SJMP PLAY
PLAY1: SETB P3.6
SJMP PLAY
ENDOUT: MOV P1,#0FFH
MOV P2,#0FFH
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H,0FFH,0BFH
DL1MS: MOV R6,#14H
DL1: MOV R7,#100
DJNZ R7,$
DJNZ R6,DL1
RET
ZINT0: PUSH A
INC 75H
MOV A,,75H
CJNE A,#10,ZINT01
MOV 75H,#0
ZINT01: POP A
RETI
ZINTT1: PUSH A
INC 76H
MOV A,76H
CJNE A,#10,ZINT11
MOV 76H,#0
ZINT11: POP A
RETI
Ⅶ hl004手上有塊單片機,絲印hl004,還寫著ARM,想知道是什麼單片機,哪個廠家的,請大神幫忙!
新唐的MINI54ZDE(hl004)
Mini51為Cortex-M0 32位微控制器系列,其特點為寬電壓工作范圍 2.5V至 5.5V與-40℃ ~ 105℃工作溫度、內建22.1184 MHz 高精度RC晶振(±1%精確度,25℃ 5V)、並內建Data Flash、欠壓檢測、豐富外設、整合多種串列傳輸介面、高抗干擾能力(8KV ESD/4KV EFT)、支持在線系統更新(ISP)、在線電路更新(ICP)與在線應用程序更新(IAP),提供封裝有TSSOP20、QFN33(4mm*4mm與5mm*5mm)與LQFP48。
Ⅷ 單片機對講機原理
方案一 以單片機為核心處理器的DMR對講機方案(MSP430F149+AMBE1000)
1.工作原理
發射時,由麥克送來的模擬語音經CSP1027進行A/D轉換,由聲碼器AMBE1000進行語音壓縮,交單片機MSP430F149進行協議填充組幀,送到CC1101進行調制後發射。接收時,由CC1101解調出來的碼流經MSP430F149進行幀恢復,交由聲碼器進行解壓,數據經CSP1027進行D/A轉換為模擬語音信號。
2.關鍵器件
微控制器採用TI公司的MSP430F149,它是16位超低功耗、混合信號微控制器,採用「馮·諾依曼」結構,可用JTAG(一種標准測試介面)進行模擬調試。
晶元的電源電壓為(1.8~3.6)V,在RAM數據保持方式下耗電僅0.1uA,活動模式耗電250 uA/MIPS(每秒百萬條指令數)。運算時由於本單片機採用16位RISC(精簡指令集計算機),一個時鍾周期可以執行一條指令,而傳統的單片機要12個時鍾周期才執行一條指令。工作在8MHz的晶振頻率時,指令速度可達8MIPS,而同樣這個指令速度,16位處理器比8位處理器高遠不止兩倍。
概述
聲碼器AMBE1000在國內已有產品,價格比較合理。CC1101的靈敏度為-116dBm(1.2kbps,1%數據包誤碼率,工作在433MHz時),與國內的對講機可用靈敏度-120dBm相比偏低,但符合歐盟的CE標准規定小於-107dBm.另外,射頻模塊的功率輸出僅12dBm(16mW),所以本方案僅適用短距離范圍的通信。提高靈敏度可考慮用器件ADF7021作為射頻模塊。
方案二 以DSP+MCU為核心處理器的對講機方案
1.工作原理
方案以MSP430為中心系統來完成數據的收、發控制等工作,系統採用MSP430中 USART模塊的SPI同步通信模式。在接收過程中,首先接收來自射頻晶元的FSK數據,解調後由MSP430將數據幀的同步域、尾域、ID域以及命令位元組去除後,數據發至C5402進行去壓縮處理,數據交AIC23進行D/A轉換為語音信號。在發送過程中,首先由AIC23進行A/D轉換,數據交C5402將語音壓縮,再由微控制器MSP430進行協議填充,加上頭域、尾域、ID域以及命令位元組形成數據幀,然後控制射頻模塊將數據發送。
2.關鍵器件
TMS320C5402是TI公司於1996年推出的一種定點DSP晶元,採用先進的修正哈佛結構和8匯流排結構,使處理器的性能大大提高。其獨立的程序和數據匯流排允許同時訪問程序存儲器和數據存儲器,實現高速並行操作。如,可以在一條指令中同時執行3次讀操作和1次寫操作。TMS320C5402的運行速度為40MIPS,指令周期為25ns.此外,還可以在數據匯流排與程序匯流排之間相互傳送數據。從而使處理器具有單個周期內同時執行算術運算、邏輯運算、位移操作、乘法累加運算以及訪問程序、數據存儲等強大功能。
概述
採用DSP方案時,免去選用語音晶元聲碼器的煩惱,提高了數字對講機對語音處理的能力,可讓語音編碼的演算法盡量優化,從而使對講機語音信號的處理更具通用性和擴展性。本方案是以DSP為開發平台,經過連續可變斜率增量(CVSD)調制編解碼得到語音信號的清晰度和自然度好,但軟體開發工作量大。CC1000不支持4FSK調制與解調,本方案不適用於DMR與dPMR協議。另外CC1000的接收可用靈敏度為-110dBm,國內對講機廠家可能嫌低。
方案三 以單片機為核心處理器的dPMR對講機方案(CMX618+CMX7141)
1.工作原理
發射時,麥克送來的模擬語音經CMX618內部進行增益調節,A/D轉換和壓縮處理,然後通過SPI(串列外圍設備介面)進入CMX7141基帶處理器,在微控制器LPC2138的控制和管理下經CMX7141晶元內部進行信道編碼,dPMR協議棧打包,數字濾波以及4FSK調制,調制編碼後的語音數據經CMX7141晶元的MOD1/2管腳分別輸出給外部的發射VCO和壓控溫補參考時鍾,經兩點調制輸出射頻載波給發射功放,並到天線輸出。
接收時,CMX7141對基於超外差射頻接收模塊送來的4FSK解調信號在微控制器LPC2138的控制和管理下進行4FSK解調,dPMR拆包,信道解碼,最終得到語音編碼數據,經SPI串口送給CMX618進行語音解壓縮並恢復語音信號。
2.關鍵器件
語音編解碼片CMX618是CML微電子(新加坡)私人有限公司的產品,晶元由音頻壓縮/解壓器、RALCWI編解碼器、前向糾錯編解碼器和其他特殊功能模塊幾部分組成。
RALCWI是一種魯棒的先進的復雜性波形插入技術,與其他語音編解碼技術不同,它使用獨有的信號分解和參數編碼方法,可確保在較高的壓縮率下有較好的語音質量。
在聲碼器中,採用RALCWI技術實現的語音質量與編碼速率在4kbps以上的標准聲碼器話音質量相當。
概述
本方案優點是開發時的靈活性高,模擬與數字可雙模設計,且同一個硬體開發平台能滿足不同的數字對講機標准,支持多種語音聲碼器,射頻的接收靈敏度可做得較高達到-118dBm(誤碼率為1%時)。發射功率0.5W,功率容易提升。
缺點是前期的軟體開發成本高並有一定難度,射頻模塊ATB010隻支持dPMR的EN301,166標准,不支持DMR.
方案四 以MCU+DSP的DMR對講機方案(MSP430FG4619+VC5510)
1.工作原理
發射時,由麥克送來的模擬語音經模數轉換器AD73311采樣成數字信號,AMBE2000對語音數字信號進行壓縮編碼,數字信號由VC5510進行DMR通信協議填充組成幀信號和4FSK的調頻波成形,最後由微控制器MCU進行D/A轉換,送往射頻模塊進行發射調制,實現發射。
接收時,MCU將射頻模塊送來已解調數據進行A/D轉換,經VC5510進行拆幀,交AMBE2000進行解壓,數據由AD73311數模轉換為語音信號。
微控制器MSP430FG4619是整個系統的控制中心,人機介面如鍵盤、顯示器與MCU直接連接。微控制器實現對射頻模塊的控制,包括基帶信號的發送與接收、射頻頻率點的控制、信道檢測等,MCU還負責DMR協議的高層信令控制、人機介面的互通等。
另外,請注意微控制器還要完成基帶信號的AD/DA轉換功能。
2.關鍵器件
AMBE2000TM聲碼器是美國語音公司DVSI推出的一款適應性強、高性能、單晶元的語音壓縮編解碼器。它能在低速率下提供優良的語音質量,並實現了實時的、全雙工的標准設定的AMBE語音壓縮軟體演算法。
大量的評估顯示,這款聲碼器具有在一般數據速率下提供同數字蜂窩系統一樣性能的能力。AMBE在2.4kbps速率下保持自然語音質量和清晰度,由於AMBE演算法復雜性低,所以它能夠完全集成在成本低、功耗低的晶元上。
概述
方案簡單,實用。
軟體開發中,微控制器和數字處理器的程序對DMR協議的分層必須有清晰的概念,正確的程序設計是硬體實現的保證。聲碼器的選用有較大的餘地。
方案五 以ARM+DSP的DMR對講機方案
1.工作原理
發射時,由麥克送來的話音信號由數模轉換器AD73311進行采樣,數據由聲碼器進行壓縮,OMAP5910內的DSP與ARM對壓縮的數據進行協議添加與控制,形成4FSK波形,數模轉換器AIC23將4FSK數字波形模擬化後進行射頻調制,調頻載波由天線發射。
接收時,射頻模塊對接收的模擬信號進行解調,模擬信號交AIC23進行數字化處理,OMAP5910對接收到的數據進行信道解碼和拆幀,幀信號交聲碼器進行解壓,數據由AD73311還原為模擬語音信號。
2.關鍵器件
OMAP5910是一款嵌入式雙核處理器,它集成了高性能的ARM925、TMS320C55x DSP核和已經得到的廣泛應用的各種介面與外設,具有較強的處理能力、較低的功耗和較高的信價比。ARM處理器內核用於DMR協議的處理與系統控制,DSP內核用於完成數字信號的實時處理。
OMAP5910及其設計套件具有多個目標應用市場,提供多媒體功能、改善人機界面並延長電池壽命。
概述
從技術上講,雙核處理器方案與前面介紹的DSP+MCU相比,可以降低系統體積,減少電路的復雜性,對通信協議能作較好的兼容,升級空間大。聲碼器的應用有可選國產晶元的餘地。
缺點是前期的軟體開發工作量大,ARM與DSP間的協調工作要深入研究,以免浪費處理器的資源。此外,由於OMAP的功能十分強大,該平台還可以有更多的應用,如加入視頻、娛樂等功能。
方案六
1.工作原理
發射時,麥克送來的模擬語音經WM8758B進行A/D轉換,送到SCT3252進行壓縮處理,經SCT3252進行dPMR協議處理後送到WM8758B的D/A轉換單元調製成4FSK信號,經兩點調制輸出射頻載波給發射功放,送天線輸出。
接收時,WM8758B對射頻模擬信號進行A/D轉換,送到SCT3252進行4FSK解調,dPMR拆包,信道解碼,最終得到語音編碼數據,經解碼處理後把語音數據送到WM8758B進行D/A轉換,經由外部放大電路送入喇叭還原成話音。
2.關鍵器件
SCT3252是上海士康公司生產的語音編解碼及dPMR協議棧處理晶元。具有較好的語音質量及較高的接收靈敏度(可達-126dBm)。
概述
本方案的特點是語音編解碼及dPMR協議棧都集成在SCT3252中,大大減少了控制單元MCU的工作量,另外SCT3252為LQFP100封裝,焊接方便。整個方案簡單,軟體升級的空間大。本方案可以實現數模兼容,通過開關可方便進行數字與模擬通信之間的切換。
WM8758B只起模數轉換作用,廠家認為,把它集成進SCT3252是指日可待的事。
Ⅸ C語言轉匯編語言(把下面的C語言轉成單片機匯編語言)
org 0000h
sjmp main
_mDelay:
; SOURCE LINE # 9
;---- Variable 'Delay?040' assigned to Register 'R6/R7' ----
; { unsigned int i;
; SOURCE LINE # 10
; for(;Delay>0;Delay--)
; SOURCE LINE # 11
?C0001:
SETB C
MOV A,R7
SUBB A,#00H
MOV A,R6
SUBB A,#00H
JC ?C0007
; {for(i=0;i<10000;i++);}//200ms
; SOURCE LINE # 12
;---- Variable 'i?041' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0004:
INC R5
CJNE R5,#00H,?C0013
INC R4
?C0013:
CJNE R4,#027H,?C0004
CJNE R5,#010H,?C0004
?C0003:
MOV A,R7
DEC R7
JNZ ?C0001
DEC R6
?C0014:
SJMP ?C0001
; }
; SOURCE LINE # 13
?C0007:
RET
; END OF _mDelay
; void main()
main:
USING 0
; SOURCE LINE # 14
; {
; SOURCE LINE # 15
?C0008:
; unsigned int x;
; while(1) /*while語句,後面括弧里1,表示無終止執行循環語句*/
; SOURCE LINE # 17
; {
; SOURCE LINE # 18
; P1=0xFF;//P1口作為輸入口省. /*把0xFF這個數賦值給P1這個變數*/
; SOURCE LINE # 19
MOV P1,#0FFH
; x=P1&&0x0F; /*P1&&0x0F的運算結果是1,再把1賦值給x */
; SOURCE LINE # 20
MOV A,P1
MOV R6,#00H
JZ ?C0010
MOV R7,#01H
SJMP ?C0011
?C0010:
MOV R7,#00H
?C0011:
;---- Variable 'x?142' assigned to Register 'R2/R3' ----
MOV R3,AR7
MOV R2,AR6
; P1=0x00; /*把0賦值給P1,這時P1的值就變成0啦*/
; SOURCE LINE # 21
CLR A
MOV P1,A
; //P0=0xFF;//P0口的特殊之處就是需要先初始化然後再讀入正確的值
; P1_7=1; /*電磁閥2開啟*/
; SOURCE LINE # 23
SETB P1^7
; P1_6=0; /*電磁閥1關閉*/
; SOURCE LINE # 24
CLR P1^6
; mDelay(x+1); /*調用mDelay這個函數,相當於把這邊括弧里的x+1代入到上面mDelay函數里的Delay變數*/
; SOURCE LINE # 25
MOV A,R3
ADD A,#01H
MOV R7,A
CLR A
ADDC A,R2
MOV R6,A
LCALL _mDelay
; P1_7=0; /*電磁閥2關閉*/
; SOURCE LINE # 26
CLR P1^7
; mDelay(16-x); /*又一次調用mDelay函數*/
; SOURCE LINE # 27
CLR C
MOV A,#010H
SUBB A,R3
MOV R7,A
CLR A
SUBB A,R2
MOV R6,A
LCALL _mDelay
; P1_6=1; /*電磁閥1開啟*/
; SOURCE LINE # 28
SETB P1^6
; mDelay(16); /*再一次調用mDelay函數*/
; SOURCE LINE # 29
MOV R7,#010H
MOV R6,#00H
LCALL _mDelay
; P1_7=1; /*電磁閥2開啟*/
; SOURCE LINE # 30
SETB P1^7
; P1_6=0; /*電磁閥1關閉*/
; SOURCE LINE # 31
CLR P1^6
; }
; SOURCE LINE # 32
SJMP ?C0008
; END OF main
END
Ⅹ 大學生創新項目選什麼單片機好呢
建議你選STC"S"系列單片機。這款單片機是51內核的單片。外面出的資料相當多了,有相當多的實例和經驗可以採用。
它們的編譯環境可以直接使用Keil C51來編譯。如果你對Keil C比較熟悉的話。編譯這塊也沒有問題了。
至於你說筆記本電腦不能下載程序。主要是筆記本沒有並口的關系。這個問題不是最大。你可以買帶USB介面的下載線下載程序。STC"S"系列單片機可以支持ISP(在線燒錄晶元)。所以你可以購買一個廉價的下載線來下載程序。不必購買昂貴的編程器來燒錄晶元了。記住買個帶USB介面的下載線就行了。(當然也有帶USB介面的編程器)。
你的採集感測器過來的信號的話,要找帶模數轉換的A/D的單片機。這樣可以省電外部的A/D轉換晶元。節約成本。
而且STC單片機還有一個好處就是它的I/O口驅動能力比較強。可以直接驅動某些東西。而無需外部驅動電路。另外就是它有內部RC振盪功能。可以省掉外接晶振的麻煩。(如果你系統時序要求不是很高的話,建議你使用內部RC振盪。如果時序要求很高的話,只能使用外部的石英晶振了。)
你打算用Atmega128??個人建議你考慮一下成本的等關系。因為Mega128是TQFP64封裝的晶元。你到時侯開發系統的話畫塊板子嗎?這個晶元的I/O口很多。我不知道你的系統是不是也要求有這么強大的功能。再說了,就算你用AVR單片機。我個人建議你採用Atmega16的比較好。用DIP40封裝的晶元。做實驗方便多了。而且AVR單片機資料最多的是Atmega16.市場上的書比較多。而且這款晶元比較容易買到。你不是沒有USB介面下載線嗎?個人建議你不要買什麼最小系統板了。你去買幾個晶元(Atmega16晶元零買的話大概10幾塊錢一個)買幾個洞洞板。在買一個USB介面的下載線就能做實驗了。這樣總成本不超過200塊錢。先做實驗熟悉它的結構再說。如果非要用Mega128的話。也請先搞懂AVR的指令系統和結構再說。AVR單片機是一款增強性的RISC結構的單片機,指令比較多。盡管一般來說AVR單片機都是用C語言寫程序的。但是基本的指令系統還是要了解的。如果你對AVR有興趣的話,可以加一下我的QQ我們詳談。qq:373884636