Nguyên văn bởi hungthinhqni
Xem bài viết
hoangaica@yahoo.com
.include "m8515def.inc" ;========================================================================================= ;DAT TEN POC XUAT THU ================================================================== ;========================================================================================= .equ chan_dk = 0x18 ;PORTB .equ cs = 0x12 ;PORTD .equ AT24 = 0x07 ;PORTE .equ AT24_D = 0x06 ;DDRE .equ AT24_P = 0x05 ;PINE .equ chan_do = 7 .equ chan_xanh = 6 .equ ck_led = 5 .equ en_led = 4 .equ en = 2 .equ cs_IC = 5 .equ data_24 = 2 .equ clock_24 = 0 .equ data_1820 = 3 ;***************************************************************************************** ;***************************************************************************************** ;***************************************************************************************** ;========================================================================================= ;CHUONG TRINH CHINH ================================================================== ;========================================================================================= .cseg .org 0x0000 rjmp RESET .org 0x0011 ;========================================================================================= ;CHUONG TRINH RESET ================================================================== ;========================================================================================= RESET: ldi r16,low(0x00ff) out SPL,r16 ;stac ldi r16,high(0x00ff) out SPH,r16 ;stac ;======================================================================== ldi r16,0b11111111 ;CAU HINH CHAN DIEU KHIEN XUAT PORTB out DDRB, r16 ;======================================================================== ldi r16,0b11111111 ;CAU HINH CHAN DIEU KHIEN XUAT PORTE out DDRE, r16 ;======================================================================== ldi r16,0b11101110 ;CAU HINH CHAN DIEU KHIEN PORTD out DDRD, r16 sbi cs,en ;tat power sbi cs,data_1820 ;======================================================================== ldi r16,0b10000000 ;truy xuat RAN ngoai out MCUCR,r16 ;======================================================================== ;KHOI TAO TIME 0 ldi r16,5 out TCCR0,r16 ;CHAY TIME 0 VOI XUNG DONG HO /1024 ldi r16,-19 ;50X16 = 800Hz out TCNT0,r16
.include "m8515def.inc" ;================================================= ======================================== ;DAT TEN POC XUAT THU ================================================== ================ ;================================================= ======================================== .equ chan_dk = 0x18 ;PORTB .equ cs = 0x12 ;PORTD .equ AT24 = 0x07 ;PORTE .equ AT24_D = 0x06 ;DDRE .equ AT24_P = 0x05 ;PINE .equ chan_do = 7 .equ chan_xanh = 6 .equ ck_led = 5 .equ en_led = 4 .equ en = 2 .equ cs_IC = 5 .equ data_24 = 2 .equ clock_24 = 0 .equ data_1820 = 3 ;************************************************* **************************************** ;************************************************* **************************************** ;************************************************* **************************************** ;================================================= ======================================== ;CHUONG TRINH CHINH ================================================== ================ ;================================================= ======================================== .cseg .org 0x0000 rjmp RESET .org 0x0011 ;================================================= ======================================== ;CHUONG TRINH RESET ================================================== ================ ;================================================= ======================================== RESET: ldi r16,low(0x00ff) out SPL,r16 ;stac ldi r16,high(0x00ff) out SPH,r16 ;stac ;================================================= ======================= ldi r16,0b11111111 ;CAU HINH CHAN DIEU KHIEN XUAT PORTB out DDRB, r16 ;================================================= ======================= ldi r16,0b11111111 ;CAU HINH CHAN DIEU KHIEN XUAT PORTE out DDRE, r16 ;================================================= ======================= ldi r16,0b11101110 ;CAU HINH CHAN DIEU KHIEN PORTD out DDRD, r16 sbi cs,en ;tat power sbi cs,data_1820 ;================================================= ======================= ldi r16,0b10000000 ;truy xuat RAN ngoai out MCUCR,r16 ;================================================= ======================= ;KHOI TAO TIME 0 ldi r16,5 out TCCR0,r16 ;CHAY TIME 0 VOI XUNG DONG HO /1024 ldi r16,-19 ;50X16 = 800Hz out TCNT0,r16 main: in r16,TIFR sbrs r16,TOV0 rjmp main ldi r16,(1<<TOV0) out TIFR,r16 ; Clear TOV0/ clear pending interrupts lds r16,19 ;toc_do out TCNT0,r16 ;NAP LAI GIA TRI TIME sbi cs,en ;tat power rcall delay_power cbi chan_dk,en_led sbi chan_dk,en_led ;chot data led out chan_dk,m_vi_tri_hang cbi cs,en ;mo power rcall dieu_khien_hang rcall dich_data_led rjmp main
.include "m8515def.inc" ;================================================= ======================================== ;DAT TEN POC XUAT THU ================================================== ================ ;================================================= ======================================== .equ chan_dk = 0x18 ;PORTB .equ cs = 0x12 ;PORTD .equ AT24 = 0x07 ;PORTE .equ AT24_D = 0x06 ;DDRE .equ AT24_P = 0x05 ;PINE ;vung hien thi .equ vung_xanh_low = 0x20 .equ vung_xanh_high = 0x58 .equ vung_do_low = 0x90 .equ vung_do_high = 0xc8 .equ vung_xanh = 2 .equ vung_do = 3 .equ chan_do = 7 .equ chan_xanh = 6 .equ ck_led = 5 .equ en_led = 4 .equ en = 2 .equ cs_IC = 5 .equ data_24 = 2 .equ clock_24 = 0 .equ data_1820 = 3 .def cursel_xanh_high = r25 .def cursel_xanh_low = r24 .def cursel_do_high = r23 .def cursel_do_low = r22 .def cursel_low = r21 .def cursel_high = r20 .def cursel_a = r19 .def cursel_b = r18 .def vi_tri_hang = r17 .def vi_tri_hang_do = r11 .def vi_tri_hang_xanh = r10 .def m_vi_tri_hang = r14 .def m_property = r5 .equ chieu_cao_bang = 16 .equ chieu_dai_bang = 64 ;************************************************* **************************************** ;************************************************* **************************************** ;************************************************* **************************************** ;================================================= ======================================== ;CHUONG TRINH CHINH ================================================== ================ ;================================================= ======================================== .cseg .org 0x0000 rjmp RESET .org 0x0011 ;================================================= ======================================== ;CHUONG TRINH RESET ================================================== ================ ;================================================= ======================================== RESET: ldi r16,low(0x00ff) out SPL,r16 ;stac ldi r16,high(0x00ff) out SPH,r16 ;stac ;================================================= ======================= ldi r16,0b11111111 ;CAU HINH CHAN DIEU KHIEN XUAT PORTB out DDRB, r16 ;================================================= ======================= ldi r16,0b11111111 ;CAU HINH CHAN DIEU KHIEN XUAT PORTE out DDRE, r16 ;================================================= ======================= ldi r16,0b11101110 ;CAU HINH CHAN DIEU KHIEN PORTD out DDRD, r16 sbi cs,en ;tat power sbi cs,data_1820 ;================================================= ======================= ldi r16,0b10000000 ;truy xuat RAN ngoai out MCUCR,r16 ;================================================= ======================= ;KHOI TAO TIME 0 ldi r16,5 out TCCR0,r16 ;CHAY TIME 0 VOI XUNG DONG HO /1024 ldi r16,-19 ;50X16 = 800Hz out TCNT0,r16 ldi r16,0 mov m_vi_tri_hang,r16 main: in r16,TIFR sbrs r16,TOV0 rjmp main ldi r16,(1<<TOV0) out TIFR,r16 ; Clear TOV0/ clear pending interrupts lds r16,19 ;toc_do out TCNT0,r16 ;NAP LAI GIA TRI TIME sbi cs,en ;tat power rcall delay_power cbi chan_dk,en_led sbi chan_dk,en_led ;chot data led out chan_dk,m_vi_tri_hang cbi cs,en ;mo power rcall dieu_khien_hang rcall dich_data_led rjmp main ;***************************************************************************************** ;***************************************************************************************** ;***************************************************************************************** delay_power: ldi r16,150 lap_delay_power: dec r16 cpi r16,0 brne lap_delay_power ret dieu_khien_hang: dec m_vi_tri_hang mov r16,m_vi_tri_hang cpi r16,0xff ;so sanh chieu cao bang brne thoat_dieu_khien_hang ldi r16,chieu_cao_bang dec r16 mov m_vi_tri_hang,r16 ;nap vi tri hang = 0 thoat_dieu_khien_hang: ret dich_data_led: ldi cursel_low,0 ldi cursel_high,0 ldi cursel_xanh_high,0 ldi cursel_xanh_low,0 ldi cursel_do_high,0 ldi cursel_do_low,0 rcall conver_vi_tri_hang lap_dich_data_led: rcall lay_bit_mau_xanh1 rcall lay_bit_mau_do1 sbi chan_dk,ck_led ;kich ck cbi chan_dk,ck_led subi cursel_low,low(-1) sbci cursel_high,high(-1) cpi cursel_low,low(chieu_dai_bang) brne lap_dich_data_led cpi cursel_high,high(chieu_dai_bang) brne lap_dich_data_led ret ;***************************************************************************************** ;***************************************************************************************** ;***************************************************************************************** conver_vi_tri_hang: mov vi_tri_hang,m_vi_tri_hang conver_vi_tri_hang1: bst vi_tri_hang,3 bld m_property,vung_xanh bld m_property,vung_do andi vi_tri_hang,0x07 rcall conver_hang mov vi_tri_hang_xanh,vi_tri_hang mov vi_tri_hang_do,vi_tri_hang sbi chan_dk,chan_xanh ;mac dinh la tat mau xanh sbi chan_dk,chan_do ;mac dinh la tat mau do ret ;========================================================================================= ;CHUONG TRINH CON COVER HANG ========================================================== ;========================================================================================= conver_hang: cpi vi_tri_hang,4 brsh vi_tri_hang_lon_hon_bang_4 cpi vi_tri_hang,0 brne not_vi_tri_hang_0 ldi vi_tri_hang,0x01 ret ;------------------------- not_vi_tri_hang_0: cpi vi_tri_hang,1 brne not_vi_tri_hang_1 ldi vi_tri_hang,0x02 ret ;------------------------- not_vi_tri_hang_1: cpi vi_tri_hang,2 brne not_vi_tri_hang_2 ldi vi_tri_hang,0x04 ret ;------------------------- not_vi_tri_hang_2: ldi vi_tri_hang,0x08 ret ;------------------------- vi_tri_hang_lon_hon_bang_4: cpi vi_tri_hang,4 brne not_vi_tri_hang_4 ldi vi_tri_hang,0x10 ret ;------------------------- not_vi_tri_hang_4: cpi vi_tri_hang,5 brne not_vi_tri_hang_5 ldi vi_tri_hang,0x20 ret ;------------------------- not_vi_tri_hang_5: cpi vi_tri_hang,6 brne not_vi_tri_hang_6 ldi vi_tri_hang,0x40 ret ;------------------------- not_vi_tri_hang_6: ldi vi_tri_hang,0x80 ret ;========================================================================================= ;CHUONG TRINH CON LAY BIT MAU XANH ================================================== ;========================================================================================= lay_bit_mau_xanh1: ldi XH,vung_xanh_low sbrc m_property,vung_xanh ldi XH,vung_xanh_high mov XL,cursel_xanh_low ;diem dau vung can hien thi low add XH,cursel_xanh_high ;diem dau vung can hien thi hight ld r16,X subi cursel_xanh_low,low(-1) sbci cursel_xanh_high,high(-1) sbi chan_dk,chan_xanh ;mac dinh la tat mau xanh and r16,vi_tri_hang_xanh cpi r16,0 brne thoat_lay_bit_mau_xanh cbi chan_dk,chan_xanh thoat_lay_bit_mau_xanh: ret ;***************************************************************************************** ;***************************************************************************************** ;***************************************************************************************** ;========================================================================================= ;CHUONG TRINH CON LAY BIT MAU DO ================================================== ;========================================================================================= lay_bit_mau_do1: ldi XH,vung_do_low sbrc m_property,vung_do ldi XH,vung_do_high mov XL,cursel_do_low ;diem dau vung can hien thi low add XH,cursel_do_high ;diem dau vung can hien thi hight ld r16,X subi cursel_do_low,low(-1) sbci cursel_do_high,high(-1) sbi chan_dk,chan_do ;mac dinh la tat mau do and r16,vi_tri_hang_do cpi r16,0 brne thoat_lay_bit_mau_do cbi chan_dk,chan_xanh thoat_lay_bit_mau_do: ret ;***************************************************************************************** ;***************************************************************************************** ;*****************************************************************************************
Comment