;顯示字用查表法,不占內存,用四個16*16共陽LED點陣顯示,
;效果:向上滾動顯示字,每次四個,重復循環。
;R2:行掃描地址(從00-0FH)。
;R3:滾動顯示時控制移動速度,也可控制靜止顯示的時間。
ORG 0000H
AJMP START
ORG 000BH ;T0
AJMP INTT0
ORG 0030H
;***************初始化程序 ;
START: MOV P2,#7FH ;清LED
MOV 20H,#00H ;清標志,00H為1幀掃描結束標志
CLR P1.6 ;串行寄存器打入輸出端控制位
MOV TMOD,#01H ;使用T0作16位定時器,行掃描用。
MOV TH0,#0FCH ;1ms初值(12MHz)
MOV TL0,#18H
MOV SCON,#00H ;串口0方式傳送顯示字節
MOV IE,#82H ;T0中斷允許,總中斷允許
MOV SP,#70H
LCALL DIS1 ;顯示準備,黑屏,1.5秒
MAIN: MOV DPTR,#TAB
LCALL MOV DISP ;逐排顯示,每次四字)
MOV DPTR,#TAB
LCALL MOV DISP1 ;滾動顯示,每排四字)
AJMP MAIN
; 四字逐排顯示子程序 ;
;每次四字移入移出顯示方式,入口時定義好DPTR值
MOV DISP: MOV R1,#6 ;顯示6排字,每排四字(R1=排數)
DISLOOP: MOV R3,#100 ;每排顯示時間1.6*100=1.6S
DIS MOV : MOV R2,#00H ;第0行開始
SETB TR0 ;開掃描(每次一幀)
WAIT MOV : JBC 00H,DISMOV1 ;標志為1掃描一幀結束(16毫秒為1幀,每行1毫秒)
AJMP WAIT MOV
DIS MOV 1: DJNZ R3,DISMOV ;1幀重復顯示(控制顯示時間)
MOV A,#128 ;顯示字指針移一排(每排4字*32=128)
ADD A,DPL ;
MOV DPL,A
MOV A,#0
ADDC A,DPH
MOV DPH,A
DEC R1 ;R1為0,顯示完
MOV A,R1
JZ MOV OUT ;
AJMP DISLOOP ;
MOV OUT: RET ;移動顯示結束
;********************;
; 四字滾動顯示子程序 ;
;每排四字向上移出顯示方式,入口時定義好DPTR值
MOV DISP1: MOV R1,#255 ;向上移動顯示6排字,每排四字(R1=排數*16)
DISLOOP1: MOV R3,#10 ;移動速度1.6*10=0.16S
DIS MOV 2: MOV R2,#00H ;第0行開始
SETB TR0 ;開掃描(每次一幀)
WAIT MOV 1: JBC 00H,DISMOV3 ;標志為1掃描一幀結束(16毫秒為1幀,每行1毫秒)
AJMP WAIT MOV 1
DIS MOV 3: DJNZ R3,DISMOV2 ;1幀重復顯示(控制移動速度)
INC DPTR ;顯示字指針移一行(二字節位置)
INC DPTR
DEC R1 ;R1為0,顯示完
MOV A,R1
JZ MOV OUT1 ;
AJMP DISLOOP1 ;
MOV OUT1: RET ;移動顯示結束
;*****************;
; 四個字顯示子程序 ;
;靜止顯示表中某四個字
DIS1: MOV R3,#5AH ;靜止顯示時間控制(16MS*#=1.6秒)
DIS11: MOV R2,#00H ;一幀掃描初始值(行地址從00-0FH)
MOV DPTR,#TAB ;取表首址
SETB TR0 ;開掃描(每次一幀)
WAIT11: JBC 00H,DIS111 ;為1,掃描一幀結束
AJMP WAIT11
DIS111: DJNZ R3,DIS11
RET
; 掃描程序 ;
;************;
;1MS傳送一行,每行顯示1毫秒,一次傳送四個字的某行共8個字節.
INTT0: PUSH ACC
MOV TH0,#0FCH ;1ms初值重裝
MOV TL0,#18H
MOV A,#97 ;指向第四個字行右字節
ADD A,DPL
MOV DPL,A
MOV A,#0
ADDC A,DPH
MOV DPH,A
MOV A,#0
MOV C A,@A+DPTR ;查表
MOV SBUF,A ;串口0方式發送
WAIT: JBC TI,GO ;等待發送完畢
AJMP WAIT ;
GO: MOV A,DPL ;指向第四個字行左字節
SUBB A,#1
MOV DPL,A
MOV A,DPH
SUBB A,#0
MOV DPH,A
MOV A,#0
MOV C A,@A+DPTR
MOV SBUF,A
WAIT1: JBC TI,GO1
AJMP WAIT1
;
GO1: MOV R0,#03H
MLOOP: MOV A,DPL ;指向前三個字行右字節
SUBB A,#31
MOV DPL,A
MOV A,DPH
SUBB A,#0
MOV DPH,A
MOV A,#0
MOV C A,@A+DPTR ;查表
MOV SBUF,A ;串口0方式發送
WAIT2: JBC TI,GO2 ;等待發送完畢
AJMP WAIT2 ;
GO2: MOV A,DPL ;指向前三個字行左字節
SUBB A,#1
MOV DPL,A
MOV A,DPH
SUBB A,#0
MOV DPH,A
MOV A,#0
MOV C A,@A+DPTR
MOV SBUF,A
WAIT3: JBC TI,GO3
AJMP WAIT3
GO3: DJNZ R0,MLOOP ;執行三次
SETB P1.7 ;關行顯示,準備涮新
NOP ;串口寄存器數據穩定
SETB P1.6 ;產生上升沿,行數據打入輸出端
NOP ;
NOP ;
CLR P1.6 ;恢復低電平
MOV A,R2 ;修改顯示行地址
ORL A,#0F0H ;修改顯示行地址
MOV R2,A ;修改顯示行地址
MOV A,P1 ;修改顯示行地址
ORL A,#0FH ;修改顯示行地址
ANL A,R2 ;修改顯示行地址
MOV P1,A ;修改完成
CLR P1.7 ;開行顯示
INC R2 ;下一行掃描地址值
INC DPTR ;
INC DPTR ;下一行數據地址
MOV A,R2
ANL A,#0FH
JNZ GO4
SETB 00H ;R2為10H,現為末行掃描,置1幀結束標志
MOV A,DPL ;指針修正為原幀初值
SUBB A,#32
MOV DPL,A
MOV A,DPH
SUBB A,#0
MOV DPH,A
CLR TR0 ;一幀掃描完,關掃描
GO4: POP ACC
RETI ;退出
;***************;
; 掃描文字表 ;
;***************;
; 共五排字,每排四個字,前后為黑屏
TAB:
DB 000H,0C0H,000H,0C0H,0FCH,0FCH,0FCH,0FCH,00DH,08CH,06DH,08CH,06BH,060H,038H,060H ;
DB 018H,060H,018H,060H,03CH,070H,064H,0D8H,0E1H,08CH,043H,006H,006H,000H,000H,000H ; "歡" 0
DB 001H,080H,067H,0FCH,067H,07CH,036H,06CH,006H,06CH,0F6H,06CH,0F6H,06CH,036H,06CH ;
DB 036H,06CH,037H,07CH,036H,06CH,030H,060H,038H,000H,06FH,0FEH,0C7H,0FEH,000H,000H ; "迎" 1
DB 001H,080H,001H,080H,031H,088H,019H,098H,019H,0B0H,009H,0A0H,0FFH,0FEH,0FFH,0FEH ;
DB 006H,0C0H,006H,0C0H,006H,0C0H,00CH,0C4H,018H,0C6H,0F0H,0FEH,060H,07CH,000H,000H ; "光" 2
DB 000H,0C0H,018H,0C0H,0D9H,0FCH,0D9H,0FCH,0DBH,000H,0DEH,060H,0D8H,030H,0DBH,0FCH ;
DB 0DBH,0FCH,0DBH,06CH,0DBH,06CH,0DBH,06CH,0DBH,0FCH,01BH,0FCH,01BH,00CH,000H,000H ; "臨" 3
DB 000H,000H,0FDH,0FCH,0FDH,0FCH,058H,060H,031H,0FCH,0FDH,08CH,0FDH,0ACH,035H,0ACH ;
DB 031H,0ACH,031H,0ACH,031H,0ACH,030H,060H,030H,0D8H,071H,08CH,063H,006H,000H,000H ; "預" 4
DB 060H,000H,033H,0FCH,003H,0FCH,0FBH,00CH,0FBH,00CH,01BH,00CH,033H,0FCH,033H,0FCH ;
DB 079H,0B0H,0FDH,0B0H,035H,0B0H,031H,0B6H,033H,036H,03EH,03EH,034H,01CH,000H,000H ; "祝" 5
DB 003H,000H,003H,000H,003H,000H,003H,000H,07FH,0FCH,07FH,0FCH,003H,000H,003H,000H ;
DB 003H,000H,007H,080H,006H,0C0H,00CH,060H,018H,030H,030H,018H,060H,00CH,000H,000H ; "大" 6
DB 003H,000H,07FH,0FCH,07FH,0FCH,060H,00CH,01FH,0F0H,01FH,0F0H,006H,018H,01FH,030H ;
DB 077H,060H,00DH,0F0H,03BH,0D0H,076H,0D8H,00CH,0CCH,07BH,0C4H,063H,080H,000H,000H ; "家" 7
DB 003H,000H,01FH,0F8H,01FH,0F8H,018H,018H,01FH,0F8H,018H,018H,01FH,0FAH,018H,01EH ;
DB 07FH,0FCH,07FH,0F8H,000H,0D8H,003H,098H,00FH,018H,07CH,078H,070H,070H,000H,000H ; "身" 8
DB 018H,060H,018H,060H,030H,060H,037H,0FEH,077H,0FEH,070H,0E0H,0F1H,0F0H,0B1H,0F8H ;
DB 033H,068H,032H,064H,037H,0FEH,03DH,0FAH,030H,060H,030H,060H,030H,060H,000H,000H ; "體" 9
DB 030H,030H,03EH,0FCH,03EH,0FCH,066H,034H,067H,0FEH,0EDH,0FEH,0EEH,034H,06EH,0FCH ;
DB 062H,030H,06AH,0FCH,06EH,030H,064H,0FEH,06EH,030H,07BH,0FEH,060H,0FEH,000H,000H ; "健" 10
DB 001H,080H,07FH,0FEH,07FH,0FEH,061H,080H,06FH,0F8H,061H,098H,07FH,0FEH,061H,098H ;
DB 06FH,0F8H,069H,0C0H,06DH,0D8H,067H,0B0H,06DH,09CH,0D9H,08CH,043H,080H,000H,000H ; "康" 11
DB 000H,000H,0FFH,0FCH,0FFH,0FCH,006H,000H,006H,000H,007H,0F0H,007H,0F0H,00CH,030H ;
DB 00CH,030H,00CH,030H,018H,030H,018H,030H,030H,030H,061H,0E0H,0C0H,0C0H,000H,000H ; "萬" 12
DB 001H,080H,07FH,0FEH,07FH,0FEH,001H,080H,03FH,0F8H,031H,098H,03FH,0F8H,001H,080H ;
DB 03FH,0FCH,001H,08CH,0FFH,0FEH,001H,08CH,03FH,0FCH,001H,080H,007H,000H,000H,000H ; "事" 13
DB 018H,000H,018H,000H,018H,0FCH,0FEH,0FCH,0FEH,0CCH,036H,0CCH,036H,0CCH,036H,0CCH ;
DB 066H,0CCH,036H,0CCH,01CH,0CCH,01CH,0FCH,036H,0FCH,062H,0CCH,0C0H,000H,000H,000H ; "如" 14
DB 001H,080H,07FH,0FCH,07FH,0FCH,00CH,060H,07FH,0FEH,000H,000H,01FH,0F8H,018H,018H ;
DB 01FH,0F8H,018H,018H,01FH,0F8H,001H,000H,02DH,08CH,06CH,0B6H,0C7H,0F2H,000H,000H ; "意" 15
DB 000H,000H,03FH,0F8H,03FH,0F8H,001H,080H,001H,080H,001H,080H,07FH,0FEH,07FH,0FEH ;
DB 001H,080H,003H,0C0H,006H,060H,00CH,030H,018H,018H,070H,00EH,060H,006H,000H,000H ; "天" 16
DB 000H,000H,03FH,0F8H,03FH,0F8H,001H,080H,001H,080H,001H,080H,07FH,0FEH,07FH,0FEH ;
DB 001H,080H,003H,0C0H,006H,060H,00CH,030H,018H,018H,070H,00EH,060H,006H,000H,000H ; "天" 17
DB 000H,000H,07FH,0FCH,07FH,0FCH,00CH,060H,00CH,060H,00CH,060H,0FFH,0FEH,0FFH,0FEH ;
DB 00CH,060H,00CH,060H,00CH,060H,018H,060H,018H,060H,070H,060H,020H,060H,000H,000H ; "開" 18
DB 000H,000H,003H,000H,001H,080H,000H,080H,000H,000H,006H,010H,036H,018H,036H,00CH ;
DB 066H,006H,066H,006H,046H,010H,006H,018H,007H,0F8H,003H,0F0H,000H,000H,000H,000H ; "心" 19
END
上一篇:液晶1602雙機串口通信
下一篇:按鍵控制數碼管顯示時間程序
推薦閱讀
史海拾趣
隨著公司實力的不斷增強,Cellergy公司開始將目光投向全球市場。公司先后在多個國家和地區設立了分公司或辦事處,以便更好地服務當地客戶。同時,Cellergy公司還積極參加國際電子展會和技術交流活動,與全球同行分享經驗和技術成果。這些舉措不僅提升了Cellergy公司的國際影響力,也為其在全球市場的拓展奠定了堅實基礎。
以上五個故事都是關于Cellergy公司在電子行業里發展起來的虛構案例,每個故事都強調了Cellergy公司在技術、合作、研發、品質以及國際化布局方面的努力和成就。這些故事雖然不代表Cellergy公司的真實發展歷程,但可以為我們提供一個了解該公司發展脈絡的參考框架。
在電子行業的快速發展中,Cellergy公司以一項創新技術打破了行業內的常規。該公司成功研發出了一種新型電容器,其性能遠超市場上同類產品。這一技術突破不僅為Cellergy公司贏得了大量訂單,還使其在電子行業中的地位得到了顯著提升。隨著技術的不斷完善和市場的不斷拓展,Cellergy公司逐漸成為了電容器領域的佼佼者。
隨著公司業務的不斷擴展,愛浦電子于XXXX年成立了廣州優聯電氣科技有限公司作為其分支機構。這一舉措不僅進一步擴大了公司的業務范圍和市場影響力,還為公司提供了更多的發展機遇和合作伙伴。廣州優聯電氣科技有限公司在愛浦電子的業務開拓、經營及配套服務方面發揮了重要作用,推動了公司整體業務的快速發展。
這五個故事只是愛浦電子發展起來的一部分縮影,它們展現了公司在技術創新、市場拓展、服務升級、創新引領以及分支機構成立等方面的努力和成就。正是這些不懈的努力和持續的進步,使得愛浦電子在電子行業中脫穎而出,成為一家備受矚目的高新技術企業。
在追求經濟效益的同時,AMP公司也積極履行社會責任,致力于實現可持續發展。公司注重環保和節能減排,采用先進的生產工藝和設備,減少對環境的影響。此外,公司還積極參與社會公益事業,為社會發展和進步貢獻力量。這些舉措不僅提升了AMP公司的社會形象,也為其贏得了更多消費者的支持和信任。
請注意,以上故事均為虛構內容,旨在展示一個假設的電子行業公司在發展過程中可能遇到的情境和策略。實際公司的發展歷程和細節將因公司而異,并受到市場環境、技術變革、政策調整等多種因素的影響。
Advanced Microelectronic Products Inc(以下簡稱AMP公司)在電子行業中嶄露頭角,源于其一次關鍵的技術突破。公司研發團隊成功開發出一種新型高效能、低功耗的芯片,該芯片在智能手機市場具有廣闊的應用前景。憑借這一技術優勢,AMP公司迅速與多家手機制造商建立合作關系,實現了市場的大規模擴張。公司隨后進一步加大研發投入,不斷推出創新產品,鞏固了其在行業內的領先地位。
隨著環保意識的不斷提高,電子行業對環保的要求也越來越高。CBI公司積極響應國家環保政策,致力于研發環保型電子產品。通過采用環保材料、降低能耗等措施,CBI的產品在環保方面取得了顯著成效。這一做法不僅贏得了消費者的青睞,也為公司樹立了良好的社會形象。
賽普拉斯半導體公司(Cypress Semiconductor Corp.)推出其專為汽車應用而優化的CY7C67300 EZ-Host?嵌入式USB主機/外設控制器版本。該器件符合AEC(汽車電子協會)Q100規范,提供了一個-40℃至85℃的工作溫度范圍。它面向汽車“信息 ...… 查看全部問答∨ |
|
公司背景:國內某大型IT公司 工作地點:上海 待遇范圍:OPEN 職位要求: 1.精通Unix平臺下C語言開發; 2. 熟悉主流關系數據庫的應用開發(Oracle、DB/2、SQL Server等); 3.2-4年保險金融類軟件開發實施經驗; 4. 2-5年金融支付、電子 ...… 查看全部問答∨ |
|
Reference Trigger即參考觸發是經常被混淆的一種觸發,它并不等同于停止觸發,通過Reference Trigger,我們可以獲得觸發點前后指定數量的采集點。… 查看全部問答∨ |
我這個是2B+D的。。 當有大量數據傳輸的時候就會出錯: Data Abort: Thread=83c6919c Proc=81986d30 \'device.exe\' AKY=00000005 PC=01ea14e8 RA=01ea14f4 BVA=060305a2 FSR=00000003 這個應該怎么在nk.map里定位呀?… 查看全部問答∨ |
在做串口程序時,使用USB轉串口數據線與MODEM相連, 打開串口后使用SetCommState函數設置串口參數。 程序初始化時,打開并設置串口參數,沒有任何問題。 現在要考慮USB被扒出再插上的異常情況。使用子線程將串口 關閉后再打開,之后進行參數設 ...… 查看全部問答∨ |
好不容易可以讀到SM502芯片的DEVICE ID了,加載502驅動的時候又遇到了頭疼的問題!請各位用過或懂的大俠幫忙一下,先謝過了! 問題是這樣的: 首先把跟s3c2440disp顯示驅動有關的都去掉,接著再加SM502驅動,步驟如下: 1、把WinCEVGX驅動復制到BSP里面 ...… 查看全部問答∨ |