当前位置:首页 > 单片机 > 单片机
[导读] 合泰HOLTEK单片机写的,对初学者来说里面的分析思路很有帮助。#includeht48c10-1.inc;-------------------------------------------------------data.section’data’;==datasection==tempdb?;temporar

合泰HOLTEK单片机写的,对初学者来说里面的分析思路很有帮助。
#includeht48c10-1.inc
;-------------------------------------------------------
data.section’data’;==datasection==


tempdb?;temporarydataregister
dispdb?;keydisplayregister
count1db?;delayloopcounter
maskdb?;maskregister
matrixdb?;keymatrixregister
;-------------------------------------------------------
code.sectionat0’code’;==programsection==
org00h;
jmpstart;
org04h;externalinterruptsubroutine
reti;forguarantee
org08h;timer/event0interruptsubroutine
reti;forguarantee
org0ch;timer/event1interruptsubroutine
reti;forguarantee

start:;
clriNTC;initializeregisters
clrtmrc;toguaranteeperformance
clrtmr;(interrupts)
setPAC;(ports)
setpbc;(inputmode)
setpCC;
main:
setpac;(1);setportAtoinputmode
clrpbc;setportBtooutputmode
clrpa;zeroportA(latch=0)
setpb;offLEDs
keyloop:;
MOV a,0feh;(2);sCANfirstrowofkeys
MOV matrix,a;holdscancode
MOV pac,a;pa.0output0(latch)
MOV a,pa;readinputstate
cplacc;;distillinputstate
anda,0f0h;;
szacc;ifanyinput?
jmpget_key;yes.getinputinfo
MOV a,0fdh;(2);no.scansecondrow
MOV matrix,a;holdscancode
MOV pac,a;pa.1output0(latch)
MOV a,pa;readinputstate
cplacc;;distillinputstate
anda,0f0h;;
szacc;ifanyinput?
jmpget_key;yes.getinputinfo
MOV a,0fbh;(2);no.scanthirdrow
MOV matrix,a;holdscancode
MOV pac,a;pa.2output0(latch)
MOV a,pa;readinputstate
cplacc;;distillinputstate
anda,0f0h;;
szacc;ifanyinput?
jmpget_key;yes.getinputinfo
MOV a,0f7h;(2);no.scanfourthrow
MOV matrix,a;holdscancode
MOV pac,a;outputpa.30(latch)
MOV a,pa;readinputstate
cplacc;;distillinputstate
anda,0f0h;;
szacc;ifanyinput?
jmpget_key;yes.getinputinfo
jmpkeyloop;repeatfromkeyloop
get_key:;getinputkeyinfo
calldelays;debounce
MOV a,pa;testportA
ora,0fh;
cplacc;
szacc;anykeyhold?
jmpgo_on;yes.goon(somekeyispressed)
jmpkeyloop;no.returntoscankeyagain
go_on:
callkey_in;(3);calculatetableindex
tabrdldisp;(10);loaddisplaydata
MOV a,disp;;outputdatatoportB
MOV pb,a;(11);;
jmpkeyloop;repeatkeyloop
key_inproc;getkeynumber
MOV a,pa;;holdportAstate
MOV temp,a;(4);;
get_release:;waitforthekeytobereleased
MOV a,pa;;testportAstate
cplacc;;
anda,0f0h;;
szacc;(6);ifrelease?
jmpget_release;no.keepupwaiting
MOV a,0fh;yes.calculatekeynumber
andma,matrix;(7);masklownibbleofscancode
MOV a,0;keeptableindexatregisterA
get_row:;calculaterownumber
rrcmatrix;;checkeachbittogetrownumber
snzstatus.0;;
jmpget_next;ifbingogotoget_next
clrc;
adda,4h;(8);tableindex+4(4keysarow)
jmpget_row;continuecalculating
get_next:;
MOV tblp,a;holdtableindexatregisterTBLP
MOV a,0efh;
MOV mask,a;;mask=01111111
MOV a,0fh;
orma,temp;;temp=XXXX1111
get_column:;calculatecolumnnumber
MOV a,temp;loadtemp
xora,mask;;testcolumnnumber
snzz;;
jmpindex;no.testnextcolumn
ret;yes.return(TBLP)
index:;nextcolumn
inctblp;(9);tableindex+1
setc;
rlcmask;shiftmaskleft(LSB=1)
jmpget_column;repeatget_column
key_inendp
delaysproc;delaysubroutine
MOV a,0ffh;loadcounter
MOV count1,a;
d1:
sdzcount1;countdowncount1
jmpd1
ret
delaysendp

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

8位单片机在嵌入式设计领域已经成为半个多世纪以来的主流选择。尽管嵌入式系统市场日益复杂,8位单片机依然不断发展,积极应对新的挑战和系统需求。如今,Microchip推出的8位PIC®和AVR®单片机系列,配备了先进的独立...

关键字: 单片机 嵌入式 CPU

强强联手构筑顶级运营传播商业生态 北京2025年8月21日 /美通社/ -- 8月21日,2025GT世界挑战赛北京亦庄站战略合作座谈会在京成功举行,通过与权威媒体、新媒体传播平台及专业招商机构的深度合作,这项国际顶级...

关键字: 5G 矩阵 中国汽车 可持续发展

在嵌入式系统开发中,程序烧录是连接软件设计与硬件实现的关键环节。当前主流的单片机烧录技术已形成ICP(在电路编程)、ISP(在系统编程)、IAP(在应用编程)三大技术体系,分别对应开发调试、量产烧录、远程升级等不同场景。...

关键字: 单片机 ISP ICP IAP 嵌入式系统开发

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

本文中,小编将对单片机予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 单片机 开发板 Keil

在这篇文章中,小编将对PLC的相关内容和情况加以介绍以帮助大家增进对它的了解程度,和小编一起来阅读以下内容吧。

关键字: PLC 模块化 程序

香港2025年8月20日 /美通社/ -- 复锐医疗科技有限公司(英文"Sisram";简称"复锐医疗科技"或"公司",股份代号:1696.HK,连同其附属公司统称"集团"),今日公布截至2025年6...

关键字: AI LM BSP 矩阵

随着单片机系统越来越广泛地应用于消费类电子、医疗、工业自动化、智能化仪器仪表、航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁。电磁兼容性(EMC)包含系统的发射和敏感度两方面的问题。

关键字: 单片机 电磁兼容

以下内容中,小编将对单片机的相关内容进行着重介绍和阐述,希望本文能帮您增进对单片机的了解,和小编一起来看看吧。

关键字: 单片机 复位电路

在这篇文章中,小编将为大家带来单片机的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 单片机 异常复位
关闭