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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vidu4-4.s

?? h&#432 &#7899 ng d&#7851 n v&#7873 dsp tham kh&#7843 o các c&#244 ng c&#7909 c&#417 b&#7843 n
?? S
字號:
;*******************************************************************************
;	Vidu4-4.s la chuong trinh viet bang hop ngu de chay tren mot dsPIC		   *
;	Chuong trinh thuc hien viec sau: Khoi tao RTC DS1307, sau do doc thong tin *
;	tu RTC bang module I2C, gui thong tin thoi gian ve may tinh thong qua	   *
;	cong RS232 (dung cac chan I/O thay the)									   *
;*******************************************************************************

;	Tac gia				: Nguyen Quang Nam									   *

;	Don vi				: PIC Viet Nam										   *

;	Ten tap tin			: Vidu4-4.s											   *

;	Ngay				: 17/08/2006										   *

;	Phien ban			: 0.01												   *

;	Nhung tap tin can thiet khac: p30F4012.gld, p30f4012.inc				   *

;	Cong cu duoc dung:	MPLAB 7.31											   *
;						ASM30 2.14											   *
;						LNK30 2.14											   *
;-------------------------------------------------------------------------------

;	.equ __30F2010, 1
;	.equ __30F2011, 1
;	.equ __30F2012, 1
;	.equ __30F3010, 1
;	.equ __30F3011, 1
;	.equ __30F3012, 1
;	.equ __30F3013, 1
;	.equ __30F3014, 1
;	.equ __30F4011, 1
	.equ __30F4012, 1
;	.equ __30F4013, 1
	.include "p30fxxxx.inc"

;	config	__FOSC, CSW_FSCM_OFF & HS
;	config	__FOSC, CSW_FSCM_OFF & HS2_PLL8
;	config	__FOSC, CSW_FSCM_OFF & HS2_PLL16
;	config	__FOSC, CSW_FSCM_OFF & FRC
	config	__FOSC, CSW_FSCM_OFF & FRC_PLL4
;	config	__FOSC, CSW_FSCM_OFF & FRC_PLL8
;	config	__FOSC, CSW_FSCM_OFF & XT_PLL8
;	config	__FOSC, CSW_FSCM_OFF & XT_PLL16
	config	__FWDT, WDT_OFF
	config	__FBORPOR, MCLR_EN & PBOR_OFF
	config	__FGS, CODE_PROT_OFF

;-------------------------------------------------------------------------------
;Cac hang so cua chuong trinh (gia tri tuc thoi dung trong chuong trinh)

	.equiv	Fcy, 8000000	;Tan so thuc thi lenh
	.equiv	I2Cbaud, 100000	;Toc do baud cua giao tiep I2C
	.equiv	RSbaud, 38400	;Toc do baud cua giao tiep RS232

;-------------------------------------------------------------------------------
;Cac khai bao toan cuc:

	.global __reset			;Khai bao nhan bat dau chuong trinh (bat buoc)
	.global __T1Interrupt	;Khai bao toan cuc chuong trinh xu ly ngat Timer 1

;-------------------------------------------------------------------------------
;Khai bao cac bien trong RAM
	.section	.bss
	.align	2			;Chinh dia chi theo boi so cua 2
count:	.space	2		;Khai bao bien 'count' kieu word (2 byte)
buff:	.space	16		;Bo dem cho du lieu I2C (16 byte)
str:	.space	16		;Bo dem xau ky tu de xuat ra cong RS232 (16 byte)
flag:	.space	2		;Thanh ghi chua co bao loi (bit0 = ACK/NACK khi ghi ra
						;bit1 = ACK/NACK khi doc vao)

;-------------------------------------------------------------------------------
;Doan ma trong vung nho chuong trinh

	.text				;Bat dau doan ma chuong trinh

__reset:       
		mov	#__SP_init, W15	;Khoi tao con tro ngan xep (stack)
		mov	#__SPLIM_init, W0
		mov	W0, SPLIM	;Khoi tao thanh ghi gioi han con tro ngan xep (stack)
		nop				;Can mot lenh NOP sau khi ghi vao SPLIM
		clr	W0			;Xoa thanh ghi lam viec W0
		mov	W0, W14 	;Xoa cac thanh ghi W1 den W14
		repeat	#12
		mov	W0,[++W14]	;Dia chi cua cac thanh ghi: 0x0002 - 0x001C
		clr	W14

;-------------------------------------------------------------------------------
		rcall	Init_PORTS		;Khoi tao cac cong I/O
		rcall	Init_I2C		;Khoi tao module I2C
		rcall	Init_UART1		;Khoi tao module UART1
		rcall	Init_TMR1		;Khoi tao Timer 1

;Tao du lieu cho message ghi
		mov	#buff, W1
		mov.b	#0xD0, W0
		mov.b	W0, [W1++]
		clr	W0
		repeat #2				;Dat dia chi thanh ghi bat dau = 0x00
		mov.b	W0, [W1++]		;va noi dung cua 2 o nho 0x00 va 0x01 la 0
		mov.b	#0x67, W0		;O nho 0x02 co gia tri 0x67
		mov.b	W0, [W1++]		;Che do 24h, dat gia tri la 7 pm
		mov.b	#0x01, W0		;O nho 0x03 co gia tri 0x01
		mov.b	W0, [W1++]		;Ngay dau tuan
		mov.b	#0x18, W0		;O nho 0x04 co gia tri 0x18
		mov.b	W0, [W1++]		;Ngay 18
		mov.b	#0x08, W0		;O nho 0x05 co gia tri 0x08
		mov.b	W0, [W1++]		;Thang 8
		mov.b	#0x06, W0		;O nho 0x06 co gia tri 0x06
		mov.b	W0, [W1++]		;Nam 06
		mov.b	#0x90, W0		;O nho 0x07 co gia tri 0x90
		mov.b	W0, [W1]		;Xung 1 Hz tai chan SQW/OUT

;Buoc 1, tao dieu kien START, cho hoat dong I2C hoan tat
		bset	I2CCON, #SEN	;Tao ra dieu kien START
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		mov	#10, W2				;So byte can ghi ra RTC
		mov	#buff, W1			;Lay dia chi bo dem du lieu I2C
		bclr	flag, #0		;Xoa co bao loi truoc khi ghi

write_1:
;Buoc 2, ghi cac byte can thiet, cho va kiem tra ACK
		mov.b	[W1++], W0		;Lay byte can ghi
		rcall	Write_I2C		;Ghi du lieu I2C
		btsc	flag, #0		;Neu ACK thi thuc hien tiep
		bra	I2CFail				;Neu NACK thi chuyen dieu khien den I2CFail
		dec	W2, W2				;Giam bien dem so byte can ghi
		bra	nz, write_1			;Tiep tuc ghi neu chua ghi xong
		
;Buoc 3, tao dieu kien STOP, cho hoat dong I2C hoan tat
		bset	I2CCON, #PEN	;Tao ra dieu kien STOP
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		mov	#11, W0
		mov	W0, count			;Dat gia tri cho bien dem (61 giay)
		bra	main_loop			;Moi thu deu tot, chuyen den vong lap chinh

I2CFail:
		bset	I2CCON, #PEN	;Tao ra dieu kien STOP
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		bclr	LATE, #0		;Bat LED noi vao RE0 de bao loi
		bra	$					;Chuong trinh dung tai day

main_loop:
		cp0	count
		bra	nz, main_loop		;Tiep tuc kiem tra neu count khac 0
		mov	#11, W0				;Count = 0, dat lai gia tri 
		mov	W0, count			;cho bien dem (61 giay)

;Doc thong tin thoi gian tu RTC
;Buoc 1, tao dieu kien START, cho hoat dong I2C hoan tat
		bset	I2CCON, #SEN	;Tao ra dieu kien START
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
;Buoc 2, ghi dia chi cua RTC, sap thao tac ghi vao RTC
		mov.b	#0xD0, W0		;Ghi dia chi cua RTC, chuan bi ghi vao RTC
		bclr	flag, #0		;Xoa co bao loi truoc khi ghi
		rcall	Write_I2C		;Ghi du lieu I2C
		btsc	flag, #0		;Neu ACK thi thuc hien tiep
		bra	I2CFail				;Neu NACK thi chuyen dieu khien den I2CFail
;Buoc 3, ghi dia chi cua thanh ghi sap thao tac
		clr	W0					;Ghi dia chi thanh ghi
		bclr	flag, #0		;Xoa co bao loi truoc khi ghi
		rcall	Write_I2C		;Ghi du lieu I2C
		btsc	flag, #0		;Neu ACK thi thuc hien tiep
		bra	I2CFail				;Neu NACK thi chuyen dieu khien den I2CFail
;Buoc 4, tao dieu kien RESTART, cho hoat dong I2C hoan tat
		bset	I2CCON, #RSEN	;Tao ra dieu kien RESTART
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
;Buoc 5, ghi dia chi cua RTC, sap thao tac doc tu RTC
		mov.b	#0xD1, W0		;Ghi dia chi cua RTC, chuan bi doc tu RTC
		bclr	flag, #0		;Xoa co bao loi truoc khi ghi
		rcall	Write_I2C		;Ghi du lieu I2C
		btsc	flag, #0		;Neu ACK thi thuc hien tiep
		bra	I2CFail				;Neu NACK thi chuyen dieu khien den I2CFail
		mov	#2, W2				;So byte can doc vao tu RTC (tru byte cuoi)
		mov	#str, W1			;Lay dia chi bo dem xau ky tu
read_1:
;Buoc 6, doc cac byte can thiet (tru byte cuoi cung), va ACK
		bclr	flag, #1		;Xoa bit 1 cua flag (tuc la ACK)
		rcall	Read_I2C		;Doc du lieu I2C
		mov	W0, W3				;Giu lai byte du lieu truoc khi thao tac
		and.b	#0x0F, W0		;Xoa 4 bit cao
		add.b	#'0', W0		;Chuyen so BCD thanh ky tu
		mov.b	W0, [W1++]		;Ghi vao bo dem xau ky tu
		swap.b	W3				;Hoan doi cac nibble trong byte da luu
		and.b	#0x0F, W3		;Xoa 4 bit cao
		add.b	#'0', W3		;Chuyen so BCD thanh ky tu
		mov.b	W3, [W1++]		;Ghi vao bo dem xau ky tu
		mov.b	#':', W0		;Them ky tu phan cach (giua giay va phut, hay
		mov.b	W0, [W1++]		;phut va gio), ghi vao bo dem xau ky tu
		dec	W2, W2				;Giam bien dem so byte can doc
		bra	nz, read_1			;Tiep tuc doc neu chua doc xong
;Buoc 7, doc byte cuoi cung, va NACK
		bset	flag, #1		;Dat bit 1 cua flag (tuc la NACK)
		rcall	Read_I2C		;Doc du lieu I2C
		mov	W0, W3				;Giu lai byte du lieu truoc khi thao tac
		and.b	#0x0F, W0		;Xoa 4 bit cao
		add.b	#'0', W0		;Chuyen so BCD thanh ky tu
		mov.b	W0, [W1++]		;Ghi vao bo dem xau ky tu
		swap.b	W3				;Hoan doi cac nibble trong byte da luu
		and.b	#0x0F, W3		;Xoa 4 bit cao
		add.b	#'0', W3		;Chuyen so BCD thanh ky tu
		mov.b	W3, [W1]		;Ghi vao bo dem xau ky tu
;Buoc 8, tao dieu kien STOP, cho hoat dong I2C hoan tat
		bset	I2CCON, #PEN	;Tao ra dieu kien STOP
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		clr	W0					;Xoa W0 de tranh hieu ung le cua byte cao
		mov	#8, W2				;So ky tu can xuat
Out_Str:
;Bay gio co the xuat thong tin thoi gian qua RS232
		rcall	Send_UART1		;va xuat thong tin thoi gian ra RS232
		dec	W2, W2
		bra	nz, Out_Str
		mov.b	#0x0a, W0
		mov	WREG, U1TXREG		;Xuat cap ky tu CR, LF
		mov.b	#0x0d, W0
		mov	WREG, U1TXREG
		bra	main_loop			;Vong lap chinh
;-------------------------------------------------------------------------------

;Chuong trinh con khoi tao cac cong I/O, de noi voi LED
;-------------------------------------------------------------------------------
Init_PORTS:
		setm	LATE		;Tat cac LED (anode chung) noi vao cong E
		mov	#0xFFFE, W0		;LED noi vao RE0
		mov	W0, TRISE
		return
;-------------------------------------------------------------------------------

;Chuong trinh con khoi tao module I2C o che do Master
;-------------------------------------------------------------------------------
Init_I2C:
		mov	#0x8200, W0			;bit15=I2CEN, bit9=DISSLW (tat Slew Rate
								;Control cho cac toc do baud khac 400 kbps)
		mov	W0, I2CCON
        mov	#(((Fcy/I2Cbaud)-(Fcy/1111111))-1), W0	;Khoi tao toc do baud
        mov	W0, I2CBRG			;=((Fcy/I2Cbaud)-(Fcy/1111111)) - 1)
		return
;-------------------------------------------------------------------------------

;Chuong trinh con cho hoat dong Master I2C sau cung hoan tat, bang cach kiem tra
;bit MI2CIF trong thanh ghi IFS0
;-------------------------------------------------------------------------------
Wait_MI2C:
		btss	IFS0, #MI2CIF
		bra	$ - 2
		bclr	IFS0, #MI2CIF
		return
;-------------------------------------------------------------------------------

;Chuong trinh con ghi byte thap cua W0 o che do Master
;-------------------------------------------------------------------------------
Write_I2C:
		mov.b	WREG, I2CTRN	;Gui mot byte ra bang I2C
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		btsc	I2CSTAT, #ACKSTAT		;Kiem tra trang thai ACK
		bset	flag, #0				;Neu NACK thi bat co bao loi
		return					;Tro ve chuong trinh goi
;-------------------------------------------------------------------------------

;Chuong trinh con doc byte tu I2C va ghi vao byte thap cua W0, che do Master
;-------------------------------------------------------------------------------
Read_I2C:
		bset	I2CCON, #RCEN	;Cho phep nhan byte
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		mov.b	I2CRCV, WREG	;Lay byte da nhan dat vao W0
		bclr	I2CCON, #ACKDT	;Gia su la ACK
		btsc	flag, #1		;Neu yeu cau la NACK
		bset	I2CCON, #ACKDT	;thi dat lai la NACK
		bset	I2CCON, #ACKEN	;Ghi bit ACK/NACK ra I2C bus
		rcall	Wait_MI2C		;Cho hoat dong I2C hoan tat
		return					;Tro ve chuong trinh goi
;-------------------------------------------------------------------------------

;Chuong trinh con khoi tao TMR1
;TMR1 duoc khoi tao de tran sau moi 1 giay tai muc xung 8 Mips (fcy = 8 MHz)
;-------------------------------------------------------------------------------
Init_TMR1:
		clr	TMR1
		mov	#0x7A12, W0			;TMR1 tran moi 1 giay
		mov	W0, PR1				;Dat nguong tran vao PR1
		bclr	IFS0, #T1IF		;Xoa co ngat cua TMR1
		mov	#0x8030, W0			;TMR1 dung fcy lam clock, prescale la 1:256,
		mov	W0, T1CON			;va khoi dong TMR1
		bset	IEC0, #T1IE		;cho phep ngat khi TMR1 tran
		return
;-------------------------------------------------------------------------------

;Chuong trinh con khoi tao module UART1
;-------------------------------------------------------------------------------
Init_UART1:
		mov	#0x8400, W0		;bit15=UARTEN, bit10=ALTIO, dung Alternate IO
		mov	W0, U1MODE
		mov	#0x0400, W0		;bit15=UTXISEL, bit10=UTXEN
		mov	W0, U1STA
		bclr	IFS0, #U1TXIF		;Xoa co U1TXIF bi bat len do UTXEN = 1
        mov	#(((Fcy/RSbaud)/16)-1), W0	;Khoi tao toc do baud
        mov	W0, U1BRG					;=((Fcy/RSbaud)/16) - 1)
		return
;-------------------------------------------------------------------------------

;Chuong trinh con xuat thong tin thoi gian ra UART1, W1 chua dia chi ky tu
;-------------------------------------------------------------------------------
Send_UART1:
		mov.b	[W1--], W0		;Lay mot ky tu
		mov	WREG, U1TXREG		;Xuat ra cong RS232
xmt_loop:
		btss	U1STA, #TRMT	;Da truyen ky tu xong chua?
		bra	xmt_loop			;Chua xong, tiep tuc cho
		return
;-------------------------------------------------------------------------------

;Trinh phuc vu ngat cho TMR1
;Moi 1 giay ngat nay duoc thuc thi. No se giam mot bien dem di 1 don vi
;-------------------------------------------------------------------------------
__T1Interrupt:					;Ten da duoc dinh truoc trong tap tin lien ket
		bclr  	IFS0, #T1IF		;Truoc tien, can xoa co ngat
		dec	count				;Giam bien count di 1 don vi
		retfie					;Tro ve tu ngat
;-------------------------------------------------------------------------------

	.end				;Ket thuc phan ma trong tap tin nay

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道综合伊人精品热热 | 美女尤物国产一区| 欧美性猛交xxxx乱大交退制版| 亚洲欧美色图小说| av不卡一区二区三区| 亚洲同性同志一二三专区| 97久久精品人人做人人爽| 亚洲人成在线播放网站岛国 | 日韩毛片精品高清免费| 色天天综合久久久久综合片| 亚洲一区二区精品视频| 欧美精品日韩精品| 精品一区二区国语对白| 国产精品色噜噜| 色婷婷激情综合| 日韩国产欧美三级| 久久久另类综合| 91一区二区在线| 日韩电影一区二区三区四区| 久久久影院官网| 91捆绑美女网站| 美女视频一区二区三区| 中文字幕av一区二区三区高| 日本高清免费不卡视频| 久久精品国产999大香线蕉| 中文在线免费一区三区高中清不卡| av激情亚洲男人天堂| 三级在线观看一区二区| 国产亚洲欧美日韩在线一区| 91高清视频免费看| 精品一区二区三区久久| 综合分类小说区另类春色亚洲小说欧美| 欧美日韩一区二区三区四区五区| 国产一区二区在线免费观看| 亚洲乱码国产乱码精品精的特点 | 成人精品免费网站| 天天综合色天天综合色h| 国产亚洲自拍一区| 欧美日韩一区不卡| 高清在线成人网| 婷婷国产在线综合| 国产精品免费视频观看| 7777精品伊人久久久大香线蕉超级流畅 | 欧美日本免费一区二区三区| 国产91丝袜在线播放九色| 亚洲国产乱码最新视频 | 免费精品99久久国产综合精品| 亚洲国产精华液网站w | 精品蜜桃在线看| 91福利小视频| 成人黄色国产精品网站大全在线免费观看| 午夜精品福利一区二区三区蜜桃| 中文字幕一区免费在线观看| www成人在线观看| 欧美美女bb生活片| 99久久综合99久久综合网站| 国产一区在线看| 麻豆一区二区三区| 亚洲在线视频一区| 青青草视频一区| 国产一区二区三区免费| 99久久精品国产精品久久| 亚洲美女视频一区| 日韩一区二区视频在线观看| 一本久久a久久精品亚洲 | 日韩av午夜在线观看| 欧美色图免费看| 日本高清成人免费播放| 精品国产a毛片| 欧美一区二区免费视频| 欧美一区二区三区视频在线观看| 久久久蜜臀国产一区二区| 亚洲精品久久久蜜桃| 91视频.com| 国产成人午夜99999| 国产麻豆成人传媒免费观看| 国产在线精品一区在线观看麻豆| 色哟哟亚洲精品| 国产精品久久久久久久久快鸭| 久久免费偷拍视频| 精品国产亚洲在线| 国产精品的网站| 亚洲18影院在线观看| 国产精品88av| 91久久精品国产91性色tv| 亚洲精品乱码久久久久久黑人| 国产精品色婷婷| 国产精品麻豆欧美日韩ww| 日韩高清欧美激情| 成人亚洲一区二区一| 欧美福利一区二区| 亚洲欧美视频在线观看视频| 狠狠色狠狠色综合系列| 国产精品一区二区三区四区| 成人av在线一区二区三区| 欧美日韩极品在线观看一区| 中文字幕一区在线观看视频| 蜜臀久久99精品久久久画质超高清| jlzzjlzz亚洲日本少妇| 日韩欧美国产综合在线一区二区三区| 欧美日韩亚洲另类| 久久综合色8888| 日本欧美韩国一区三区| 在线一区二区三区四区五区| 日本一区二区三区四区| 国产成人aaa| 国产精品亚洲第一| 欧美日韩一卡二卡三卡 | 国产一本一道久久香蕉| 欧美亚洲禁片免费| 亚洲国产美女搞黄色| 色又黄又爽网站www久久| 99久久99久久综合| 中文字幕欧美日本乱码一线二线| 国产美女一区二区三区| 欧美xxxx在线观看| 精品一区二区在线播放| 日韩一区二区电影| 日韩成人一区二区| www..com久久爱| 欧美激情一区二区三区| 成人h动漫精品一区二区| 亚洲同性同志一二三专区| 91网站视频在线观看| 日韩精品高清不卡| 欧美成人vps| 在线观看日韩电影| 91麻豆精品国产91久久久久久久久 | 精品卡一卡二卡三卡四在线| 中文字幕一区二区5566日韩| 亚洲国产精品视频| 国产精品一线二线三线| 欧美天堂亚洲电影院在线播放| 欧美精品一区二区在线播放| 一区二区三区四区激情| 国产ts人妖一区二区| 91精品在线一区二区| 国产精品超碰97尤物18| 老司机免费视频一区二区| 在线看不卡av| 日本一区二区三级电影在线观看| 爽好多水快深点欧美视频| 成人免费高清视频| 精品欧美黑人一区二区三区| 亚洲一区av在线| 不卡电影免费在线播放一区| 精品乱码亚洲一区二区不卡| 视频在线在亚洲| 91麻豆成人久久精品二区三区| 欧美极品aⅴ影院| 国产一区二区在线观看免费| 欧美一区二区三区四区在线观看| 一区二区三区免费网站| 国产精品一区二区在线观看不卡| 亚洲精品一区二区在线观看| 国v精品久久久网| 精品国产伦一区二区三区观看体验 | 久久爱www久久做| 91久久国产综合久久| 国产精品家庭影院| 成人深夜在线观看| 国产色91在线| 国产成人在线影院| 欧美性色黄大片| 国产精品久久久久久久久免费桃花 | 国产精品66部| 2021国产精品久久精品| 国产一区二区视频在线| 精品欧美一区二区三区精品久久| 婷婷国产在线综合| 欧美一区二区三区免费大片| 日韩国产一区二| 日韩午夜在线观看| 日韩成人精品在线观看| 日韩欧美专区在线| 精品一区在线看| 色网站国产精品| 一区二区高清免费观看影视大全| 在线亚洲一区二区| 亚洲1区2区3区4区| 日韩欧美黄色影院| 国产一区二区三区久久悠悠色av| 久久久99精品久久| 成人激情免费网站| 亚洲码国产岛国毛片在线| 欧美色综合天天久久综合精品| 午夜精品视频一区| 欧美精品一区二区三区一线天视频| 精品亚洲国产成人av制服丝袜 | 国产精品三级在线观看| av电影天堂一区二区在线观看| 亚洲精品亚洲人成人网| 欧美日本一区二区三区| 韩国三级电影一区二区| 国产精品日日摸夜夜摸av| 91蜜桃免费观看视频| 亚洲午夜视频在线| 日韩精品中文字幕在线不卡尤物| 国产成人av电影在线观看| 国产精品久久久久婷婷|