Nguyên văn bởi kqha10251
Xem bài viết
;************************************************* *******************************
;**************//////------------ matrix 16x64 ----------\\\\\\******************
;**------------------------------------------------------------------------------
;**////////////////__ chuong trinh chay chu tren bo led ___\\\\\\\\\\\\\\\\\\\\\\
;**///////////////__ ma tran 8x8 loai 1 mau ________________\\\\\\\\\\\\\\\\\\\\\
;**//////////////___ su dung vi dieu khien 89c52 cua atmel __\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<---------------------------------------------->>>>>>>>>>>>>>>>>>>
;**\\\\\\\\\\\\\\\ ---------- phankey_electric ---------- ////////////////////
;************************************************* *******************************
;*****
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@ cac ten bit dung trong chuong trinh @@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
e bit p0.3
data_out bit p0.4
sh bit p0.5
green bit p0.6
red bit p0.7
f_run bit 7fh
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@ cac ten byte dung trong chuong trinh @@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
data_row equ p2
index_byte_row equ 30h
num_row equ 16
num_byte_collum equ 8
index_point equ 31h
index_reg1 equ 32h
index_reg2 equ 33h
num_bit equ 34h
width_byte equ 35h
buffer_dptrh equ 36h
buffer_dptrl equ 37h
buffer_dptrh1 equ 38h
buffer_dptrl1 equ 39h
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@ start@@@
;@@@ osc 12mhz@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
org 0000h
ljmp main
org 000bh
ljmp ngat_timer0
org 0030h
main:
Clr f_run
mov num_bit,#0
mov dptr,#string_code+2
mov a,#0
movc a,@a+dptr
mov width_byte,a
mov dptr,#string_code-6
lcall set_index_dptr
mov buffer_dptrh1,dph
mov buffer_dptrl1,dpl
mov dptr,#string_code+3
mov buffer_dptrh,dph
mov buffer_dptrl,dpl
mov index_point,#0
mov index_byte_row,#0
lcall init_interrupt
ljmp begin
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
begin:
___here:
Mov ie,#82h
jnb f_run,___here
mov ie,#0
clr f_run
inc num_bit
mov a,num_bit
cjne a,#9,___here
;mov ie,#0
mov num_bit,#0
mov a,dpl
cjne a,buffer_dptrl1,___skip3
mov a,dph
cjne a,buffer_dptrh1,___skip3
mov dptr,#string_code+3
mov buffer_dptrh,dph
mov buffer_dptrl,dpl
mov index_byte_row,#0
sjmp ___here
___skip3:
Inc dptr
mov buffer_dptrh,dph
mov buffer_dptrl,dpl
;mov ie,#82h
sjmp ___here
sjmp $
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
init_interrupt:
Mov tmod,#01h
setb tr0
setb tf0
mov ie,#82h
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ngat_timer0:
Mov th0,#0f3h
mov tl0,#0a8h ;12^6/12/50hz/16=1250(fb1e)
lcall shift_data
lcall set_index_dptr
inc index_byte_row
mov a,index_byte_row
cjne a,#num_row,___exit
mov index_byte_row,#0
mov dph,buffer_dptrh
mov dpl,buffer_dptrl
setb f_run
___exit:
Reti
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
shift_data:
Setb e ;ta't ma`ng hi`nh de^? Cho^'ng lem led
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov index_reg1,#num_byte_collum
___loop1:
Mov index_reg2,#8
mov a,index_point
movc a,@a+dptr ;lay du lieu trong bo nho ct
___loop2:
Clr c
rlc a
mov data_out,c
clr sh
setb sh
djnz index_reg2,___loop2 ;dich du 8 bit
inc index_point
djnz index_reg1,___loop1 ;dich du 8 byte
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov a,num_bit ;de kiem tra co zero
jz ___skip1
mov index_reg2,num_bit
mov a,index_point
movc a,@a+dptr ;lay du lieu trong bo nho ct
___loop3:
Clr c
rlc a
mov data_out,c
clr sh
setb sh
djnz index_reg2,___loop3 ;dich du 8 bit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
___skip1:
Clr green
setb green
mov data_row,index_byte_row ;chon hang va tich cuc hc154
clr e
mov index_point,#0
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
set_index_dptr:
Mov a,dpl
add a,width_byte
mov dpl,a
jnc ___skip2
inc dph
___skip2:
Ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
string_code:
;them ma chu vao day nha ( 16x thoi)
end
các bạn tham khảo cái này nhá!
;**************//////------------ matrix 16x64 ----------\\\\\\******************
;**------------------------------------------------------------------------------
;**////////////////__ chuong trinh chay chu tren bo led ___\\\\\\\\\\\\\\\\\\\\\\
;**///////////////__ ma tran 8x8 loai 1 mau ________________\\\\\\\\\\\\\\\\\\\\\
;**//////////////___ su dung vi dieu khien 89c52 cua atmel __\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<---------------------------------------------->>>>>>>>>>>>>>>>>>>
;**\\\\\\\\\\\\\\\ ---------- phankey_electric ---------- ////////////////////
;************************************************* *******************************
;*****
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@ cac ten bit dung trong chuong trinh @@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
e bit p0.3
data_out bit p0.4
sh bit p0.5
green bit p0.6
red bit p0.7
f_run bit 7fh
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@ cac ten byte dung trong chuong trinh @@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
data_row equ p2
index_byte_row equ 30h
num_row equ 16
num_byte_collum equ 8
index_point equ 31h
index_reg1 equ 32h
index_reg2 equ 33h
num_bit equ 34h
width_byte equ 35h
buffer_dptrh equ 36h
buffer_dptrl equ 37h
buffer_dptrh1 equ 38h
buffer_dptrl1 equ 39h
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@ start@@@
;@@@ osc 12mhz@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
org 0000h
ljmp main
org 000bh
ljmp ngat_timer0
org 0030h
main:
Clr f_run
mov num_bit,#0
mov dptr,#string_code+2
mov a,#0
movc a,@a+dptr
mov width_byte,a
mov dptr,#string_code-6
lcall set_index_dptr
mov buffer_dptrh1,dph
mov buffer_dptrl1,dpl
mov dptr,#string_code+3
mov buffer_dptrh,dph
mov buffer_dptrl,dpl
mov index_point,#0
mov index_byte_row,#0
lcall init_interrupt
ljmp begin
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
begin:
___here:
Mov ie,#82h
jnb f_run,___here
mov ie,#0
clr f_run
inc num_bit
mov a,num_bit
cjne a,#9,___here
;mov ie,#0
mov num_bit,#0
mov a,dpl
cjne a,buffer_dptrl1,___skip3
mov a,dph
cjne a,buffer_dptrh1,___skip3
mov dptr,#string_code+3
mov buffer_dptrh,dph
mov buffer_dptrl,dpl
mov index_byte_row,#0
sjmp ___here
___skip3:
Inc dptr
mov buffer_dptrh,dph
mov buffer_dptrl,dpl
;mov ie,#82h
sjmp ___here
sjmp $
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
init_interrupt:
Mov tmod,#01h
setb tr0
setb tf0
mov ie,#82h
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ngat_timer0:
Mov th0,#0f3h
mov tl0,#0a8h ;12^6/12/50hz/16=1250(fb1e)
lcall shift_data
lcall set_index_dptr
inc index_byte_row
mov a,index_byte_row
cjne a,#num_row,___exit
mov index_byte_row,#0
mov dph,buffer_dptrh
mov dpl,buffer_dptrl
setb f_run
___exit:
Reti
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
shift_data:
Setb e ;ta't ma`ng hi`nh de^? Cho^'ng lem led
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov index_reg1,#num_byte_collum
___loop1:
Mov index_reg2,#8
mov a,index_point
movc a,@a+dptr ;lay du lieu trong bo nho ct
___loop2:
Clr c
rlc a
mov data_out,c
clr sh
setb sh
djnz index_reg2,___loop2 ;dich du 8 bit
inc index_point
djnz index_reg1,___loop1 ;dich du 8 byte
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov a,num_bit ;de kiem tra co zero
jz ___skip1
mov index_reg2,num_bit
mov a,index_point
movc a,@a+dptr ;lay du lieu trong bo nho ct
___loop3:
Clr c
rlc a
mov data_out,c
clr sh
setb sh
djnz index_reg2,___loop3 ;dich du 8 bit
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
___skip1:
Clr green
setb green
mov data_row,index_byte_row ;chon hang va tich cuc hc154
clr e
mov index_point,#0
ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
set_index_dptr:
Mov a,dpl
add a,width_byte
mov dpl,a
jnc ___skip2
inc dph
___skip2:
Ret
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;################################################# ######################################
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
string_code:
;them ma chu vao day nha ( 16x thoi)
end
các bạn tham khảo cái này nhá!
mình ra lập 1 code led để vô hả bạn
cái code hàng dọc 16 ngang 64 ha? Ban
Comment