合泰HOLTEK 單片機 寫的,對初學者來說里面的分析思路很有幫助。
#include ht48c10-1.inc
;-------------------------------------------------------
data .section ’data’ ;== data section ==
temp db ? ;temporary data register
disp db ? ;key display register
count1 db ? ;delay loop counter
mask db ? ;mask register
matrix db ? ;key matrix register
;-------------------------------------------------------
code .section at 0 ’code’ ;== program section ==
org 00h ;
jmp start ;
org 04h ;external interrupt subroutine
reti ;for guarantee
org 08h ;timer/event 0 interrupt subroutine
reti ;for guarantee
org 0ch ;timer/event 1 interrupt subroutine
reti ;for guarantee
start: ;
clr iNTC ;initialize registers
clr tmrc ;to guarantee performance
clr tmr ;(interrupts)
set PAC ;(ports)
set pbc ;(input mode)
set pCC ;
main:
set pac ;(1);set port A to input mode
clr pbc ;set port B to output mode
clr pa ;zero port A (latch=0)
set pb ;off LEDs
keyloop: ;
MOV a,0feh ;(2);sCAN first row of keys
MOV matrix,a ;hold scan code
MOV pac,a ;pa.0 output 0 (latch)
MOV a,pa ;read input state
cpl acc ;;distill input state
and a,0f0h ;;
sz acc ;if any input?
jmp get_key ;yes. get input info
MOV a,0fdh ;(2);no. scan second row
MOV matrix,a ;hold scan code
MOV pac,a ;pa.1 output 0 (latch)
MOV a,pa ;read input state
cpl acc ;;distill input state
and a,0f0h ;;
sz acc ;if any input?
jmp get_key ;yes. get input info
MOV a,0fbh ;(2);no. scan third row
MOV matrix,a ;hold scan code
MOV pac,a ;pa.2 output 0 (latch)
MOV a,pa ;read input state
cpl acc ;;distill input state
and a,0f0h ;;
sz acc ;if any input?
jmp get_key ;yes. get input info
MOV a,0f7h ;(2);no. scan fourth row
MOV matrix,a ;hold scan code
MOV pac,a ;output pa.3 0 (latch)
MOV a,pa ;read input state
cpl acc ;;distill input state
and a,0f0h ;;
sz acc ;if any input?
jmp get_key ;yes. get input info
jmp keyloop ;repeat from keyloop
get_key: ;get input key info
call delays ;debounce
MOV a,pa ;test port A
or a,0fh ;
cpl acc ;
sz acc ;any key hold?
jmp go_on ;yes. go on (some key is pressed)
jmp keyloop ;no. return to scan key again
go_on:
call key_in ;(3) ;calculate table index
tabrdl disp ;(10);load display data
MOV a,disp ;;output data to port B
MOV pb,a ;(11);;
jmp keyloop ;repeat keyloop
key_in proc ;get key number
MOV a,pa ;;hold port A state
MOV temp,a ;(4) ;;
get_release: ;wait for the key to be released
MOV a,pa ;;test port A state
cpl acc ;;
and a,0f0h ;;
sz acc ;(6) ;if release?
jmp get_release ;no. keep up waiting
MOV a,0fh ;yes. calculate key number
andm a,matrix ;(7) ;mask low nibble of scan code
MOV a,0 ;keep table index at register A
get_row: ;calculate row number
rrc matrix ;;check each bit to get row number
snz status.0 ;;
jmp get_next ;if bingo goto get_next
clr c ;
add a,4h ;(8) ;table index +4 (4 keys a row)
jmp get_row ;continue calculating
get_next: ;
MOV tblp,a ;hold table index at register TBLP
MOV a,0efh ;
MOV mask,a ;; mask = 0111 1111
MOV a,0fh ;
orm a,temp ;; temp = XXXX 1111
get_column: ;calculate column number
MOV a,temp ;load temp
xor a,mask ;;test column number
snz z ;;
jmp index ;no. test next column
ret ;yes. return (TBLP)
index: ;next column
inc tblp ;(9) ;table index +1
set c ;
rlc mask ;shift mask left (LSB=1)
jmp get_column ;repeat get_column
key_in endp
delays proc ;delay subroutine
MOV a,0ffh ;load counter
MOV count1,a ;
d1:
sdz count1 ;count down count1
jmp d1
ret
delays endp
上一篇:HT1380實時時鐘程序
下一篇:HT48R50A的 RS232串口示例程序
推薦閱讀
史海拾趣
Digital Voice Systems, Inc.(DVSI)于1988年成立,當時正值數(shù)字通信技術(shù)的興起階段。公司創(chuàng)始人憑借對語音編解碼技術(shù)的深刻理解和前瞻性的市場洞察力,決定投身于這一領(lǐng)域。他們開發(fā)出了具有專利保護的基于魯棒性多帶激勵模型(MBE Model)的低碼率語音壓縮算法,如IMBE和AMBE編解碼系統(tǒng)。這些算法在當時的市場上獨樹一幟,為DVSI贏得了第一桶金。
在創(chuàng)立初期,DVSI面臨著資金、技術(shù)、市場等多方面的挑戰(zhàn)。然而,他們憑借著堅定的信念和不懈的努力,逐步克服了這些困難。他們不斷投入研發(fā),優(yōu)化算法,提高產(chǎn)品的性能和穩(wěn)定性;同時,他們積極開拓市場,與各大通信設(shè)備制造商建立合作關(guān)系,將產(chǎn)品推向市場。
隨著時間的推移,DVSI的產(chǎn)品逐漸在市場上獲得了認可。他們的編解碼系統(tǒng)被廣泛應用于移動通信、衛(wèi)星通信、軍事通信等領(lǐng)域,為客戶提供了高效、穩(wěn)定的語音通信解決方案。DVSI也因此逐漸嶄露頭角,成為了電子行業(yè)中一顆耀眼的明星。
故事二至五框架概述
- 技術(shù)創(chuàng)新與突破:DVSI在語音編解碼技術(shù)方面的持續(xù)創(chuàng)新,如推出新一代的高效壓縮算法,進一步提升了產(chǎn)品的競爭力。
- 市場拓展與國際化:隨著公司實力的增強,DVSI開始拓展國際市場,與全球多家知名企業(yè)建立合作關(guān)系,實現(xiàn)了國際化發(fā)展。
- 合作與競爭:在電子行業(yè)中,DVSI與其他企業(yè)的合作與競爭并存。他們通過合作共贏的方式,共同推動行業(yè)的發(fā)展;同時,也面臨著來自競爭對手的挑戰(zhàn)和競爭壓力。
- 企業(yè)文化與團隊建設(shè):DVSI注重企業(yè)文化建設(shè),倡導創(chuàng)新、協(xié)作、共贏的價值觀。他們注重團隊建設(shè),吸引了一批優(yōu)秀人才加入公司,為公司的發(fā)展提供了有力的人才保障。
以上故事和框架概述僅供參考,您可以根據(jù)這些線索進一步挖掘和編寫關(guān)于DVSI公司的故事。
在電子行業(yè)競爭日益激烈的情況下,Collins Electronics Corp面臨著巨大的挑戰(zhàn)。為了保持競爭優(yōu)勢,公司加大了研發(fā)投入,不斷優(yōu)化產(chǎn)品性能。同時,他們還加強了對市場趨勢的研究,以便及時調(diào)整產(chǎn)品策略。在一次行業(yè)技術(shù)革新中,公司憑借敏銳的市場洞察力和強大的研發(fā)能力,成功推出了一款符合市場需求的新產(chǎn)品,贏得了市場份額。
面對物聯(lián)網(wǎng)行業(yè)的快速發(fā)展和變化,樂鑫科技始終保持前瞻性的戰(zhàn)略眼光。公司積極布局未來市場,加大在人工智能、云計算等領(lǐng)域的研發(fā)投入,以滿足客戶對更智能化、更高效的物聯(lián)網(wǎng)應用的需求。同時,樂鑫科技還注重培養(yǎng)和引進優(yōu)秀人才,為公司未來的發(fā)展提供有力的人才保障。
請注意,以上內(nèi)容僅為概述性質(zhì)的故事框架,具體細節(jié)和數(shù)據(jù)可能需要根據(jù)實際情況進行調(diào)整和補充。
1999年,Carles Puente博士和Ruben Bonet聯(lián)合創(chuàng)立了Fractus公司,致力于將幾何結(jié)構(gòu)天線技術(shù)商業(yè)化。公司成立之初便取得了重大突破,獲得了全球首個分形天線和多重分形天線專利。這些專利不僅展示了Fractus在天線設(shè)計領(lǐng)域的領(lǐng)先地位,也為公司后續(xù)的發(fā)展奠定了堅實的技術(shù)基礎(chǔ)。
Dolphin Interconnect Solutions ASA深知創(chuàng)新是企業(yè)發(fā)展的根本動力。因此,公司不斷投入研發(fā)資源,鼓勵員工進行創(chuàng)新實踐。同時,Dolphin還注重人才培養(yǎng)和引進,建立了一支高素質(zhì)、專業(yè)化的技術(shù)團隊。這些人才為公司的發(fā)展提供了源源不斷的創(chuàng)新動力。
ADI的創(chuàng)業(yè)故事始于1965年,創(chuàng)始人Ray Stata與Matthew Lorber在美國馬薩諸塞州劍橋市的一座公寓地下室開始了他們的創(chuàng)業(yè)之路。最初,ADI并沒有直接涉足芯片制造,而是專注于開發(fā)運算放大器等分立器件,以提供精確放大的改良型電信號。這一決策是基于當時新興市場的需求,展現(xiàn)了兩位創(chuàng)始人的市場敏銳度和創(chuàng)新精神。
很久沒來了,想直接查看一下這段時間以來我沒有拜讀的貼子,可是找了半天也沒有找到一個方便的方法能把這些貼子搜出來。我想能不能在“搜索”里加上一個“未讀”選項,可以直接搜出我未曾讀過的貼子??或者直接加一個未讀功能卡也可以。 還有,有 ...… 查看全部問答∨ |
|
請問誰有關(guān)于水塔供水系統(tǒng)控制器設(shè)計與實現(xiàn)的程序與電路圖? 該項目要求設(shè)計單片機最小系統(tǒng),并運用所設(shè)計的最小系統(tǒng)對水塔供水系統(tǒng)的水位、壓力進行監(jiān)測,對水泵進行自動啟、停控制,實現(xiàn)每天定時啟動自動停止,以及水位、壓力超限告警,發(fā)揮部分要求能夠在壓力過低時進行自動補償保持恒壓供水。 要求系統(tǒng)具 ...… 查看全部問答∨ |
|
興大豪科技高薪誠聘以下職位 VC工程師 待遇在8k 精通VC++ ,熟悉SQLServer數(shù)據(jù)庫和基于socket網(wǎng)絡編程;有數(shù)控系統(tǒng)人機界面開發(fā)經(jīng)驗者優(yōu)先考慮。 硬件開發(fā)工程師 待遇在8k 崗位一:有電機控制項目5年以上開發(fā)經(jīng)驗,熟悉DSP編程和電 ...… 查看全部問答∨ |
|
真見鬼,TXEIE關(guān)閉,IDLEIE關(guān)閉,上電時候還是產(chǎn)生這兩個中斷往服務程序里跑. 已經(jīng)是先設(shè)置USART->CR寄存器后開中斷允許了,已經(jīng)把SR能直接清除的先清除了, 還往中斷里跑. 而且在初試化IO設(shè)為AF之后,接著USART_Init(),這兩者之間如果不加延 ...… 查看全部問答∨ |
上周五也就是第三天中午,老板拿來一個新板子,是萬利的,附帶的資料都挺完整的,,在IAR上也跑通了。 雖然在調(diào)試時費了不少心思。但總算可以做到在SRAM里仿真。 就是奇怪,一是沒辦法用FLASH仿真。 還有就是我們沒辦法通過它生成BIN 和HEX文件 ...… 查看全部問答∨ |
設(shè)計資源 培訓 開發(fā)板 精華推薦
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- 基于HW2181B的航模無線遙控通信系統(tǒng)設(shè)計與實現(xiàn)
- 應對機器人“四高”,極海推出全球首款雙核Cortex-M52 MCU G32R501
- 非道路移動機械透射式煙度計研究與實現(xiàn)
- 基于STM32F103的角磨機開關(guān)磁阻電機控制器的設(shè)計
- 英特爾發(fā)布全新GPU,AI和工作站迎來新選擇
- 重新思考數(shù)據(jù)中心架構(gòu),推進AI的規(guī)模化落地
- Samtec科普 | 一文入門射頻連接器
- 垂直農(nóng)業(yè)的挑戰(zhàn) | Samtec新型農(nóng)業(yè)漫談系列一
- 比克電池亮相CIBF 2025,全品類布局構(gòu)建發(fā)展“芯”引擎
- 欣旺達閃耀CIBF 2025:以閃充/固態(tài)電池/逸風電池等五大技術(shù)矩陣,領(lǐng)航全球能源革命
- 全新智己L6要做「下一代產(chǎn)品」
- 2025《國產(chǎn)車規(guī)芯片可靠性分級目錄》全新發(fā)布,電子版對整車和零部件企業(yè)免費開放
- 寧德時代推重卡換電標準,計劃三年內(nèi)電動化滲透率達50%
- 特斯拉FSD系統(tǒng)全球測試成功,無人駕駛技術(shù)再突破
- 直播已結(jié)束【解鎖 TI Sitara AM2x MCU 在電機驅(qū)動中的新可能】
- 恩智浦跨界處理器能玩出多少應用
- Intel白皮書下載有獎
- ST電機評測有獎大作戰(zhàn):領(lǐng)取任務卡,一起啃電機驅(qū)動難題!
- 瑞薩電子最新觸控微控制器R7F0C208入門套件免費申請,參與申請還能贏好禮!
- 2024安路科技FPGA技術(shù)研討會-廣州站 火熱報名中
- 有獎直播:是德科技高速芯片設(shè)計新技術(shù)研討會
- 2024 DigiKey 應用說:樹莓派 5 在視頻直播中的應用
- 看MCU精品課程,讓你立馬變身考試達人!
- Quartus Prime設(shè)計軟件15.1版 帶你體驗革命性的設(shè)計生涯