亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.asm

?? 加熱器的溫度控制
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;數字溫度控制顯示程序(誤差補償法) (CPU:89C2051 晶體:12MHz)
;作者:高宇
;2001、3、17

;主程序用工作寄存器:第0組
;定時測量工作寄存器:第1組
;顯示用工作寄存器:  第2組
;AT24C02讀寫工作寄存器:第3組

;注:在調試板中,加熱控制為P1.7,I2C器件開啟為P1.6,而在實際電路板中相反

MainRAM		SEGMENT DATA
MainMark	SEGMENT BIT

$NOLIST
$INCLUDE        (Lib.H)
$INCLUDE        (END.H)
$LIST

;*************************************************************

SetTimer	EQU	10	;數碼管閃爍頻率設置
SetWaitTimer	EQU	200	;設置加熱溫度時,鍵沒按下后等待返回溫度顯示的時間
SetChangSpeed1	EQU	20	;設定按住鍵盤后正常速度時增加或減少控制溫度的速度()
SetChangSpeed2	EQU	4	;設定按住鍵盤一段時間后快速增加或減少控制溫度的速度()
SetPushKeyMum	EQU	5	;同一鍵按住五個閃爍周期后加速控制溫度設定速度
SetDisplayBit	EQU	3	;設置顯示的位數

TempUpH		EQU	01H
TempUpL		EQU	2CH	;設定溫度上限為300度
TempDownH	EQU	00H
TempDownL	EQU	00H	;設定溫度下限為0度

SetCompKey	EQU	5	;連續讀5次,鍵值相同說明按下了一個鍵
UpKey		EQU	10H	;上鍵
DownKey		EQU	11H	;下鍵
SetKey		EQU	12H	;設定鍵
UnKey		EQU	55H	;無鍵

TempOffset	EQU	00H	;滯回比較溫度	;
;-------------------------------------------------------------
;DATA 20H
RSEG	MainMark

XSBJ:		DBIT	1	;數碼管顯示標記(0 不顯示  1 顯示)
FHBJ:		DBIT	1	;返回溫度顯示(0 不返回 1 返回)
ChangOk:	DBIT	1	;改變控制溫度允許與否標記(0 否 1 可)
DisplayStatu:	DBIT	1	;數碼管顯示狀態(0 不閃爍  1 閃爍)
SetTempChang:	DBIT	1	;上一步重新設定了控制溫度(1 重新設定  0 沒有)
ReadTempOK:	DBIT	1	;已經讀取了溫度
TempContr:	DBIT	1	;是否加熱標記

TestCon:	DBIT	1	;確定采樣基準值還是實際值
Timerout:	DBIT	1	;溫度測量時間溢出標志
;-------------------------------------------------------------
RSEG	MAINRAM

SetTempHBak1:	DS	1
SetTempLBak1:	DS	1	;設定溫度值存貯

VIH:		DS	1	;待測電壓整數部分
VIL:		DS	1	;待測電壓小數部分

VIHT:		DS	1	;待測電壓或基準電壓整數部分
VILT:		DS	1	;待測電壓或基準電壓小數部分


CLOCK:		DS	1	;檢測次數計數器
TOTALH:		DS	1	;臨時累加器高字節
TOTALM:		DS	1	;臨時累加器中字節
TOTALL:		DS	1	;臨時累加器低字節
DisPort:	DS	1	;動態顯示時應顯示的數碼管號
Mumber0:	DS	1	;第一個數碼管顯示數值
Mumber1:	DS	1	;第二個數碼管顯示數值
Mumber2:	DS	1	;第三個數碼管顯示數值

Timer:		DS	1	;時間基準(65ms)
Timer1:		DS	1	;時間基準(65ms)
Timer2:		DS	1	;時間基準(65ms)

KeyCount:	DS	1	;同一鍵按下計數
KeyCodeTemp:	DS	1	;鍵值緩存
KeyCode:	DS	1	;保存鍵值

SetTempH:	DS	1
SetTempL:	DS	1	;設定溫度值存貯
ChangSpeed:	DS	1	;控制溫度設定時速度
PushKeyMumber:	DS	1	;同一鍵一直按下次數
UpPushKeyCode:	DS	1	;上一次按鍵保存

BeforTempH:	DS	1
BeforTempL:	DS	1	;上一次溫度保存
TempH:          DS      1
TempL:          DS      1


SetTempHBak2:	DS	1
SetTempLBak2:	DS	1	;設定溫度值存貯

TempSub	:	DS	1	;保存實際溫度與控制溫度差值
ContrlMumber:	DS	1

Counter:	DS	1	;計數器
ProgramAddressT1:	DS	2;斷點地址保存

;-------------------------------------------------------------
TempOffsetH:	DS	1
TempOffsetL:	DS	1	;溫度誤差
;-------------------------------------------------------------
SetTempHE2PROM1	EQU	010H
SetTempLE2PROM1	EQU	011H

SetTempHE2PROM2	EQU	030H
SetTempLE2PROM2	EQU	031H

SetTempHE2PROM3	EQU	050H
SetTempLE2PROM3	EQU	051H	;設定好的控制溫度值保存地址及備份地址
;-------------------------------------------------------------


RC		BIT     P1.2	;92h ;RC充放電控制端口(低電平放電)
KeyPort		BIT	P1.2	;鍵輸入口

JUDE		BIT     P3.6	;0B6H;比較電壓判斷口

XM0		BIT	P1.5	;第三個數碼管控制口/設置鍵
XM1		BIT	P1.4	;第四個數碼管控制口/下鍵/采樣實際值
XM2		BIT	P1.3	;第五個數碼管控制口/上鍵/采樣基準值

TempContrPort	BIT	P1.6	;加熱控制(1 加熱  0 停止)
;*************************************************************
ISEG    AT      05FH
STACK:  DS      01EH
;分配堆棧



CSEG    AT      0000H
USING	0
;使用第0組寄存器
Start:
	LJMP    Main		;主程序
;-------------------------------------------------------------

CSEG    AT      0003H
	LJMP	Start

CSEG    AT      000BH
	LJMP    DINS		;T0:定時中斷子程序

CSEG    AT      0013H
	LJMP	Start

CSEG    AT      001BH
	LJMP    DINS1		;T1:定時中斷子程序

CSEG    AT      0023H
	LJMP	Start

;-------------------------------------------------------------
CSEG    AT      026H
Main:


	CLR	TempContr

	MOV     SP,#STACK-1
	;設置堆棧
	CLR	EA
 	MOV	R0,#20H
CLEAR:
	MOV	@R0,A		;清零片內單元
	INC	R0
	CJNE	R0,#5FH,CLEAR

	CLR	ReadTempOK

	MOV	DisPort,#00H	;顯示第1個數碼管
	MOV	KeyCode,#UnKey
	MOV	KeyCodeTemp,#UnKey

	CLR	EA
	MOV	TMOD,#11H	;定時器設置
	MOV	TH0,#0D8H	;約10mS檢測一次
	SETB	RC		;電容放電

	MOV	ContrlMumber,#00H
        MOV     VIH,#00H
        MOV     VIL,#00H
        MOV     TempH,#00H
        MOV     TempL,#00H   


	MOV	TempOffsetH , #00H
	MOV	TempOffsetL , #00H	;起始時設置測量誤差為0
	CLR	TestCon

	CLR	Timerout	;起始時溫度測量沒有溢出

MainEncrypt:
	LCALL	SetTemp		;啟動時顯示控制溫度

  	MOV	A,#00H
	LCALL	SetDisplayMode	;數碼管常亮
LOOP:
	SETB	EA
        
        JNB	ReadTempOK,LOOP00
	LCALL	CompTemp    
	
LOOP00:
        
	MOV	A , TempOffsetH
	ANL	A , #10000000B		;最高位表示誤差方向
	JZ	LOOP101
	CLR	C
	MOV	A , VIL
	SUBB	A , TempOffsetL
	MOV	R3 , A
	MOV	A , TempOffsetH
	ANL	A , #01111111B
	MOV	R2 , A
	MOV	A , VIH
	SUBB	A , R2
	MOV	R2 , A
	AJMP	LOOP102
LOOP101:
	MOV	A , VIL
	ADD	A , TempOffsetL
	MOV	R3 , A
	MOV	A , VIH
	ADDC	A , TempOffsetH
	MOV	R2 , A			;進行測量誤差修正
LOOP102:

	MOV	DPTR,#TempTab
	MOV	R1,#19
	LCALL	UNEX2
	CJNE	A,#0FFH,LOOP0
	MOV	R2,BeForTempH
	MOV	R3,BeForTempL
	SJMP	LOOP1		;溫度超限則顯示上一次的正常溫度

LOOP0:
	MOV	A,R4
	MOV	BeForTempH,A
	MOV	TempH,A        
	MOV	R2,A
	MOV	A,R5
	MOV	BeForTempL,A
        MOV     TempL,A
	MOV	R3,A
LOOP1:

        LCALL   IBTD2		;把數值轉換成BCD碼并存入顯示緩沖區中
	MOV	A,KeyCode
	CJNE	A,#UnKey,LOOP2
	LJMP	LOOP
LOOP2:
	CJNE	A,#SetKey,LOOP3
	LJMP	LOOP
LOOP3:
	LCALL	SetTemp		;若有鍵按下則進入溫度設置模塊
	LJMP	LOOP
	NOP
	NOP
;*************************************************************
CompTemp:
	MOV	A,SetTempL
	ADD	A,#01H
	MOV	SetTempLBak1,A
	MOV	A,SetTempH
	ADDC	A,#0H
	MOV	SetTempHBak1,A

	CLR	C
	MOV	A,TempL   
	SUBB	A,SetTempLBak1
	MOV	B,A
	MOV	A,TempH
	SUBB	A,SetTempHBak1
	JC	CompTemp5	
;溫度是否超過上限判斷,否則轉。
	MOV	A,B
	JNZ	CompTemp3
	SETB	TempContr
	MOV	TempSub,#21
	RET
CompTemp3:
	CLR	C
	MOV	A,TempL   
	SUBB	A,#low(310)
	MOV	A,TempH
	SUBB	A,#high(310)
	JNC	CompTemp31
;溫度是否超過300度判斷,否則轉。
	CLR	TempContr
;停止加熱
	RET
CompTemp31:
;溫度超過設定300度
	LJMP	ErrorDisplay	
CompTemp5:
	CLR	C
	MOV	A,SetTempLBak1
	SUBB	A,TempL
	MOV	B,A

	MOV	A,#160
	SUBB	A,B
	JNC	CompTemp6
	MOV	A,#00H
CompTemp6:
	CLR	C
	MOV	B,A
	SUBB	A,#150
	JNC	CompTemp7
	MOV	A,B
	MOV	B,#8
	DIV	AB
	SJMP	CompTemp8
CompTemp7:
;	ADD	A,#8
;	MOV	B,A
;	CLR	C
;	SUBB	A,#16
;	MOV	A,B
;	JNC	CompTemp8
	MOV	A,#18
CompTemp8:	
	MOV	TempSub,A
	SETB	TempContr
;否則處于加熱狀態
	RET

;*************************************************************

;設定控制溫度子程序
SetTemp:
	CLR	TR0
	CLR	ET0		;關閉溫度測量
        CLR     ET1
        CLR     TR1
        
	CLR	TempContrPort

	MOV	Timer1,#00H	;清返回主程序時間計數器
	CLR	FHBJ		;清可返回標記

	MOV	Timer2,#00H	;清控制溫度改變時間計數器
	MOV	ChangSpeed,#SetChangSpeed1
	SETB	ChangOk		;按住鍵后可改變控制溫度值

	MOV	PushKeyMumber,#00H


;------------------------------------------------------------
	LCALL	ReadSetTempDate	;讀取E2PROM中的設定溫度值

;------------------------------------------------------------
	MOV	A,#01H
	LCALL	SetDisplayMode	;數碼管閃爍


;-------------------------------------------------------------
SetTemp1:
	LCALL	ReadKey
	MOV	A,KeyCode

	CJNE	A,#UnKey,SetTemp10
;-------------------------------------------------------------
	MOV	Timer2,#00H	;清控制溫度改變時間計數器
	MOV	ChangSpeed,#SetChangSpeed1
	SETB	ChangOk		;按住鍵后可改變控制溫度值
	MOV	PushKeyMumber,#00H
	MOV	UpPushKeyCode,#UnKey
	LJMP	SetTemp3
;-------------------------------------------------------------
SetTemp10:					;有鍵盤按下
	JNB	ChangOk,SetTemp3
	CLR	ChangOk				;改變了控制溫度后不允許馬上再改變
						;等下次時間到后可再改變
	PUSH	ACC

	CJNE	A,UpPushKeyCode,SetTemp11	;為上鍵否
	INC	PushKeyMumber			;按鍵次數加1
	MOV	A,PushKeyMumber
	CJNE	A,#SetPushKeyMum,SetTemp12	;按住相同鍵的時已到指定時間否
	MOV	PushKeyMumber,#00H		;清按鍵時間
	MOV	ChangSpeed,#SetChangSpeed2	;加速控制溫度調整時間
SetTemp12:
	SJMP	SetTemp13
SetTemp11:
	MOV	UpPushKeyCode,A			;按了另外鍵
	MOV	PushKeyMumber,#00H
	MOV	ChangSpeed,#SetChangSpeed1	;重新判別按鍵時間
SetTemp13:
	POP	ACC
;------------------------------------------------------------
	CJNE	A,#UpKey,SetTemp2
	CLR	C
	MOV	A,SetTempL
	SUBB	A,#TempUpL
	MOV	A,SetTempH
	SUBB	A,#TempUpH
	JNC	SetTemp14	;設定溫度是否超過上限判斷

	MOV	A,SetTempL
	ADD	A,#01
	MOV	SetTempL,A
	MOV	A,SetTempH
	ADDC	A,#00H
	MOV	SetTempH,A
	SJMP	SetTemp3
SetTemp14:
	MOV	SetTempL,#TempDownL
	MOV	SetTempH,#TempDownH
        SJMP	SetTemp3


SetTemp2:
	CJNE	A,#DownKey,SetTemp3
	CLR	C
	MOV	A,#TempDownL
	SUBB	A,SetTempL
	MOV	A,#TempDownH
	SUBB	A,SetTempH
	JNC	SetTemp21	;設定溫度是否低于下限判斷

	CLR	C
	MOV	A,SetTempL
	SUBB	A,#01
	MOV	SetTempL,A
	MOV	A,SetTempH
	SUBB	A,#00H
	MOV	SetTempH,A
        SJMP	SetTemp3
SetTemp21:
	MOV	SetTempL,#TempUpL
	MOV	SetTempH,#TempUpH

SetTemp3:
	CJNE	A,#SetKey,SetTemp30
	SETB	FHBJ	
;------------------------------------------------------------
SetTemp30:

	MOV     R2,SetTempH
        MOV     R3,SetTempL
        LCALL   IBTD2		;把數值轉換成BCD碼并存入顯示緩沖區中
	LCALL	Display		;顯示數碼
	LCALL	Dealy

	JNB	FHBJ,SetTemp4	;沒到返回時間則繼續處于設定溫度狀態
;------------------------------------------------------------

        CLR     ET1
        CLR     TR1

	LCALL	WriterSetTempDate;控制溫度寫入E2PROM中

	SETB	TR0
	SETB	ET0

	MOV	ContrlMumber,#00H

	MOV	A,#00H
	LCALL	SetDisplayMode	;數碼管常亮
	RET

SetTemp4:
         LJMP   SetTemp1
	 NOP
	 NOP

;*************************************************************
;讀取設定溫度
ReadSetTempDate:
	LCALL	CloseDisplay
        MOV	Counter,#00H

	MOV	A,#SetTempHE2PROM1
	LCALL	ReadI2CDate
	MOV	SetTempH,A	;設定溫度值存貯


	MOV	A,#SetTempLE2PROM1
	LCALL	ReadI2CDate
	MOV	SetTempL,A	;設定溫度值存貯

	RET

ErrorDisplay:
	CLR	EA		;禁止中斷
	MOV	Mumber0,#0AH
	MOV	Mumber1,#0AH

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女久久久精品| 国产精品久久久久久久久搜平片| 亚洲三级理论片| 91蜜桃传媒精品久久久一区二区| 国产精品免费网站在线观看| 9i在线看片成人免费| 亚洲欧洲日韩综合一区二区| 色婷婷激情一区二区三区| 一区二区三区国产| 色婷婷亚洲婷婷| 天天综合日日夜夜精品| 日韩欧美中文字幕公布| 国产制服丝袜一区| 中文字幕在线免费不卡| 在线视频你懂得一区二区三区| 亚洲韩国精品一区| 日韩欧美一级二级| 懂色av一区二区三区蜜臀 | 亚洲成精国产精品女| 欧美疯狂做受xxxx富婆| 老司机精品视频在线| 国产欧美日韩另类视频免费观看| 91女神在线视频| 日本网站在线观看一区二区三区| 精品国一区二区三区| 成人高清免费在线播放| 亚洲高清在线视频| www国产亚洲精品久久麻豆| 99在线精品观看| 免费观看一级特黄欧美大片| 国产欧美一区二区三区在线看蜜臀 | 国产美女在线精品| 亚洲视频香蕉人妖| 欧美刺激午夜性久久久久久久| 成人短视频下载| 美女一区二区在线观看| 中文一区在线播放| 欧美妇女性影城| 97se亚洲国产综合自在线观| 狂野欧美性猛交blacked| 国产精品久久一级| 日韩一级完整毛片| 欧洲日韩一区二区三区| 粉嫩13p一区二区三区| 日本不卡在线视频| 亚洲精品少妇30p| 国产三级欧美三级| 91精品国产91久久久久久最新毛片| 不卡一区二区在线| 久久精品国产精品亚洲红杏| 亚洲一区av在线| 中文在线资源观看网站视频免费不卡 | 日韩精品电影在线观看| 自拍偷在线精品自拍偷无码专区 | 韩国成人在线视频| 亚洲午夜精品网| 国产精品久久久久久久久动漫| 日韩女优制服丝袜电影| 欧美裸体一区二区三区| www.亚洲色图.com| 成人中文字幕电影| 国产麻豆欧美日韩一区| 青青青伊人色综合久久| 亚洲午夜久久久久久久久电影院| 国产精品国产三级国产有无不卡| 久久久久久久久一| 精品久久久久久久久久久久久久久久久| 欧美性大战久久久久久久| 色综合天天性综合| 99精品欧美一区二区三区综合在线| 国产主播一区二区| 国产一区二区免费看| 精品一区二区三区的国产在线播放 | 欧美一区二区三区人| 欧美日本在线视频| 欧美猛男超大videosgay| 欧美亚洲国产bt| 欧美性生活大片视频| 91成人免费在线视频| 91色综合久久久久婷婷| 色哟哟一区二区在线观看| 色婷婷综合久久久久中文一区二区| 99精品国产99久久久久久白柏| eeuss鲁片一区二区三区在线观看| 成人性生交大片免费| 成人国产一区二区三区精品| 成人av电影在线| 色婷婷综合久久久久中文一区二区 | 亚洲国产一区视频| 日韩精品福利网| 久久精品国产秦先生| 韩国精品一区二区| 国产成人精品综合在线观看| 成人网在线免费视频| 91尤物视频在线观看| 欧美在线看片a免费观看| 欧美日韩国产不卡| 精品国产精品网麻豆系列| 久久久久亚洲综合| 亚洲日本韩国一区| 视频一区欧美精品| 国产美女精品人人做人人爽| 成人午夜私人影院| 日本精品一区二区三区高清| 777奇米成人网| 久久精品综合网| 亚洲精品成a人| 青娱乐精品在线视频| 国产69精品久久久久777| 99re视频这里只有精品| 欧美日韩视频第一区| 欧美大片一区二区三区| 中文字幕一区二区三区在线不卡| 亚洲一区二区在线观看视频| 久久精品国产亚洲a| 99精品视频一区二区| 日韩一区二区在线看| 一区视频在线播放| 欧美aaaaaa午夜精品| www.成人在线| 欧美一区二区日韩| 中文字幕色av一区二区三区| 男人的天堂久久精品| 91在线国产观看| 日韩视频在线你懂得| 亚洲精品中文字幕在线观看| 日韩和的一区二区| yourporn久久国产精品| 欧美一区二区三级| 一区二区三区av电影| 国产一区二三区| 欧美视频中文字幕| 中文字幕av一区二区三区高| 秋霞电影网一区二区| 色婷婷久久99综合精品jk白丝| 久久综合精品国产一区二区三区| 亚洲精品日韩一| 国产69精品久久久久777| 日韩一区二区在线看片| 亚洲综合久久久久| 成人avav影音| 国产三级欧美三级日产三级99| 人妖欧美一区二区| 欧美午夜精品久久久| 国产精品天天摸av网| 激情欧美一区二区| 91精品国产丝袜白色高跟鞋| 亚洲三级免费观看| 成人国产一区二区三区精品| 久久久www成人免费毛片麻豆| 丝袜亚洲另类丝袜在线| 欧美视频一区在线| 日韩美女视频一区二区 | www.色精品| 久久精品人人做| 国产综合久久久久影院| 日韩欧美在线网站| 日韩国产欧美视频| 欧美顶级少妇做爰| 亚洲国产精品影院| 欧美日韩在线三级| 亚洲综合色区另类av| 色婷婷亚洲一区二区三区| 日本一区二区成人| 成人国产精品免费观看动漫| 中文字幕精品一区二区三区精品| 国产精品1区2区| 亚洲国产精品精华液2区45| 国产成人免费视频精品含羞草妖精 | 韩国视频一区二区| 精品国产一区二区三区久久影院 | 欧美日韩国产电影| 午夜视频一区在线观看| 欧美艳星brazzers| 日日夜夜免费精品视频| 欧美蜜桃一区二区三区| 日韩激情视频在线观看| 日韩女同互慰一区二区| 久久国产精品99久久久久久老狼| 日韩精品影音先锋| 国产一区二区在线观看视频| 久久精品视频在线看| 成人午夜视频网站| 一区二区三区在线视频免费 | 秋霞电影一区二区| 精品盗摄一区二区三区| 粉嫩嫩av羞羞动漫久久久| 亚洲欧洲韩国日本视频| 欧洲视频一区二区| 奇米亚洲午夜久久精品| 久久香蕉国产线看观看99| 国产精品911| 亚洲精品视频免费看| 91.com在线观看| 国产在线一区二区综合免费视频| 欧美国产国产综合| 欧美视频一区二| 激情av综合网| 亚洲欧美成人一区二区三区| 欧美日本高清视频在线观看|