|
max7219汇编程序
;========================================================== ; function: sd_7219 ;向7219送地址或数据 ; input: a ; output: MAX7219 ; usage: a,r2 ;======================================================== sd_7219: ;向7219送地址或数据 mov r2, #08h ;向7219送地址或数据 c_sd: nop clr disp_clk rlc a mov disp_din, c ;准备数据 nop setb disp_clk ;上升沿将数据传入 djnz r2, c_sd ret
;========================================================== ; function: w_7219 ;显示驱动程序 ; input: a----------传送7219的地址 ; b----------传送7219数据 ; output: ----------------- ; usage: a,r2 ;========================================================= w_7219: ;显示驱动程序 clr disp_load ;置load=0 lcall sd_7219 ;传送7219的地址 mov a, b lcall sd_7219 ;传送数据 setb disp_load ;数据装载 ret
;========================================================= ; function: MAX7219 initialization 初始化Max7219 ; input: ------------- ; output: ------------- ; usage: a,b ;======================================================== ;Set_Model equ 0ffh //将BCD码译成B码; ;Set_Bright equ 04h //占空比为15/32; ;Set_Limit equ 07h //8位显示方式; ;Set_Sart equ 01h //进入启动工作方式? ;Set_Halt
Init_Max7219: ;初始化Max7219 mov a, #0ch mov b, #Set_Halt ;进入停机工作方式 lcall w_7219
mov a, #0bh ;设置扫描界限 mov b, #Set_Limit ; lcall w_7219 mov a, #09h ;将BCD码译成B码 mov b, #Set_Model ; lcall w_7219
mov a, #0ah ;设置亮度 mov b, #Set_Bright ;15/32亮度 lcall w_7219 mov a, #0fh ;设置正常工作方式 mov b, #Set_Normal ; lcall w_7219
mov a, #0ch ;进入启动工作方式?
mov b, #Set_Sart ; lcall w_7219 mov a, judge_er rl a mov judge_er, a
ret
|