基于HT48R50A的LED点阵+LCD显示程序

function:5x7led点阵+lcd显示示例程序*
;microprocessor:ht48r50a-1/28skdip-a*
;author:*
;crystal:4mhz*
;********************************************
#includeht48r50a-1.inc
lcd_dataequpb
lcd_data_ctrlequpbc
lcd_ctrlequpc
lcd_ctrl_ctrlequpcc
eequ5
rsequ3
time_outequ11h
clr_wdtequ22h
exe_haltequ33h
clr_wdt1_wdt2equ44h
;--------------------------------------------------------------------
data.sectionat60h’data’
delay_counter_1db?;[60h]
delay_counter_2db?;[61h]
delay_counter_3db?;[62h]
datadb?;[63h]
counterdb?;[64h]
warm_resetdb?;[65h]
display_flagdb?;[66h]
;--------------------------------------------------------------------
code.sectionat00h’code’
org00h
jmpstart
start:
clrpac
clrlcd_data_ctrl
clrlcd_ctrl_ctrl
clrlcd_data
clrlcd_ctrl
;--------------------------------------------------------------------
mov a,07h;setwatchdogtimeout
mov wdts,a;2.6sec
clrwdt;clearwatchdogtimer
;--------------------------------------------------------------------
mov a,warm_reset
mov display_flag,a
suba,time_out
szacc
jmpchk_clr_wdt
jmpgo_time_out
chk_clr_wdt:
mov a,warm_reset
mov display_flag,a
suba,clr_wdt
szacc
jmpchk_exe_halt
jmpgo_clr_wdt
chk_exe_halt:
mov a,warm_reset
mov display_flag,a
suba,exe_halt
szacc
jmpchk_clr_wdt_12
jmpgo_exe_halt
chk_clr_wdt_12:
mov a,warm_reset
mov display_flag,a
suba,clr_wdt1_wdt2
szacc
jmpbegin
jmpgo_clr_wdt_12
begin:
calllcd_reset
clrwdt;clearwatchdogtimer
;--------------------------------------------------------------------
go_time_out:
mov a,clr_wdt
mov warm_reset,a
mov a,offsetlcd_message_1
mov tblp,a
calllcd_display
time_out_loop:
callled_display
jmptime_out_loop
ret
;--------------------------------------------------------------------
go_clr_wdt:
mov a,exe_halt
mov warm_reset,a
mov a,offsetlcd_message_2
mov tblp,a
calllcd_display
clr_wdt_loop:
callled_display
jmpclr_wdt_loop
ret
;--------------------------------------------------------------------
go_exe_halt:
mov a,clr_wdt1_wdt2
mov warm_reset,a
mov a,offsetlcd_message_3
mov tblp,a
calllcd_display
exe_halt_loop:
callled_display
jmpexe_halt_loop
ret
;--------------------------------------------------------------------
go_clr_wdt_12:
mov a,time_out
mov warm_reset,a
mov a,offsetlcd_message_4
mov tblp,a
calllcd_display
clr_wdt_12_loop:
callled_display
jmpclr_wdt_12_loop
ret
;--------------------------------------------------------------------
led_displayproc
setpa
calldelay
mov a,offsetsegment_data
mov tblp,a
mov a,10h
mov counter,a
display_start:
tabrdldata
mov a,data
mov pa,a
calldelay
inctblp
mov a,display_flag
suba,clr_wdt
szacc
jmpled_clr_wdt12
clrwdt
jmpdisplay_end
led_clr_wdt12:
mov a,display_flag
suba,clr_wdt1_wdt2
szacc
jmpled_exe_halt
clrwdt1
clrwdt2
jmpdisplay_end
led_exe_halt:
mov a,display_flag
suba,exe_halt
szacc
jmpdisplay_end
halt
display_end:
sdzcounter
jmpdisplay_start
ret
led_displayendp
;--------------------------------------------------------------------
lcd_resetproc
mov a,30h;lcdreset,step1
mov lcd_data,a;
callwrite;
calldelay;lcdreset,step2
mov a,30h;lcdreset,step3
mov lcd_data,a;
callwrite;
calldelay;lcdreset,step4
mov a,30h;lcdreset,step5
mov lcd_data,a;
callwrite;
mov a,38h;lcdsetting,step1
mov lcd_data,a;functionset
callwrite;
mov a,06h;lcdsetting,step2
mov lcd_data,a;entrymodeset
callwrite;
mov a,01h;lcdsetting,step3
mov lcd_data,a;displayclear
callwrite;
calldelay;
mov a,0eh;lcdsetting,step4
mov lcd_data,a;displayturnon
callwrite;
ret
lcd_resetendp
;--------------------------------------------------------------------
lcd_displayproc
mov a,01h;lcdsetting,step5
mov lcd_data,a;displayclear
callwrite;
calldelay;
mov a,80h;lcdsetting,setp6
mov lcd_data,a;ddramaddresssetting
callwrite;address=00h(firstline)
setlcd_ctrl.rs;lcdsetting,step7
mov a,10h;writedatatoddram
mov counter,a
display1:
tabrdldata
mov a,data
mov lcd_data,a
callwrite
inctblp
sdzcounter
jmpdisplay1
clrlcd_ctrl.rs
mov a,0c0h;lcdsetting,step8
mov lcd_data,a;ddramaddresssetting
callwrite;address=40h(secondline)
setlcd_ctrl.rs;lcdsetting,step9
mov a,10h;writedatatoddram
mov counter,a
display2:
tabrdldata
mov a,data
mov lcd_data,a
callwrite
inctblp
sdzcounter
jmpdisplay2
ret
lcd_displayendp
;--------------------------------------------------------------------
writeproc
setlcd_ctrl.e
clrlcd_ctrl.e
mov a,0ffh
mov delay_counter_1,a
wait:
sdzdelay_counter_1
jmpwait
ret
writeendp
;--------------------------------------------------------------------
delayproc
mov a,003h
mov delay_counter_1,a
mov delay_counter_2,a
mov delay_counter_3,a
delay_wait:
sdzdelay_counter_3
jmpdelay_wait
sdzdelay_counter_2
jmpdelay_wait
sdzdelay_counter_1
jmpdelay_wait
ret
delayendp
;--------------------------------------------------------------------
org0f00h
lcd_message_1:;[now,watchdog]
;[willbetimeout]
dc4eh,6fh,77h,20h,2ch,20h,77h,61h
dc74h,63h,68h,20h,64h,6fh,67h,20h
dc77h,69h,6ch,6ch,20h,62h,65h,20h
dc74h,69h,6dh,65h,20h,6fh,75h,74h
lcd_message_2:;[withouttimeout]
;[becauseclrwdt]
dc57h,69h,74h,68h,6fh,75h,74h,20h
dc74h,69h,6dh,65h,20h,6fh,75h,74h
dc42h,65h,63h,61h,75h,73h,65h,20h
dc43h,4ch,52h,20h,57h,44h,54h,20h
lcd_message_3:;[executingthe]
;[haltinstruction]
dc45h,78h,65h,63h,75h,74h,69h,6eh
dc67h,20h,74h,68h,65h,20h,20h,20h
dc48h,41h,4ch,54h,20h,69h,6eh,73h
dc74h,72h,75h,63h,74h,69h,6fh,6eh
lcd_message_4:;[withouttimeout]
;[clrwdt1&wdt2]
dc57h,69h,74h,68h,6fh,75h,74h,20h
dc74h,69h,6dh,65h,20h,6fh,75h,74h
dc43h,4ch,52h,20h,57h,44h,54h,31h
dc20h,26h,20h,57h,44h,54h,32h,20h
segment_data:;7segmentdisplaydata(commonanode)
dc081h,0cfh,092h,086h;0123
dc0cch,0a4h,0a0h,08fh;4567
dc080h,084h,088h,0e0h;89ab
dc0b1h,0c2h,0b0h,0b8h;cdef
;--------------------------------------------------------------------
end

英特尔oneAPI工具大幅提升腾讯云数据库MySQL的性能
电子制造业的核心:探讨贴片机在SMT中的重要地位
三菱PLC与西门子PLC有什么区别?
GSM调制解调器简化传感器网络中的数据采集和处理
电机控制解决方案选择的五个思考维度
基于HT48R50A的LED点阵+LCD显示程序
智慧养老整体解决方案
美国FCC提出清除华为、中兴设备的新举措
什么是10G CWDM SFP+万兆光模块?
云图三维、中望、浩辰等CAD能撑起国产工业设计软件的未来吗?
电源上电瞬间有脉冲的解决方案
美国在IC设计行业领先,中国的IC企业也在奋起
小米6Plus什么时候上市?小米6Plus最新消息:小米6Plus即将发布,小米5s为小米6Plus让路降至“最低价”!
电力电子技术向高频领域发展应重新认识的概念
网络语音对讲作为内部通讯调度使您工作更轻松
华为nova 5T即将进入欧洲市场该机搭载麒麟980处理器拥有三种配色
中手游获颁金i奖“2021年度IP商业创新企业”
日本电信系统公司Sangikyo推出首款名为LED Backhaul的Li-Fi产品
kvm切换器在智能车间监控系统的解决方案
合理使用TWS真无线耳机多少小时好?