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

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

?? ds1302.asm

?? 用匯編語言編寫的數字溫度計ds1302; 在程序中用的是ch451的數碼管顯示溫度
?? ASM
字號:
;此程序用于ds1302驅動,但不包括da1302的RAM存儲的驅動,程序中用到ch451用于時間的顯示
;ch451的驅動完全拷貝ch451的驅動程序
;在程序編寫的時候子程序調用了另一個子程序的時候,注意變量的傳遞。
;作者:王均彬,2008年10月23日
;******************************端口設定************************************
CH451_DCLK	BIT	 	P1.5 ;串行數據時鐘,上升沿激活
CH451_DIN	BIT  	P1.6 ;串行數據輸出,接CH451的數據輸入
CH451_LOAD	BIT  	P1.7 ;串行命令加載,上升沿激活
CH451_DOUT	BIT  	P3.3 ;INT1,鍵盤中斷和鍵值數據輸入,接CH451的數據輸出
CH451_KEY	DATA  	30H  ;存放鍵盤中斷中讀取的鍵值
CH451_SI	EQU   	00H  ;有健標志位
T_CLK       Bit 	P1.2   ;實時時鐘時鐘線引腳
T_IO        Bit 	P1.1  ;實時時鐘數據線引腳
T_RST       Bit 	P1.3  ;實時時鐘復位線引腳
SECOND   	EQU		50H    ;秒寄存器
MINUTE   	EQU    	51H    ;分寄存器
HOUR    	EQU   	52H    ;時寄存器
DAY      	EQU   	53H    ;號寄存器
MONTH    	EQU    	54H    ;月寄存器
WEEK     	EQU    	55H    ;星期寄存器
YEAR     	EQU    	56H    ;年寄存器
;*******************************主程序*************************************
	 ORG   	00H				   
	 AJMP 	MAIN				   
	 ORG   	13H            ;鍵盤中斷向量(外部中斷1)
	 AJMP  	CH451_INTER
	 ORG   	30H					   
MAIN:SETB   IT1              ;置外部信號為下降沿觸發			
	 CLR   	IE1              ;清中斷標志
	 SETB  	EX1              ;允許鍵盤中斷
	 CLR 	EA			     ;關總中斷 	(此程序不使用鍵盤,但使用ch451的數碼管顯示時間)
;$$$$$$$$$$$$$$$CH451的初始化$$$$$$$$$$
   	CLR 	CH451_SI
	MOV 	CH451_KEY,#00H
	SETB  	CH451_LOAD
	SETB  	CH451_DCLK       ;置為默認的高電平
	SETB  	CH451_DIN	
	SETB  	CH451_DOUT   
	MOV   	B,#02H		   ;CH451內部復位
	MOV   	A,#01H
	CALL  	CH451_WRITE
	MOV  	B,#05H			  ;CH451顯示設置
	MOV  	A,#00H		   	  ;不譯碼方式,8位數據,最亮
	CALL 	CH451_WRITE	  ;發出命令
	MOV  	B,#04H          ;設置系統參數命令
	MOV  	A,#03H          ;低頻時鐘,禁止看門狗,使能鍵盤功能,使能顯示驅動
	CALL 	CH451_WRITE      
;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
		MOV 	SECOND,#00H		  ;時間初始值的設定(注意此程序只為驗證ds1302的驅動程序)
		MOV 	MINUTE,#25H
		MOV 	HOUR,#11H
		MOV		DAY,#23H
		MOV 	MONTH,#10H
		MOV 	WEEK,#03H
		MOV 	YEAR,#08H
		LCALL 	SET1302			   ;調用ds1302的設置程序
CLOCK:	LCALL 	Get1302			   ;讀取ds1302的時間(可用定時器定時顯示)
		MOV     P2,SECOND		   ;把秒數送p2口,用于顯示
		MOV 	A,52H			    
		ANL 	A,#0FH
		MOV 	R7,#09H
		ACALL 	CH451_WRITE_COUNT
		MOV 	A,52H
		ANL 	A,#10H
		RR		A
		RR		A
		RR		A
		RR		A
		MOV 	R7,#08H			   ;取小時的十位并送去顯示
		ACALL 	CH451_WRITE_COUNT
		MOV 	A,51H
		SWAP 	A					;取分鐘十位
		ANL 	A,#0FH
		MOV 	R7,#0BH
		ACALL 	CH451_WRITE_COUNT
		MOV 	A,51H
		ANL 	A,#0FH				;取分鐘個位
		MOV		R7,#0CH
		ACALL 	CH451_WRITE_COUNT
		MOV 	A,50H
		SWAP 	A
		ANL 	A,#0FH			    ;取秒個位
		MOV 	R7,#0EH
		ACALL 	CH451_WRITE_COUNT
		MOV 	A,50H
		ANL 	A,#0FH				;取秒鐘個位
		MOV 	R7,#0FH
		ACALL 	CH451_WRITE_COUNT
		AJMP 	CLOCK
;********************************向數碼管寫數據******************************************
;IN: R7,A
;OUT 無
;USE:A,B R7,DPTR,
;調用函數CH451_WRITE
CH451_WRITE_COUNT: MOV 		B,R7    ;加載字數據到DIG1對應的數據寄存器
				   MOV 		DPTR,#TAB1
				   MOVC 	A,@A+DPTR
				   ACALL 	CH451_WRITE
				   RET 
;******************************CH451寫入數據************************************************
;IN:A,B    待寫的12位數據, 低8位在A中, 高4位在B中
;OUT:無
; USE:   A, B, R7
CH451_WRITE:	CLR   EX1              ;禁止鍵盤中斷
				CLR   CH451_LOAD       ;串行數據加載線清零
				MOV   R7,#08H          ;r7為計數器,表示8個bit
CH451_WRITE_8:	RRC   A                ;低位在前,高位在后
				CLR   CH451_DCLK	   ;清時鐘線
				MOV   CH451_DIN,C      ;送出一位數據
				SETB  CH451_DCLK       ;產生時鐘上升沿通知CH451輸入位數據
				DJNZ  R7,CH451_WRITE_8 ;位數據未完繼續
				MOV   A,B			   ;把高4為送入a
				MOV   R7,#04H          ;4位數據
CH451_WRITE_4:	RRC   A                ;低位在前,高位在后
				CLR   CH451_DCLK	   ;清時鐘 
				MOV   CH451_DIN,C      ;送出一位數據
				SETB  CH451_DCLK       ;產生時鐘上升沿通知CH451輸入位數據
				DJNZ  R7,CH451_WRITE_4 ;位數據未完繼續
				SETB  CH451_LOAD       ;產生加載上升沿通知CH451處理命令數據
				SETB  EX1              ;允許鍵盤中斷
				RET
;******************************CH451鍵值讀出**************************************
; IN:無
; OUT:CH451_KEY,CH451_SIN
; USE:   A, R7
CH451_READ:		CLR   EX1              ;禁止鍵盤中斷
				CLR   CH451_LOAD       ;串行數據加載線清
				MOV   A,#07H           ;讀取鍵值命令的高4位0111B  低8為任意值
				MOV   R7,#04H          ;忽略12位命令的低8位
CH451_READ_4:	RRC   A                ;低位在前,高位在后
				CLR   CH451_DCLK	   ;清時鐘線
				MOV   CH451_DIN,C      ;送出一位數據
				SETB  CH451_DCLK       ;產生時鐘上升沿鎖通知CH451輸入位數據
				DJNZ  R7,CH451_READ_4  ;位數據未完繼續
				SETB  CH451_LOAD       ;產生加載上升沿通知CH451處理命令數據
				CLR   A                ;先清除鍵值單元以便移位
				MOV   R7,#07H          ;讀入7位鍵值
CH451_READ_7:	MOV   C,CH451_DOUT     ;讀入一位數據
				CLR   CH451_DCLK       ;產生時鐘下升沿通知CH451輸出下一位
				RLC   A                ;數據移入ACC,高位在前,低位在后
				SETB  CH451_DCLK
				DJNZ  R7,CH451_READ_7  ;位數據未完繼續
				MOV  CH451_KEY,A
				SETB CH451_SI
				CLR   IE1              ;清中斷標志,讀操作過程中有低電平脈沖
				SETB  EX1              ;允許鍵盤中斷
				RET
;***************************** 鍵盤中斷子程序**********************************
; IN:無
; OUT:CH451_KEY,CH451_SIN
;調用函數:CH451_READ
CH451_INTER:	PUSH  PSW              ;現場保護
				PUSH  ACC				
				ACALL CH451_READ	   ;調用讀鍵值程序
			  	POP   ACC			   ;恢復現場
				POP   PSW
				RETI               		;中斷返回
;**************************************設置1302*******************************************
;IN:無
;功 能:設置DS1302 初始時間,并啟動計時。
;調 用:RTInputByte
;OUT:無
;USE:b,a,r0,r7,r1
SET1302:CLR 	T_RST
		CLR 	T_CLK
		SETB 	T_RST
		MOV 	B, #8EH 				;控制寄存器地址
		ACALL 	DS1302_InputByte		;調用寫入程序
		MOV 	B, #00H   				;寫操作前WP=0,允許寫入寄存器
		ACALL 	DS1302_InputByte		;向DS1302寫命令	 
		SETB 	T_CLK
		CLR 	T_RST
		MOV 	R0, #Second
		MOV 	R7, #7H 				;秒 分 時 日 月 星期 年
		MOV 	R1, #80H				;秒寫地址
S13021:	CLR 	T_CLK
		SETB 	T_RST
		MOV 	B, R1 					;寫秒 分 時 日 月 星期 年 地址
		ACALL 	DS1302_InputByte
		MOV 	A, @R0 					;寫秒數據
		MOV 	B, A
		ACALL 	DS1302_InputByte
		INC 	R0
		INC 	R1						 ;地址調整
		INC 	R1
		SETB 	T_CLK
		CLR 	T_RST
		DJNZ 	R7, S13021
		CLR 	T_RST
		CLR 	T_CLK
		SETB 	T_RST
		MOV 	B, #91H 				;充電控制寄存器
		ACALL 	DS1302_InputByte
		MOV 	B, #0A4H 				;沒有電阻,一個二極管充電
		ACALL 	DS1302_InputByte
		CLR 	T_RST
		CLR 	T_CLK
		SETB 	T_RST
		MOV 	B, #8EH 				;控制寄存器
		ACALL 	DS1302_InputByte
		MOV 	B, #80H 				;控制寄存器,WP=1,寫保護
		ACALL 	DS1302_InputByte
		SETB 	T_CLK
		CLR 	T_RST
		RET
;***********************寫1302一字節***********************************
;IN:B
;OUT:無
;USE:r6,a,b
DS1302_InputByte:	MOV 	R6, #8H
					MOV 	A, B
Inbit1: 			RRC 	A				;低位在前
					MOV 	T_IO, C			;把數據加到數據線上
					SETB 	T_CLK			;上升沿輸入數據
					CLR 	T_CLK
					DJNZ 	R6, Inbit1
					RET
;**********************讀1302一字節************************************
;IN:無
;OUT:A
;USE A 	R5
DS1302_OutputByte:	MOV 	R5, #8H				;數據位數
Outbit1: 			MOV 	C, T_IO
					RRC 	A					;低位在前
					SETB 	T_CLK
					CLR 	T_CLK
					DJNZ 	R5, Outbit1
					RET
;********************讀取DS1302**************************************
;功 能:從DS1302 讀時間
;調 用:RTInputByte,RTOutputByte
;入口參數:無
;出口參數:時間保存在:Second,Minute,Hour,Day,Month,Week.YearL
;USE:A B R0 R1 R7
GET1302:	MOV 	R0, #Second
			MOV 	R7, #7H
			MOV 	R1, #81H 		;秒地址
G13021: 	CLR 	T_RST
			CLR 	T_CLK
			SETB 	T_RST
			MOV 	B, R1 			;秒 分 時 日 月 星期 年 地址
			LCALL 	DS1302_InputByte
			LCALL 	DS1302_OutputByte
			MOV 	@R0, A 			;把數據送入相應的存儲器
			INC 	R0
			INC 	R1				;地址調整
			INC 	R1
			SETB 	T_CLK
			CLR 	T_RST
			DJNZ 	R7, G13021
			RET
;*************************************************************************************************
TAB1:DB 00111111B,00000110B,01011011B,01001111B,01100110B,01101101B,01111101B,00000111B,01111111B,01101111B
TAB2:DB 01110111B,01111100B,01011000B,01011110B,01111001B,01110001B,01101111B,01110110B,00111000B,01110011B
;上為8段數碼管顯示的編碼0-F以及部分字符
END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三级| 亚洲视频一区二区在线观看| 久久一区二区三区国产精品| 亚洲欧美日韩国产综合| 久热成人在线视频| 欧美性生活久久| 日本一区二区三级电影在线观看| 日本怡春院一区二区| 色又黄又爽网站www久久| 久久综合久久久久88| 亚洲宅男天堂在线观看无病毒 | 日韩精品一区二区三区在线播放 | 久久精品国产99久久6| 91色porny蝌蚪| 中文字幕国产一区| 国产又粗又猛又爽又黄91精品| 欧美丰满少妇xxxbbb| 一区二区日韩av| 91玉足脚交白嫩脚丫在线播放| 国产欧美日韩精品一区| 久久国产精品99精品国产| 91麻豆精品国产91久久久久久 | 欧美激情在线看| 国产精品99久久久久久有的能看 | 另类小说欧美激情| 欧美巨大另类极品videosbest | 亚洲欧美激情插| 成人精品高清在线| 国产欧美综合色| 国产成人综合在线观看| 久久精品网站免费观看| 国产伦精品一区二区三区免费| 精品福利在线导航| 久久精品国产亚洲高清剧情介绍| 欧美日韩高清一区二区不卡 | 欧美综合一区二区三区| 一区二区三区色| 欧美视频完全免费看| 午夜精品aaa| 日韩午夜在线观看| 国产精品一二三四五| 中文字幕av一区二区三区高| 97精品久久久午夜一区二区三区 | 欧美精品一区二区蜜臀亚洲| 狠狠色丁香婷婷综合| 中文字幕免费观看一区| 91色.com| 日本最新不卡在线| 欧美国产精品劲爆| 在线观看亚洲a| 奇米亚洲午夜久久精品| 欧美精品一区二区三区视频| 不卡的看片网站| 亚洲一区二区三区四区五区中文| 91精品国产综合久久精品app| 激情综合色播激情啊| 亚洲欧洲日产国产综合网| 欧美中文字幕一区二区三区亚洲| 蜜臀av国产精品久久久久| 久久久久国产成人精品亚洲午夜| av中文字幕不卡| 美女精品一区二区| 国产精品国产三级国产aⅴ中文 | 91精品国产综合久久蜜臀| 久久99精品久久久久久国产越南 | 午夜国产不卡在线观看视频| 日韩精品一区二区三区四区视频| 国产aⅴ综合色| 亚洲第四色夜色| 中文字幕精品三区| 欧美精品久久天天躁| 成人精品电影在线观看| 色妞www精品视频| 肉色丝袜一区二区| 中文字幕在线不卡一区二区三区| 4438x亚洲最大成人网| 成人不卡免费av| 免费久久精品视频| 亚洲免费在线看| 久久影视一区二区| 91精品国产入口| 一本一道波多野结衣一区二区| 国产美女视频91| 日韩**一区毛片| 亚洲精品免费视频| 国产欧美日本一区二区三区| 欧美一区国产二区| 色屁屁一区二区| fc2成人免费人成在线观看播放 | 亚洲国产精品久久不卡毛片| 久久久精品欧美丰满| 欧美一区二区免费观在线| 91天堂素人约啪| 国产成人超碰人人澡人人澡| 久久激情五月激情| 日韩精品一级二级| 视频精品一区二区| 一区二区三区四区在线播放| 1区2区3区欧美| 国产精品私人自拍| 国产性色一区二区| 久久久久久久网| 久久亚洲精精品中文字幕早川悠里 | 日韩一区精品视频| 亚洲sss视频在线视频| 一区二区三区四区蜜桃 | 久久综合色综合88| 日韩欧美国产麻豆| 日韩一区二区精品在线观看| 欧美麻豆精品久久久久久| 欧美丝袜丝nylons| 欧美日韩国产片| 欧美日韩国产首页| 欧美一三区三区四区免费在线看| 欧美精品久久99久久在免费线 | 天堂久久久久va久久久久| 亚洲超丰满肉感bbw| 天堂资源在线中文精品| 丝袜亚洲另类欧美| 粉嫩13p一区二区三区| 国产成人精品免费| 99久久精品国产一区| 色婷婷一区二区| 欧美性三三影院| 91精品久久久久久久99蜜桃| 欧美成人一区二区三区在线观看| 久久综合色天天久久综合图片| 国产亚洲欧美日韩俺去了| 国产欧美一区二区在线观看| 国产精品美女一区二区三区| 亚洲免费观看高清| 日韩精品1区2区3区| 国内精品国产成人国产三级粉色| 国产成人免费在线| 91麻豆国产精品久久| 欧美日本在线观看| 久久综合国产精品| 自拍偷拍欧美激情| 日韩中文字幕一区二区三区| 久久精品国产亚洲5555| 粉嫩aⅴ一区二区三区四区| 91国偷自产一区二区开放时间| 欧美精选午夜久久久乱码6080| 欧美成人激情免费网| 国产精品美女久久久久久久久久久 | 高清国产午夜精品久久久久久| 北条麻妃一区二区三区| 欧美日韩三级在线| 久久精品无码一区二区三区| 一二三区精品视频| 欧美日韩三级在线| 精品国产污网站| 亚洲夂夂婷婷色拍ww47| 激情欧美一区二区| 欧美午夜精品久久久| 国产亚洲精品资源在线26u| 亚洲观看高清完整版在线观看| 国产主播一区二区| 欧美日韩久久久久久| 国产女主播视频一区二区| 亚洲成人自拍偷拍| www.色精品| 日韩免费观看高清完整版| 亚洲视频图片小说| 国内精品免费**视频| 欧美色爱综合网| 欧美国产一区二区在线观看| 日韩成人av影视| 91国模大尺度私拍在线视频| 久久亚洲二区三区| 日本视频在线一区| 在线精品视频免费观看| 国产精品水嫩水嫩| 韩国女主播一区| 日韩亚洲电影在线| 亚洲电影在线播放| 色呦呦网站一区| 中文字幕视频一区| 国产99久久久国产精品潘金 | 欧美日本高清视频在线观看| 国产精品久久久久永久免费观看| 精品在线观看免费| 91精品在线观看入口| 亚洲成人激情社区| 在线观看国产日韩| 亚洲欧美色图小说| 91美女蜜桃在线| 国产精品成人免费精品自在线观看| 国产高清不卡二三区| 26uuu亚洲| 国产一区二区精品久久99| 欧美大片顶级少妇| 乱一区二区av| 日韩欧美在线不卡| 欧美亚洲动漫精品| 亚洲蜜臀av乱码久久精品蜜桃| aaa国产一区| 亚洲欧洲精品一区二区三区| 91一区二区在线观看| 亚洲视频狠狠干|