;*****************************************
; 78p153寄存器定義
;*****************************************
R0 == 0X0 ;間接尋址IAR
;****CONT REGISTE*************
; 7 6 5 4 3 2 1 0
; - INT TS TE PAB PSR2 PSR1 PSR2
; PSR TCC RATE WDT RATE
; 000 1:2 1:1
; 001 1:4 1:2
; 010 1:8 1:4
; 011 1:16 1:8
; 100 1:32 1:16
; 101 1:64 1:32
; 110 1:128 1:64
; 111 1:256 1:128
;---------------------------------
; PAB 0:TCC 1:WDT
; TE TCC信號邊沿選擇位。0:由高到低加1。 1:由低到高加1
; TS TCC信號源 0:內部時鐘。 1:外部輸入(P62/TCC)
; INT 中斷使能標志 0:由DISI或硬件中斷屏蔽,1:由ENI/RETL使能中斷。
TCC == 0X1
PC == 0X2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
STATUS == 0X3
C == 0
DC == 1
Z == 2
P == 3 ;執(zhí)行SLEP時置為0
T == 4 ;時間溢出時置為0
GP0 == 5 ;
GP1 == 6 ;
RST == 7 ;復位類型,由引腳喚醒時置1,其它復位置0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
R4 == 0X4
PORT5 == 0X5
IOC5 == 0X5
PORT6 == 0X6
IOC6 == 0X6
IOCB == 0X0B ;為0將P50,P51,P52, P60,P61,P62下拉
IOCC == 0X0C ;為0將P60,P61,P62, P64,P65,P66,P67漏極開路
IOCD == 0X0D ;為0將P60,P61,P62, P64,P65,P66,P67上拉
;0: 為允許使能。 1:為禁止
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IOCE == 0X0E ;WDT控制器
WDTE == 7 ;0:禁止,1:允許
EIS == 6 ;0:P60,雙向I/O口,1:外部中斷管腳。此時IOC6的
BIT0置為1(輸入)
;為“0”時,/通道被屏蔽。INT為“1
”時,可通由P6口讀取其狀態(tài)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ISR == 0XF ;中斷狀態(tài)寄存器
TCIF == 0 ;TCC溢出時置1,軟件清0
ICIF == 1 ;P6口輸入變化置1,軟件清0
EXIF == 2 ;外部中斷,由P60/INT下降沿置1,軟件清0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IOCF == 0XF ;中斷屏蔽寄存器
TCIE == 1 ;0:為中斷禁止。1為中斷允許
ICIE == 2 ;
EXIE == 3 ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;本程序的要點是計算電源頻率進行計數(shù)實現(xiàn)同步。
;保證通電后基本同步開工
a_temp == 0x10 ;中斷子程序中保存A
tcount1 == 0x11 ;節(jié)拍計數(shù)1
tcount2 == 0x12 ;節(jié)拍計數(shù)2
tick == 0x13 ;節(jié)拍常量值1
chtb == 0x14 ;查表序號值
count2 == 0x15 ;定時計數(shù)值
temp == 0x16 ;臨時計數(shù)器
temp2 == 0x17
code == 0x18 ;輸出代碼
lamp == 0x19 ;用于閃爍計數(shù)
spcode == 0x1a ;代表速度的代碼
stflag == 0x1b ;是否進入一拍標志
ifdrim == 0x1c ;是否夢幻
code2 == 0x1d ;
tcount3 == 0x1e
teMP3 == 0x1f
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;開始
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0x0
jmp main
;;;;;;;;;;;;;;;;;;;;;;;;
;中斷計數(shù)子程序
;;;;;;;;;;;;;;;;;;;;;;;;
;龍圖開發(fā)網(wǎng) http://www.longtoo.com 原創(chuàng),轉載請注明出處
org 0x8
intext:
MOV a_temp,a
bc stflag,7 ;這是是否要進入下一態(tài)的標志位
clr port5
clr port5 ;中斷后先清0。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;僅用于指示燈
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
inc lamp ;lamp是指示燈計數(shù)寄存器,也可以用別的方法
代替
inca spcode ;速度代碼0,1,2,3。加1后代入a中
MOV temp2,a ;temp2是局部變量,通過加1成為1,2,3,4。后再減1
判0的方
djz temp2 ;式來進行指示
jmp speed2
speed1:
jbc lamp,3
jmp lampset1
bc port6,1
jmp lampok
lampset1:
bs port6,1
jmp lampok
speed2:
djz temp2
jmp speed3
jbc lamp,4
jmp lampset2
bc port6,1
jmp lampok
lampset2:
bs port6,1
jmp lampok
speed3:
djz temp2
jmp speed4
jbc lamp,5
jmp lampset3
bc port6,1
jmp lampok
lampset3:
bs port6,1
jmp lampok
speed4:
jbc lamp,6
jmp lampset4
bc port6,1
jmp lampok
lampset4:
bs port6,1 ;port6,1用于指示燈
jmp lampok
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lampok:
call delay100u ;調用廷時子程序越過0點
jbc ifdrim,0 ;是否夢幻,ifdrim判斷是否夢幻
jmp intext2 ;有夢幻,
;;;;;;;;;;;;;;;;;;;;;;;;;;
;非夢幻子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;
intext1:
MOV a,code ;輸出代碼
MOV port5,a
djz tcount1 ;tcount1是主計數(shù)器
jmp intend
MOV a,tick ;tick中有一個常量值
MOV tcount1,a ;在中斷子程序內加載數(shù)據(jù)
bs stflag,7 ;tcount1為0要查表
jmp intend
;;;;;;;;;;;;;;;;;;;;;;;;;;
;夢幻子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;
intext2:
djz tcount2 ;同一級亮度存在拍數(shù)由 spcode查表得到
jmp intext21
MOV a,tick ;這是一個查表得來的值
MOV tcount2,a
;;;;;;;;;;;;;;;;;;;;;;;;;;
djz tcount1 ;tcount1表示節(jié)拍
jmp intext21
bs stflag,7
inc tcount1 ;重置查表標志
/*;;;;;;;;;;;;;;;;;;;;;;;;;
;tcount1!=tcount3
;;;;;;;;;;;;;;;;;;;;;;;;;
intext25:
MOV a,tcount1
sub a,tcount3
jbc status,c ;若為1則無借位,tcount1>tcount3
jmp intext27
MOV temp3,a ;差放入temp3中
inc temp3
inc temp3
MOV a,tcount3
MOV temp,a
intext28:
call delay100u ;第一波廷時
djz temp
jmp intext28
MOV a,code2 ;先輸出code2,即處于消暗的代碼
MOV port5,a
intext29:
call delay100u
djz temp3
jmp intext29
MOV a,code ;再輸出code,即處于上漲的代碼
MOV port5,a
jmp intext21
intext27:
MOV a,tcount3
sub a,tcount1
MOV temp3,a
inc temp3
inc temp3
MOV a,tcount1
MOV temp,a
intext30:
call delay100u
djz temp
jmp intext30
MOV a,code ;輸出code,即處于上漲的代碼
MOV port5,a
intext31:
call delay100u
djz temp3
jmp intext31
MOV a,code2 ;輸出code2,即處于消暗的代碼
MOV port5,a
;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
;龍圖開發(fā)網(wǎng) http://www.longtoo.com 原創(chuàng),轉載請注明出處
intext21:
jbs code,7 ;判斷是漸亮還時漸滅
jmp intext22 ;這里是亮度變化趨勢區(qū)分點
MOV a,tcount1 ;code,7為1,則亮度漸亮
MOV temp,a
intext23:
call delay100u ;這是個定長廷時子程序,如能用定時器會更好
,那有可能利于加上按健功能
djz temp
jmp intext23
MOV a,code ;輸出已準備好的代碼
MOV port5,a ;
jmp intend
intext22:
MOV a,tcount1 ;亮度為漸暗
add a,@91 ;與160對應產(chǎn)生不過0的廷時
MOV temp,a
com temp ;得到漸暗方式的代碼
intext24:
call delay100u
djz temp
jmp intext24
MOV a,code
MOV port5,a
call delay100u
call delay100u
intend:
MOV a,a_temp
clr isr ;這一指令不能少
reti
;;;;;;;;;;;;;;;;;;;;;;;;;;;
spmode1:
add pc,a
retl 10
retl 10
retl 20
retl 30
retl 60
tbmode1: ;跑馬1的
add pc,a
retl 0b00000000 ;4
retl 0b00001000
retl 0b00000100
retl 0b00000010
retl 0b00000001
tbmode2:
add pc,a
retl 0b00000000 ;32
retl 0b00000001
retl 0b00000001
retl 0b00001001
retl 0b00001101
retl 0b00001111
retl 0b00001111
retl 0b00001110
retl 0b00000110
retl 0b00000010
retl 0b00000010
retl 0b00000011
retl 0b00001011
retl 0b00001111
retl 0b00001111
retl 0b00001101
retl 0b00001100
retl 0b00000100
retl 0b00000100
retl 0b00000110
retl 0b00000111
retl 0b00001111
retl 0b00001111
retl 0b00001011
retl 0b00001001
retl 0b00001000
retl 0b00001000
retl 0b00001100
retl 0b00001110
retl 0b00001111
retl 0b00001111
retl 0b00000111
retl 0b00000011
retl 0b00000001
spmode4:
add pc,a
retl 1
retl 1
retl 1
retl 1
retl 1
tbmode3:
add pc,a
retl 0b00000000 ;8
retl 0b00001100
retl 0b10001100
retl 0b00000110
retl 0b10000110
retl 0b00000011
retl 0b10000011
retl 0b00001001
retl 0b10001001
tbmode4:
add pc,a
retl 0b00000000 ;6
retl 0b00001111
retl 0b10001111
retl 0b00000000
retl 0b00001111
retl 0b10001111
tbmode5:
add pc,a
retl 0b00000000
retl 0b00001001
retl 0b00000011
retl 0b00000110
retl 0b00001100
retl 0b00001001
retl 0b00000011
retl 0b00000110
retl 0b00000011
retl 0b00001001
retl 0b00001100
retl 0b00000110
retl 0b00000011
;龍圖開發(fā)網(wǎng) http://www.longtoo.com 原創(chuàng),轉載請注明出處
org 0x100
main:
clr lamp
MOV a,@0xf0 ;設置PORT5
iow ioc5
clr port5
MOV a,@0xf0
iow iocb
MOV a,@0b11111101 ;設置PORT6.
iow ioc6
MOV a,@0x02 ;P6口上拉
iow iocd
MOV a,port6 ;讀入P6口的拔碼開關值
nop
MOV a,port6
MOV spcode,a
rlc spcode ;把高2位左移到低2位
rlc spcode
rlc spcode
MOV a,@0x03 ;屏蔽高6位
and spcode,a ;保存速度代碼,這個代碼是公用的
init:
MOV a,@04 ;開外部中斷
iow iocf
MOV a,@0x40
iow ioce
eni ;開總中斷
;jmp mode4
;;;;;;;;;;;;;;;;;;;;;;;;;;
;跑馬1,單燈跑馬
;;;;;;;;;;;;;;;;;;;;;;;;;;
mode1:
clr ifdrim
MOV a,@10+5
MOV count2,a ;COUNT2決定這一模式總循環(huán)次數(shù)
MOV a,spcode ;根據(jù)開關代碼查到它對應的值
call spmode1
MOV tick,a ;這里可以省去tick2了,40/80/120/160
mode13:
bc stflag,0 ;表示不夢幻
MOV a,@04
MOV chtb,a
mode12:
MOV a,chtb
call tbmode1 ;跑馬1的代碼表。
MOV code,a
bc stflag,7 ;讓查表標志清0
MOV a,tick ;在中斷子程序中也有這一句
MOV tcount1,a
mode10:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7 ;判斷是否要進行查表
jmp mode10 ;tcountl若為0則進入下一拍
djz chtb
jmp mode12
djz count2
jmp mode13
;;;;;;;;;;;;;;;;;;;;;;;;;;
;跑馬2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode2:
clr ifdrim
MOV a,@4
MOV count2,a ;決定這一模式總循環(huán)次數(shù)
MOV a,spcode ;根據(jù)開關代碼查到它對應的值
call spmode1
MOV tick,a ;這里可以省去tick2了,40/80/120/160
mode23:
bc stflag,0 ;表示不夢幻
MOV a,@32
MOV chtb,a
mode22:
MOV a,chtb
call tbmode2
MOV code,a
bc stflag,7 ;讓查表標志清0
MOV a,tick ;在中斷子程序中也有這一句
MOV tcount1,a
mode20:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7 ;判斷是否要進行查表
jmp mode20 ;tcountl若為0則進入下一拍
djz chtb
jmp mode22
djz count2
jmp mode23
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;以下為夢幻模式,只計總時間
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode3:
clr ifdrim
com ifdrim ;這是夢幻的標志,它是不變的
MOV a,@5 ;進行的時間
MOV count2,a ;count2決定了該模式的工作時間
MOV a,spcode
call spmode4
MOV tick,a
MOV a,tick ;這個值由開機時決定,為4
MOV tcount2,a ;決定同一亮度級別存在時間,為10ms的倍數(shù)
mode33:
MOV a,@8
MOV chtb,a
mode32:
MOV a,chtb
call tbmode3 ;查表tbmode4
MOV code,a ;進入代
bc stflag,7 ;讓查表標志清0
MOV a,@160
MOV tcount1,a
mode31:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7
jmp mode31
djz chtb
jmp mode32
djz count2
jmp mode33
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;以下為夢幻模式,只計總時間
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode4:
clr ifdrim
com ifdrim ;這是夢幻的標志,它是不變的
MOV a,@4 ;進行的時間
MOV count2,a ;count2決定了該模式的工作時間
; MOV a,spcode
;call spmode4
; MOV tick,a
MOV a,@1 ;這個值由開機時決定,為4
MOV tcount2,a ;決定同一亮度級別存在時間,為10ms的倍數(shù)
mode43:
MOV a,@5
MOV chtb,a
mode42:
MOV a,chtb
call tbmode4 ;查表tbmode4
MOV code,a ;進入代
bc stflag,7 ;讓查表標志清0
MOV a,@160
MOV tcount1,a
mode41:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7
jmp mode41
djz chtb
jmp mode42
djz count2
jmp mode43
;;;;;;;;;;;;;;;;;;;;;;;;;;
;跑馬5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mode5:
clr ifdrim
MOV a,@15
MOV count2,a ;決定這一模式總循環(huán)次數(shù)
MOV a,spcode ;根據(jù)開關代碼查到它對應的值
call spmode1
MOV tick,a ;這里可以省去tick2了,40/80/120/160
mode53:
bc stflag,0 ;表示不夢幻
MOV a,@12
MOV chtb,a
mode52:
MOV a,chtb
call tbmode5
MOV code,a
bc stflag,7 ;讓查表標志清0
MOV a,tick ;在中斷子程序中也有這一句
MOV tcount1,a
mode50:
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jbs stflag,7 ;判斷是否要進行查表
jmp mode50 ;tcountl若為0則進入下一拍
djz chtb
jmp mode52
djz count2
jmp mode53
jmp mode1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;延時子程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
delay100u:
MOV a,@10
MOV temp2,a
nop
nop
nop
nop
nop
nop
delay100:
nop
nop
nop
nop
nop
nop
djz temp2
jmp delay100 ;循環(huán)體內定時4US,當F=4MHz,D=2
ret
上一篇:義隆單片機PT2262無線解碼程序
下一篇:LED跳機控制程序
推薦閱讀
史海拾趣
為了進一步拓展國際市場,Corstat Containers公司積極尋求與國際知名電子企業(yè)的合作。通過參加國際電子展會、建立海外銷售渠道等方式,公司成功打開了多個國家的市場。同時,公司還與國外科研機構展開合作,共同研發(fā)更加先進的電子產(chǎn)品包裝技術,為公司的長期發(fā)展奠定了堅實的基礎。
EQCOLOGIC的創(chuàng)始人在一次偶然的機會中,發(fā)現(xiàn)了一種新型電子材料的獨特性能。這種材料不僅具有優(yōu)異的導電性,還具有出色的熱穩(wěn)定性和耐腐蝕性。他敏銳地意識到這種材料在電子行業(yè)中的巨大潛力,于是決定成立EQCOLOGIC公司,專注于這種新型電子材料的研發(fā)和應用。經(jīng)過幾年的努力,EQCOLOGIC成功將這種材料商業(yè)化,并憑借其獨特的性能,在電子行業(yè)中嶄露頭角。
ADPOW公司始終將技術研發(fā)作為公司發(fā)展的核心驅動力。公司投入大量資源用于研發(fā)新技術、新產(chǎn)品,不斷推陳出新。同時,公司積極與高校、研究機構等合作,引進先進技術和人才,為公司的持續(xù)發(fā)展注入新的活力。
Clover Display Limited的創(chuàng)始團隊最初是Kontoy Products Company Limited的成員,專注于電子板組裝。隨著技術的不斷進步和市場需求的轉變,團隊意識到液晶顯示技術的巨大潛力。于是,在1983年,他們決定成立一家專注于顯示器研發(fā)與銷售的新公司——Clover Display Limited。初期,公司面臨著資金短缺、技術壁壘等多重挑戰(zhàn),但憑借著對技術的熱情和市場的敏銳洞察力,他們逐步攻克難關,開始在液晶顯示領域嶄露頭角。
在20世紀的后半葉,ALCOA繼續(xù)在技術上取得重大突破。例如,在40年代,公司采用N-40(Niagara)50kA中心下料預焙陽極電解槽技術為政府建造了鋁冶煉廠。此外,公司還不斷擴大海外業(yè)務,建立了全球性的生產(chǎn)和銷售網(wǎng)絡。這種全球布局使得ALCOA能夠更好地滿足不同地區(qū)的市場需求,也增強了公司的競爭力。
本人在工程中使用的開關電源,使用中感覺毛刺比較大,一部分電源模塊會導致數(shù)字電路不正常工作(換電源模塊或著直流后數(shù)字模塊正常),所以想請教一下大俠,我的開關電源的毛刺大嗎?輸出為5v直流。有沒有什么好的方法能夠抑制一下? … 查看全部問答∨ |
|
MFC requires WINVER to be #defined to 0x0400 or greater 項目建立的時候是wm5.0,后來選擇別的模擬器,編譯的時候出現(xiàn)“MFC requires WINVER to be #defined to 0x0400 or greater”,應該如何解決?… 查看全部問答∨ |
我想在鍵盤上一鍵彈出計算器 我使用了WinExec(\"calc.exe\",SW_SHOWNORMAL); 但是編譯不能通過,報錯\'WinExec\' undefined; assuming extern returning int \'SW_SHOWNORMAL\' : undeclared identifier 使用ShellExecute(NULL,\"open\",\"calc ...… 查看全部問答∨ |
條碼手持終端開發(fā)工程師 1. 2名,大專以上學歷; 2. 了解制造業(yè)物流業(yè)務和條碼/RFID技術,有倉庫和生產(chǎn)線條碼/RFID手持終端開發(fā)經(jīng)驗。 3. 熟悉C#語言編程 ...… 查看全部問答∨ |
|
各位大俠,目前手頭有個設計任務,征集個方案主要情況是這個樣子:板卡由BGA核心板(現(xiàn)有模塊)+DA模擬輸出部分+恒流源運放電路+AD采集模塊幾部分主要技術難點就在于高精度正負恒流源的設計和實現(xiàn),技術要求如下: 1提供八路獨立正負恒流源恒流源量 ...… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- 2025中國工博會集成電路展區(qū)陣容揭曉!行業(yè)巨頭齊聚,共繪“芯”藍圖
- 消息稱三星在美“特斯拉專供”2nm 生產(chǎn)線 2026H2 投運,初期產(chǎn)能每月 1~1.5 萬片晶圓
- 黑客如何入侵軟件定義的汽車
- 中國首款國芯腦機智能頭環(huán)正式發(fā)布:非侵入式腦機 全自主國產(chǎn)芯片
- 自動駕駛中Transformer大模型會取代深度學習嗎?
- 這家面板廠在車載OLED領域或再迎新大單
- 激光雷達和攝像頭,誰會是機器人主要的“眼睛”?
- 毫米波雷達技術參數(shù)有哪些?毫米波雷達如何用于機器人導航
- 毫米波雷達技術有哪些優(yōu)勢?如何提高毫米波雷達測距精度
- 工業(yè)邊緣設備的安全啟動,TPM 2.0與可信執(zhí)行環(huán)境(TEE)的硬件級防護