




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 設計題目2 設計任務和設計要求3 總體方案論證與選擇(設計23個可以實現設計要求的總體方案,簡要說明各方案的工作原理和優缺點,簡要說明被選中方案的特點)。畫出系統組成方框圖。4 各單元電路設計(各單元電路圖設計,簡述單元電路工作原理,電路參數和元件參數的計算,元器件的選擇)。5 程序流程圖。6 評價自己的設計是否滿足設計要求?總結所設計電路的特點與不足,提出改進意見。設計過程中的體會、收獲和建議。7 參考文獻:作者、文獻名稱、出版單位和出版時間。8 附錄:.總電原理圖(需標注元件編號和元件的主要特征參數)。.元器件表(包括序號、元件編號、元件名稱、元件型號與規格、元件數量及必要說明)。.源
2、程序清單。六.主要參考書單片機原理與接口技術 李朝青 北京航空航天大學出版社單片機原理與應用 李建忠 西安電子科技大學出版社智能儀器原理,設計及調試 季建華等 華東理工大學出版社單片機應用系統設計應用 何立民主編 北京航空航天大學出版社 智能化儀器原理及應用 曹建平 西安電子科技大學出版社 智能儀器原理與設計 趙新民 哈爾濱工業大學出版社智能儀器原理及應用 趙茂泰 電子工業出版社現代科學儀器 中國分析測試協會主辦自動化儀表 中國儀器儀表學會 上海工業自動化儀表研究所主辦儀器儀表學報 中國儀器儀表學會主辦儀器儀表網 (http:/www.china_)儀器商城網 (http:/)附錄:各個題目的
3、功能要求與技術指標1.智能型溫度測量儀的設計功能要求配合電阻溫度傳感器,實現溫度的測量;具有開機自檢、自動調零功能;具有克服隨機誤差的數字濾波功能;. 使用220V/50Hz交流電源,設置電源開關、電源指示燈和電源保護功能。主要技術指標測量溫度范圍:0200或(-50150)測量誤差:1%顯示方式:4位LED數碼管顯示被測溫度值。4.4.1 智能型溫度測量儀的設計要求一 功能要求1 配合電阻溫度傳感器(或集成T/I(或T/U)變換器),實現溫度的測量;2 具有開機自檢、自動調零功能;3 具有克服隨機誤差的數字濾波功能;4(可以預置溫度上限、下限,超限時聲、光報警);5 使用220V/50Hz交
4、流電源,設置電源開關、電源指示燈和電源保護功能。二 主要技術指標1 測量溫度范圍:0200(或-50+150)2 測量誤差:1%(最大引用誤差)3 分辨率:0.14 顯示方式:4位LED數碼管顯示被測溫度值。注意:()中的內容是與智能儀器課程設計指導書要求不同的。4.4.2 總體方案論證與選擇A 從功能要求看,系統功能并不復雜,MCS-51單片機完全可以勝任主機的角色;B 從測溫范圍看,熱電阻傳感器或集成T/I(或T/U)變換器均可滿足要求;C 從分辨率看,普通運放和11位以上的A/D轉換器可以滿足精度要求;分辨率=0.1/(150-(-50)=1/2000D 由于溫度變化緩慢,采用雙積分型A
5、/D轉換器,不需要采樣保持器;也可選用片內帶有12位A/D轉換器的單片機。這樣,系統組成方案的雛形已經建立。二 方案集成T/I變換器I/U變換器濾波器A/D轉換器單片機(鍵盤、顯示器)以上兩個方案的主要區別是選用的傳感器不同,兩種傳感器都具有測量精度較高的特點。熱電阻傳感器測溫范圍更寬,但需要非線性校正;集成電路溫度傳感器測溫范圍較窄,但線性很好,不需要非線性校正,軟、硬件設計較簡單。當測溫范圍和精度滿足設計要求時,應首選集成T/I變換器。本設計采用方案2。三 軟、硬件分工: 1 硬件:T/I變換、I/U變換、濾波、A/D轉換、標度變換等功能由硬件實現。2 軟件:自檢、故障報警控制、自動調零、
6、數字濾波、按鍵識別、顯示譯碼等功能由軟件實現。4.4.3硬件電路設計(以方案2為例)一 單片機的選擇:從性能、功能、仿真調試器的普及程度等各方面考慮,MCS-51系列單片機是一個很好的選擇。初選應用廣泛的AT89C51單片機。二 A/D轉換器1 分辨率:溫度分辨率要求為1/2000,須采用11位的A/D轉換器。2 誤差:系統誤差要求1%,考慮到傳感器、放大電路增益、A/D轉換器、直流基準電壓等都會產生誤差,一般選A/D轉換器的誤差應(1/51/10)系統誤差,故至少應選擇910位(0.1%)精度的。兩者相比以要求較高的為準。3 轉換速度:由于溫度變化緩慢,對A/D轉換器轉換速度無特殊要求。4
7、選擇芯片:可考慮選擇轉換速度較慢、精度較高、抗干擾性能較好、價格低廉的雙積分型A/D轉換器,常用的芯片有MC14433(3位半-單極性輸入時相當于11位)和ICL7135(4位半-單極性輸入時相當于15位)。這兩種A/D轉換器的模擬輸入電壓范圍均為:UI=±2V。MC14433已經完全可以滿足精度要求,選之。直流基準電壓由MC1403提供。智能型溫度測量儀的設計一 試驗目的通過智能型溫度測量儀的設計,了解智能型模擬量測量儀器設計的一般方法。二 功能要求1 配合電阻溫度傳感器(或集成T/I(或T/U)變換器),實現溫度的測量;2 具有開機自檢、自動調零功能;3 具有克服隨機誤差的數字濾
8、波功能;4 使用220V/50Hz交流電源,設置電源開關、電源指示燈和電源保護功能。三 主要技術指標1 測量溫度范圍:0200(或-50+150)2 測量誤差:1%(最大引用誤差)3 分辨率:0.14 顯示方式:4位LED數碼管顯示被測溫度值。總體方案論證與選擇A 從功能要求看,系統功能并不復雜,MCS-51單片機完全可以勝任主機的角色;B 從測溫范圍看,熱電阻傳感器或集成T/I(或T/U)變換器均可滿足要求;C 從分辨率看,普通運放和11位以上的A/D轉換器可以滿足精度要求;分辨率=0.1/(150-(-50)=1/2000D 由于溫度變化緩慢,采用雙積分型A/D轉換器,不需要采樣保持器;也
9、可選用片內帶有12位A/D轉換器的單片機。一 方案:集成T/I變換器I/U變換器濾波器A/D轉換器單片機(鍵盤、顯示器)特點:集成電路溫度傳感器測溫范圍較窄,但線性很好,不需要非線性校正,軟、硬件設計較簡單。當測溫范圍和精度滿足設計要求時,應首選集成T/I變換器。二 軟、硬件分工:1 硬件:T/I變換、I/U變換、濾波、A/D轉換、標度變換等功能由硬件實現。2 軟件:自檢、故障報警控制、自動調零、數字濾波、按鍵識別、顯示譯碼等功能由軟件實現。硬件電路設計一 單片機的選擇:從性能、功能、仿真調試器的普及程度等各方面考慮,MCS-51系列單片機是一個很好的選擇。初選應用廣泛的AT89C51單片機。
10、二 A/D轉換器1 分辨率:溫度分辨率要求為1/2000,須采用11位的A/D轉換器。2 誤差:系統誤差要求1%,考慮到傳感器、放大電路增益、A/D轉換器、直流基準電壓等都會產生誤差,一般選A/D轉換器的誤差應(1/51/10)系統誤差,故至少應選擇910位(0.1%)精度的。兩者相比以要求較高的為準。3 轉換速度:由于溫度變化緩慢,對A/D轉換器轉換速度無特殊要求。4 選擇芯片:可考慮選擇轉換速度較慢、精度較高、抗干擾性能較好、價格低廉的雙積分型A/D轉換器,常用的芯片有MC14433(3位半-單極性輸入時相當于11位)和ICL7135(4位半-單極性輸入時相當于15位)。這兩種A/D轉換器
11、的模擬輸入電壓范圍均為:UI=±2V。MC14433已經完全可以滿足精度要求,選之。直流基準電壓由MC1403提供。三 傳感器、I/U變換、濾波、標度變換電路1 傳感器:精密集成T/I變換器AD590的各項性能指標均能滿足設計要求。2 I/U變換、濾波、標度變換電路:為簡化硬件電路結構,I/U變換、濾波、標度變換電路由一個運放A實現,附圖4-2所示。 I/U變換器:反相比例放大電路實現了I/U變換。 標度變換:由MC1403提供的2.5V基準電壓與RP1、R1共同產生237.15A的電流I2,由運放A對傳感器輸出電流I1和I2實現加法放大運算,使輸出電壓為:UO=I3(R2+RP2)
12、=(I1-I2)(R2+RP2)=(I1-273.15)×(R2+RP2)=10(I1-273.15)(mV/)當t=0時,I1=273.15A,UO=0V,經A/D轉換,D=0當t=-50時,I1=223.15A,UO=-500mV,經A/D轉換,D=-500當t=150時,I1=423.15A,UO=1500mV,經A/D轉換,D=1500可見,D/10(小數點左移一位),即得測量溫度值,從而實現了標度變換。 濾波器:若測溫現場干擾較嚴重,可考慮使用硬件濾波器,由于被測溫度變化很緩慢,可考慮采用由運放構成截止頻率很低的有源低通濾波器,在反饋電阻兩端并聯一個電容,即可實現一階低通濾
13、波,取其截止頻率fH=15Hz,則C2為C2=1/2fH(R2+RP2)=1/(2×3.14×15×10×103)1.06FC2選用1F/50V的CBB電容。四 鍵盤、顯示電路設計1 顯示:為4位LED數碼顯示器;為少占用I/O口,采用軟件譯碼動態掃描顯示。小數點固定在十位,正號不顯示,負號由百位的“g”字段顯示。2 鍵盤:本設計不需要鍵盤。如果增加輸入預置溫度上、下限,可選兩種鍵盤方案: 功能鍵+“+”“-”鍵。按鍵數量少,占用口線少,編程較方便。 功能鍵+數碼鍵。按鍵數量多,占用口線多,輸入數據快捷方便,編程較繁。 鍵功能分配:設置4個按鍵,設功能鍵
14、1個,每按下1次,K1狀態計數器加1,使用“+”、“-”依次逐位預置上限溫度百位、十位、個位和下限溫度百位、十位、個位,預置完畢后,K1狀態回0,為簡化鍵處理程序設計,預置上、下限溫度范圍限制為-59+159,而非-50+150。另設預置溫度查詢鍵1個,測溫時可查詢預置的上、下限溫度,各鍵功能分配見所下表所示。K1K4狀態功能表K1態按鍵2DH.4F0顯示操作0K10/1*測溫值關A/D中斷,K1狀態+1,清預置寄存器,關預置錯誤報警,顯示“0滅滅.H”/“0滅滅.L”,0K2、K3*無效0K4*每按1次K4,依次顯示“XYZ.H”“XYZ.L”“測溫值”13K4*無效1K2000滅滅.H百位
15、數字加11K2001滅滅.H無效1K3000滅滅.H無效1K3001滅滅.H百位數字減11K100X滅滅.HK1狀態+1,顯示“X0滅.H”2K2000Y滅.HY=9時無效,Y9時Y+12K2001Y滅.HY=5時無效,Y5時Y+12K201-Y滅.HY-1,當Y-1=0時置F0=0,顯示“00滅.H”2K3001Y滅.HY0,Y-1;Y=0,無效2K3000Y滅.HY0,Y-1;Y=0,置F0=1,顯負號,Y+12K301-Y滅.HY=5時無效,Y5時Y+12K10*XY滅.HK1狀態+1,顯示“XY0.H”3K200XYZ.HZ=9時無效,Z9時Z+13K201-YZ.HZ=0時無效,Z0
16、時Z-13K300XYZ.HZ=0時無效,Z0時Z-13K301-YZ.HZ=9時無效,Z9時Z+13K10*XYZ.H上限變補碼保存,若-49上限150,上限預置成功,2DH.4=1,K1回狀態1,否則上限預置錯誤,開報警,顯示“E4”, K1回0態,按K1重新預置。1K2100滅滅.L百位數字加11K2101滅滅.L無效1K3100滅滅.L無效1K3101滅滅.L百位數字減12K2100Y滅.LY=9時無效,Y9時Y+12K2101Y滅.LY=5時無效,Y5時Y+12K211-Y滅.LY-1,當Y-1=0時置F0=0,顯示“00滅.L”2K3101Y滅.LY0,Y-1;Y=0,無效2K31
17、00Y滅.LY0,Y-1;Y=0,置F0=1,顯負號,Y+12K311-Y滅.LY=5時無效,Y5時Y+12K11*XY滅.LK1狀態+1,顯示“XY0.L”3K210XYZ.LZ=9時無效,Z9時Z+13K211-YZ.LZ=0時無效,Z0時Z-13K310XYZ.LZ=0時無效,Z0時Z-13K311-YZ.LZ=9時無效,Z9時Z+13K11*XYZ.L下限變補碼保存,若-50下限上限,預置成功,2DH.4=0,開A/D中斷,K1回0態。否則預置錯誤,開報警,顯示“E5”,K1回狀態0,按K1重新預置。表中XYZ為預置的上限和下限溫度值,2DH.4=0置上限溫度、2DH.4=1置下限溫度
18、,F0=0預置溫度為正,F0=1預置溫度為負。五 報警電路面板上設置紅色LED報警燈一只,機內設蜂鳴器一只,開機自檢有故障時、測溫值超過預置的上限和下限溫度時、預置的溫度不滿足-49上限溫度150和-50下限溫度上限溫度時,發出聲光報警信號。六 I/O口分配用途說明P0.0P0.7顯示段碼輸出經74LS07同相驅動接ag,dpP1.0P1.7接A/D轉換數據輸出P2.0P2.3顯示位選信號輸出經74LS06反相驅動接個位千位P2.4接超溫/故障報警燈、蜂鳴器高電平有效P2.6接電子開關K5控制端“0”調零/“1”-自檢、測溫P2.7接電子開關K6控制端“0”自檢/“1”-測溫P3.2()接A/
19、D轉換結束信號EOC中斷方式,邊沿觸發方式P3.4P3.7接K1K4鍵一鍵一線,查詢方式,低電平有效至此可以畫出硬件電原理圖。參見附圖4-2、4-5和4-6所示。軟件設計一 時鐘頻率的確定1 單片機時鐘頻率fosc:單片機的時鐘頻率越高,運算速度越快;但耗電量增加、抗干擾能力變差。本設計是測溫系統,對測量速度要求不高也無串行通信功能,對時鐘無特殊要求,初選fosc=6MHz。2 A/D轉換時鐘頻率fCP:正向積分時間應是干擾信號周期的整倍數,考慮到抗50Hz工頻干擾,取正向積分時間為60 mS 則TCP=60000S/4000=15S ,fCP=1/TCP=1/15S66.7kHz。查RCfC
20、P曲線得:RC=470k。完成一次A/D轉換所需時間T016400×TCP=16400×15×10-6=0.246S,即每秒完成4次A/D轉換。二 算法1 數字濾波與自動調零:考慮到MC14433是雙積分型A/D轉換器,對隨即干擾具有較好的平滑濾波作用且轉換速度較慢,零漂值和測量值均采用簡單的平均值濾波法,取N=4,即,測量結果。為簡化計算,將計算公式變為:,即先求和,再去零漂,最后取平均。2 數據類型:在計算機中,凡是帶符號數一律用補碼表示,其運算結果也是用補碼表示。A/D轉換器MC14433的轉換結果為BCD碼,讀入到RAM中以壓縮BCD碼存放。無論自檢、測量
21、或,為便于帶符號數的加、減法、除法和比較大小的運算,先將雙字節壓縮BCD碼轉換為雙字節二進制數并求其補碼,再進行求和運算求出和,進而用上述算法求出并求其原碼,將其轉換為BCD碼后送顯緩區。3 全部數據均為定點數,顯示時小數點的位置也固定。三 監控程序設計1 RAM地址分配:見RAM附表所示。約定:多字節定點數存放在RAM中地址連續的單元中時,地址小的單元存放數據的高字節。2 系統初始化參數及控制字(P1)=0FFH,置P1口為輸入口(P2)=00H,關顯示器,關報警燈和蜂鳴器(P3)=0FFH,置P3口為輸入口附表 RAM地址分配表地址用途說明0組工作寄存器R1、R4、R5顯示器自檢子程序,R
22、0、R2 ROM、RAM自檢子程序,R1、R3通道自檢子程序,R0、R2、R6、R7顯示子程序1組工作寄存器A/D轉換中斷服務,BCD碼變二進制、二進制變BCD碼、二進制數求補碼子程序,雙字節二進制補碼比較大小子程序2組工作寄存器K1K4鍵處理子程序,R7功能鍵K1狀態計數器,R6查詢鍵K4狀態計數器,R4R6預置上、下限溫度計數器百位個位,BCD碼20H21H存放A/D轉換結果,壓縮BCD碼,符號存F0,變換為二進制補碼22H23H存放4次A/D值的和、去零漂、取平均求測溫值的補碼24H25H保存預置溫度BCD碼,符號暫存F0,轉換為二進制、求補碼26H27H存放測溫值,壓縮BCD碼2CH顯
23、示字段碼暫存2FH32H顯示緩沖區,BCD碼,千位個位33H34H存放4次測零漂的和,二進制補碼35H37H保存預置上溫度,百位個位,BCD碼,符號在35H最高位38H3AH保存預置下溫度,百位個位,BCD碼,符號在38H最高位3BH3CH預置上限溫度值,二進制補碼3DH3EH預置下限溫度值,二進制補碼3FH40H允許預置的上限溫度最大值,二進制補碼41H42H允許預置的上限溫度最小值,二進制補碼43H44H允許預置的下限溫度最小值,二進制補碼45H中斷次數計數器46H定時測零漂計數器60H7FH堆棧F0暫存A/D和預置上、下限溫度的符號位,“0”正/“1”負2DH.02DH.0=1ROM有故
24、障2DH.12DH.1=1RAM有故障2DH.22DH.2=1輸入通道有故障2DH.32DH.3=1開機自檢有故障2DH.4置上、下限標志,2DH.4=0置上限溫度,2DH.4=1置下限溫度2DH.52DH.5=1,超測溫上限2DH.62DH.6=1,超測溫下限2DH.7測零漂/自檢、測溫標志,“1”測零漂/“0”自檢、測溫(SP)=5FH,堆棧底設為60H(IP)=01H,設為高級中斷IT0=1,設外部中斷0為邊沿觸發方式(IE)=00H,禁止所有中斷請求(IE)=81H,僅允許中斷請求(17H)=00H,清零功能鍵K1狀態計數器2組R7(16H)=00H,清零查詢鍵K4狀態計數器2組R63
25、 主程序流程圖:本程序主要考慮各個模塊功能的劃分與銜接。主程序主要實現開機自檢、系統初始化、自檢故障和超量限報警、掃描顯示器和鍵盤等操作,故障標志2DH.3的設置與清除由自檢子程序完成,而將A/D轉換結果的讀取、數據處理、過載標志的設置與清除、結果送入顯示緩沖區等操作由A/D中斷服務程序實現,程序流程圖如附圖4-7所示,應是一個有始無終的程序。源程序如下。源程序:1、 主程序 ORG 0000H LJMP ZCX00 ;首先運行主程序 ORG 0003H LJMP INT00 ; 中斷向量 ORG 0030H ;主程序ZCX00:MOV P2,#40H ;關報警、關顯示MOV P3,#0FFH
26、 ;P3設為輸入口MOV SP,#5FH ;設堆棧底為60HMOV IP,#01H ; 為高級中斷SETB IT0 ; 為邊沿觸發CLR A MOV IE,A ;禁止所有中斷請求 MOV 16H,A ;置查詢鍵為初始狀態 MOV 17H,A ;置功能鍵為初始狀態 MOV 20H,A MOV 22H,A MOV 23H,A MOV 2DH,A ;置故障、超限等標志為初始狀態MOV 33H,A ;清零4次測零漂的和 MOV 34H,AMOV 45H,#4 ;置中斷計數器初值 MOV 46H,#240 ;置定時測零漂計數器初值 ACALL TDIS0 ;調顯示器自檢子程序ZCX01:ACALL TR
27、OM0 ;調ROM自檢子程序 ACALL TRAM0 ;調RAM自檢子程序 ACALL TSRZJ ;調輸入通道自檢子程序 ACALL DIS00 ;調顯示子程序JB 2DH.0,ERR01 ;自檢故障判斷 JB 2DH.1,ERR02 JB 2DH.2,ERR03 CLR 2DH.3 ;清故障標志 CLR P2.4 ;關故障報警 CLR P2.5SJMP ZCX02ERR01:MOV 32H,#01H ;置個位顯示“1” SJMP ERR04ERR02:MOV 32H,#02H ;置個位顯示“2”SJMP ERR04ERR03:MOV 32H,#03H ;置個位顯示“3”ERR04:MOV
28、31H,#0EH ;置十位顯示“E”MOV 30H,#0CH ;置百位顯示“熄滅”MOV 2FH,#0CH ;置千位顯示“熄滅”SETB 2DH.3 ;置開機自檢故障標志SETB P2.4 ;開故障報警SETB P2.5SJMP ZCX01 ;重新自檢ZCX02:MOV SP,#5FH ;系統初始化 SETB P2.7 ;通道開關置測溫狀態ZCX03:ACALL DIS00 ;調顯示子程序JNB P3.4,ZCX0A ;有鍵按下,轉鍵處理JNB P3.5,ZCX0AJNB P3.6,ZCX0AJNB P3.7,ZCX0AZCX04:JB 2DH.5,ZCX05 ;超上限,超上限報警 JB 2D
29、H.6,ZCX06 ;超下限,超下限報警 JB 2EH.0,ZCX07 ;轉A/D過載報警CLR P2.4 ; ;關超限報警CLR P2.5SJMP ZCX03ZCX05:MOV R5,#0AH ;顯示“HHHH” SJMP ZCX08ZCX06:MOV R5,#0BH ;顯示“LLLL” SJMP ZCX08ZCX07:MOV R5,#0FH ;顯示“.”ZCX08:MOV R4,#4MOV R0,2FHZCX09:MOV A,R5 MOV R0,A INC R0 DJNZ R4,ZCX09SETB P2.4 ;開超限報警 SETB P2.5 SJMP ZCX03ZCX0A:A
30、CALL KEY00 SJMP ZCX042、 顯示器自檢子程序 ORG 0100HTDIS0:MOV R4,#3 ;循環3次TDIS1:MOV R1,#2FH ;置顯緩區首址(最高位)MOV R5,#4 ;置顯緩區為全亮TDIS2:MOV R1,#0FHINC R1DJNZ R5,TDIS2SETB P2.4 ;點亮報警燈SETB P2.5 ;打開蜂鳴器MOV R5,#125 ;字段全亮約0.5STDIS3:ACALL DIS00 DJNZ R5,TDIS3MOV R1,#2FH ;置顯緩區首址MOV R5,#4 ;置顯緩區為全滅TDIS4:MOV R1,#0CHINC R1DJNZ R5,
31、TDIS4CLR P2.4 ;熄滅報警燈CLR P2.5 ;關閉蜂鳴器MOV R5,#125 ;全熄滅約0.5STDIS5:ACALL DIS00 DJNZ R5,TDIS5 DJNZ R4,TDIS13、 開機自檢若發現故障,建立相應故障標志后返回,若無故障,清除故障標志后返回。輸入通道自檢時A/D轉換器的輸入電壓約為1V,轉換后送到顯示緩沖區的數據應為1000,考慮到各種誤差,該數字量為9501050即視為輸入通道正常,檢測顯緩區數據的正常與否,還可檢測軟件運算部分是否正常。開機自檢程序:(1) ROM自檢子程序 ORG 0160HTROM0:MOV DPTR,#0FFFH ;data1為
32、程序的結束地址 PUSH DPH ;程序的結束地址進棧 PUSH DPL MOV DPTR,#0000H ;0000H為程序的起始地址 MOV B , #0TROM1:CLR A MOVC A,A+DPTR ;讀ROM XRL B,A ;異或運算結果存B POP ACC ;結束地址低8位出棧 MOV R2,A CJNE A,DPL,TROM3 ;當前地址低8位結束地址低8位,轉移至TROM3 POP ACC ;結束地址高8位出棧 CJNE A,DPH,TROM2 ;當前地址高8位結束地址高8位,轉移至TROM2 AJMP TROM4 ;ROM中程序代碼全部讀出并求異或和,轉移至TROM4TRO
33、M2:PUSH ACC ;結束地址高8位進棧 MOV A,R2TROM3:PUSH ACC ;data1低8位進棧 INC DPTR ;當前地址加1 AJMP TROM1 ;繼續異或和運算TROM4:MOV DPTR,#data2 ;指向校驗和地址 CLR A MOVC A,A+DPTR ;讀代碼校驗和 XRL A,B ;A、B相等時,(A)=0 JNZ TROM5 ;(A)0,ROM故障CLR 2DH.0 ;清故障標志 RETTROM5:SETB 2DH.0 ;置故障標志 RET(2)RAM自檢子程序TRAM0:MOV SP,#7FHMOV R0,#7FH ;置初始地址指針TRAM1:MOV
34、 R0,#55H MOV A,R0 CJNE A,#55H,TRAM2 MOV R0,#0AAH MOV A,R0 CJNE A,#0AAH,TRAM2 DJNZ R0,TRAM1 ;未檢完,繼續 CLR 2DH.1 ;清故障標志 RETTRAM2:SETB 2DH.1 ;置故障標志 MOV SP,#5FH ;恢復棧指針RET(2) 輸入通道自檢子程序TSRZJ:SETB P2.6 ;置為自檢狀態 CLR P2.7CLR 2DH.7 ;置自檢標志MOV IE,#81H ;開中斷MOV R3,#250TSR00:LCALL DISOO ;延時1sDJNZ R3,TSR00MOV R1,#30H
35、;指向顯緩百位JB 2FH.0,TSR04CJNE R1,#09H,TSR03INC R1CJNE R1,#05H,TSR02TSR01:CLR 2DH.2 ;清故障標志RETTSR02:JNB CY,TSR01TSR03:SETB 2DH.2 ;置故障標志 RETTSR04:CJNE R1,#00H,TSR03 INC R1CJNE R1,#05H,TSR05 SJMP TSR03TSR05:JB CY,TSR01 SJMP TSR034、 顯示流程該程序是典型的軟件譯碼動態掃描顯示程序,可參考單片機原理與應用方面的教材,本程序添加上了符號顯示和小數點定點顯示。在這里有幾點需注意,第一,由于
36、在顯緩區中千位與符號存放在同一個字節,查表前需屏蔽掉符號位,否則當符號位是1時(負),將造成查表錯誤;第二,由于千位使用的是普通數碼管,當千位是“-0”時,按正常軟件譯碼時會顯示“8”,所以當千位是“-0”時需要單獨處理,僅讓代表負號的g段亮;第三,測溫時小數點dp應在的十位,查出某位的段碼后還需要判斷該位是否是應加dp的位,處理后才能將段碼送段碼口。顯示子程序源程序:ORG 0230HDIS00:MOV R0,#2FH ;置顯緩區首址 MOV R2,#08H ;送起始字位碼DIS01:CLR A ;關顯示器 MOV P0,AMOV A,R0 ;取顯示數字 ANL A,#0FH ;屏蔽高4位
37、MOV DPTR,#TAB01 MOVC A,A+DPTR ;查表取自段碼 CJNE R2,#08H,DIS03 ;是千位嗎? JB 2FH.0,DIS02 ;千位是1轉加符號 CLR A ;千位是0將其消隱DIS02:MOV C,2FH.4 ;取符號位 MOV ACC.6,C ;字段碼加符號DIS03:MOV 2CH,A ;字段碼暫存 MOV A,R2 ;取字位碼CJNE A,#02H,DIS04 ;不是十位轉送段碼SETB 2CH.7 ;是十位,加小數點DIS04:MOV P0,2CH ;字段碼送字段口 MOV A,P2 ;取P2.7P2.4 ANL A,#0F0H ORL A,R2 MO
38、V P2,A ;字位碼和送字位口 ACALL DL001 ;延時1mS增亮 MOV A,R2 JB ACC.0,DIS05 ;查驗4位顯示器是否顯示一遍 RR A ;修改字位碼 MOV R2,A INC R0 ;指向顯示緩沖區下一個單元 SJMP DIS01 ;繼續顯示下一位DIS05:RETTAB01:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(09)DB 76H,38H,00H,40H,79H,FFH(A-“H”,B-“L”,C-“全滅”,D-“-”,E,F-“全亮”)DL001:MOV R7,#02H ;1mS延時子程序(fosc=6MHz時)D
39、L002:MOV R6,#0FFH DJNZ R6,$ DJNZ R7,DL002 RET5、 鍵處理流程R7為功能鍵K1的狀態計數器,每按1次K1(R7)+1。上限預置范圍-49+150,預置下限溫度必須小于上限溫度,預置錯誤需重新預置。鍵處理子程序流程圖如附圖4-11所示。K1K4鍵處理子程序流程圖分別如附圖4-12附圖4-15所示。鍵處理子程序:ORG 02B0HKEY00:LCALL DIS00 ;延時12ms LCALL DIS00 LCALL DIS00JNB P3.4,KEY10 ;轉K1鍵處理JNB P3.5,KEY20 ;轉K2鍵處理JNB P3.6,KEY30 ;轉K3鍵處
40、理JNB P3.7,KEY40 ;轉K4鍵處理KEYX1:RET ;無鍵按下,返回KEY10:MOV IE,#00H ;K1鍵功能程序KEY11:JB P3.4,KEY12 ;K1釋放轉鍵處理 ACALL DIS00 ;未釋放延時再測 SJMP KEY11KEY12:PUSH PSW PUSH A MOV PSW,#10H ;R0R7換為2組KEY13:INC R7 ;K1狀態計數 CJNE R7,#01H,KEY15 CLR F0 ;準備預置百位溫度 CLR A MOV R4,A MOV R5,A MOV R6,A CLR P2.4 ;關報警CLR P2.5MOV 2FH,#00H ;千位顯
41、示“0”MOV 30H,#0CH ;百位顯示“滅” MOV 31H,#0CH ;十位顯示“滅.”JB 2DH.4,KEY14MOV 32H,#0AH ;個位顯示“H”AJMP KEY1DKEY14:MOV 32H,#0BH ;個位顯示“L” AJMP KEY1DKEY15:CJNE R7,#02H,KEY16 ;若不是預置十位溫度值,轉去K1下一狀態檢測 MOV 30H,#00H ;百位顯示“0”,準備預置十位溫度值AJMP KEY1DKEY16:CJNE R7,#03H,KEY17 ;若不是預置個位溫度值,轉去變壓縮BCD碼,變補碼MOV 31H,#00H ;顯緩區十位顯“0”,準備預置個位
42、溫度值 AJMP KEY1DKEY17:MOV A,R5 ;預置溫度變壓縮BCD碼,存24H25H SWAP A ORL A,R6 MOV 25H,A MOV 24H,R4 PUSH PSW MOV PSW,#08H ;1組為當前工作寄存器 MOV R3,25H MOV R2,24H ACALL BCDH0 ;調雙字節BCD-二進制轉換子程序 ACALL QBM00 ;調雙字節二進制求補碼子程序 MOV 25H,R3 MOV 24H,R2 JB 2DH.4,KEY18 ;轉去判斷預置下限溫度是否正確 MOV R0,#25H ;指向預置上限溫度低字節 MOV R1,#42H ;指向允許預置的上限
43、溫度最小值 ACALL BJDX0 JB ACC.7,KEY19 ;ACC.7=1時轉預置上限錯誤處理 MOV R0,#40H ;指向允許預置的上限溫度最大值 MOV R1,#25H ;指向預置上限溫度低字節 ACALL BJDX0 JB ACC.7,KEY19 MOV 3CH,25H ;預置上限溫度滿足-49上限150,存上限 MOV 3BH,24H MOV 37H,R6 ;保存預置上限溫度BCD碼 MOV 36H,R5 MOV 35H,R4 MOV C,F0 ;預置上限溫度符號送37H最高位 CLR A MOV ACC.7,C ORL A,35H MOV 35H,A SETB 2DH.4
44、;置預置下限溫度標志MOV R7,#00H AJMP KEY13KEY18:MOV R0,#25H ;指向預置下限溫度低字節 MOV R1,#44H ;指向允許預置的下限溫度最小值 ACALL BJDX0 JB ACC.7,KEY1A ;ACC.7=1時轉預置下限錯誤處理 MOV R0,#3CH ;指向預置上限溫度低字節 MOV R1,#25H ;指向預置下限溫度低字節 JB ACC.7,KEY1A ;ACC.7=1時轉預置下限錯誤處理 MOV 3EH,25H ;預置下限溫度滿足-50下限上限,存下限 MOV 3DH,24H MOV 3AH,R6 ;保存預置下限溫度BCD碼 MOV 39H,R
45、5 MOV 38H,R4 MOV C,F0 CLR A MOV ACC.7,C ORL A,38H MOV 38H,A POP PSW CLR 2DH.4 ;置預置下限溫度標志 MOV IE,#81H ;開中斷 SJMP KEY1CKEY19:MOV 32H,#04H ;顯示“滅滅E4”SJMP KEY1BKEY1A:MOV 32H,#05H ;顯示“滅滅E5”KEY1B:MOV 31H,#0EH MOV 30H,#0CHMOV 2FH,#0CHSETB P2.4 ;預置溫度錯誤報警 SETB P2.5KEY1C:MOV R7,#00HKEY1D:POP APOP PSWRETKEY20:JB P3.5,KEY21 ;K2鍵功能程序,K2釋放轉K2鍵處理 ACALL DIS00 ;K2未釋放,延時再檢測SJMP KEY20KEY21:PUSH PSW PUSH AMOV PSW,#
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 對口單招鉗工試題及答案
- 紡織品材料科學探索考試題及答案
- DB44-T 2334-2021 碳化復合竹編土工格柵應用技術規程
- 煙臺書記員試題及答案
- 紡織品認證標準的必要性試題及答案
- 掌握設計策略的方法國際商業美術設計師考試試題及答案
- 烈士回家面試題及答案
- 土建監理筆試題及答案解析
- 2024年紡織工程監理考題試題及答案
- 國際商業設計師設計策略與技巧試題及答案
- 湘西土家織錦工藝和圖案研究
- 以案說德發言四篇
- 大氣污染控制工程課后題答案解析
- 臨床試驗倫理委員會倫理審查不同意見溝通的標準操作規程
- 梅毒診療指南(2023年)
- 高中物理3-3熱學練習題(含答案)
- 白酒釀造工藝課件
- 關節鏡技術在骨科的應用
- DB32-T 3916-2020建筑地基基礎檢測規程-(高清現行)
- 2022年執業醫師證件租賃協議書
- 太上三官寶經(共12頁)
評論
0/150
提交評論