版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、测试画面程式研讨答辩测试画面程式研讨答辩內容大綱: E. 畫面全點亮 E.1 全點亮程式 F. 畫面-清除 F.1 清除程式 G. 畫面-BAR G.1 BAR程式 H. 結語1.目的2.A. 指令功能&暫存器簡介 B. 畫面-方框 B.1 方框程式 C. 畫面4x4矩陣 C.1 4x4矩陣程式 D. 畫面1x1矩陣 D.1 1x1矩陣程式內容大綱: E. 畫面全點亮1.目的目的:1.使專案之程式撰寫時程縮短加快開發進度2.使任何不同COM和SEGMENT的玻璃皆能 通用程式目的:1.使專案之程式撰寫時程縮短加快開發進度指令簡介:以下說明程式用到的指令及暫存器功用SPA:COM的起始頁碼暫存區
2、EPA:COM的終止頁碼暫存區SSEG:SEGMENT的起始行暫存區ESEG:SEGMENT的終止行暫存區PAGE_S: COM的起始頁碼PAGE_E: COM的終止頁碼SEG_S: SEGMENT的起始行SEG_E: SEGMENT的終止行DPTR:指標暫存器16BIT(用來讀取顯示碼)A,B,R0R7:累積器指令簡介:以下說明程式用到的指令及暫存器功用SPA:COM的MOV ,功能:將來源位元組的內容COPY到目的位元組,執行後來源位元組 內容不變.範例:MOV R0,#10H ;R0 10H MOV R2,A ;把A暫存器內容複製到R2暫存器取代原先內容 (假設A內容為33H執行後R2內
3、容和A相同為33H) MOV A,R4 ;把R4暫存器內容複製到A暫存器取代原先內容 (假設R4內容為35H執行後A內容和R4相同為35H) MOV ,CALL:呼叫副程式執行RET:副程式結束返回指令CALL AGAINAGAIN:被呼叫的副程式內容 RET 遇到此行直接跳到副程式執行 當副程式內容被執 行完之後遇到 RET 指令會跳回剛剛 CALL AGAIN的 下一行繼續執行CALL:呼叫副程式執行CALL AGAINAGAIN:被JMP:間接無條件跳躍JMP AGAINAGAIN:要跳躍的程式內容 遇到此行跳至該程式執行JMP:間接無條件跳躍JMP AGAINAGAIN:INC 功能:
4、將位元組內容增加1範例: INC A ;將A的內容值增加1 (假設A暫存器的值是50H那執行過後A的內容值就是51H) 範例: INC R3 ;將R3的內容值增加1 (假設A暫存器的值是55H那執行過後A的內容值就是56H) 範例: INC SPA ;將SPA的內容值增加1 (假設A暫存器的值是15H那執行過後A的內容值就是16H) INC 範例: INC A ;將ADD A,功能:將A的內容和來源位元組的內容相加,加完之後存回A001111001000100111000101範例:3C89C5AR3執行前:A=3CH,R3=89H 執行後A=C5H,R3=89HADD A,001111001
5、000100SUBB A,功能:將A的內容減來源位元組的內容,減完之後存回A001111001000100101001101範例:3C894DAR3執行前:A=89H,R3=3CH 執行後A=4DH,R3=3CHSUBB A,00111100100010CJNE ,副程式名稱功能:若目的位元組不等於來源位元組,則跳至相對副程式執行CJNE R3,#10,BEGIN副程式內容BEGIN:YESNO判斷R3是否等於10如果不等於10跳至BEGIN副程式執行(不會跳回來)如果R3等於10直接往下一行程式執行CJNE ,副程式名稱CJNDJNZ,副程式名稱功能:減一,若不等於零,跳到相對副程式執行DJ
6、NZ R3,BEGIN副程式內容BEGIN:等於零不等於零 判斷R3的值是否等於零假設R3等於零則往下一行的程式作假設R3不等於零則跳至BEGIN副程式作DJNZ,副程式名稱功能:減一,若不等於SET: MOV PAGE_S,#0 MOV PAGE_E,#7 MOV SEG_S,#0 MOV SEG_E,#80 MOV SPA,PAGE_S MOV EPA,PAGE_E MOV SSEG,SEG_S MOV ESEG,SEG_E RET將所要顯示的最大邊界值輸入將最大邊界值放入假定邊界值之中SET: MOV PAGE_S,#0將所要顯示的最大邊界测试画面程式研讨答辩EDGE: CALL SET
7、 MOV PAGE_S,SPA MOV PAGE_E,SPA MOV SEG_S,SSEG MOV SEG_E,ESEG MOV INVERSE,#0 MOV D_DATA,#80H CALL SHOW CALL SET MOV PAGE_S,EPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV SEG_E,ESEG MOV INVERSE,#0 MOV D_DATA,#01H CALL SHOW呼叫SET副程式設定邊線值(顯示TOP線)設定顯示完是否要反向設定顯示值呼叫顯示副程式呼叫SET副程式設定邊線值(顯示BOTTEN線)設定顯示完是否要反向設定顯示值呼叫顯示副程式
8、EDGE:呼叫SET副程式設定邊線值(顯示TOP線)設定顯示 CALL SET MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV SEG_E,SSEG MOV INVERSE,#0 MOV D_DATA,#FFH CALL SHOW CALL SET MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,ESEG MOV SEG_E,ESEG MOV INVERSE,#0 MOV D_DATA,#FFH CALL SHOW DM #150呼叫SET副程式設定邊線值(顯示LEFT線)設定顯示完是否要反向設定顯示值呼叫顯示副
9、程式呼叫SET副程式設定顯示完是否要反向設定顯示值呼叫顯示副程式設定邊線值(顯示RIGHT線)呼叫延遲副程式 CALL SET呼叫SET副1234567890AB12356781234567890AB1235678 _4X4SPOT: CALL SET MOV PAGE_S,SPA MOV PAGE_E,EPA MOV A,SSEG DEC A MOV SSEG,A MOV SEG_S,SSEG MOV SEG_E,ESEG MOV INVERSE,#4 MOV D_DATA,#F0H CALL SHOW呼叫SET副程式設定邊界值設定反向次數(寫4次後反向)設定寫入的DATE呼叫顯示副程式 _
10、4X4SPOT: CALL SET MOV PAGE_S,SPA MOV PAGE_E,EPA MOV A,#24 ADD A,SSEG MOV SSEG,A MOV SEG_S,SSEG MOV A,#7 ADD A,SSEG MOV ESEG,A MOV SEG_E,ESEG MOV DPTR,#ONE CALL SHOW_RAM設定邊界值將顯示資料DATE放入DPTR內呼叫顯示副程式呼叫SET副程式 CALL SET設定邊界值將顯 CALL SET MOV SPA,#3 MOV PAGE_S,SPA MOV EPA,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MO
11、V SEG_E,ESEG MOV DPTR,#ONE CALL SHOW_RAM DM #150設定邊界值呼叫顯示副程式呼叫SET副程式載入要顯示的字元到DPTR呼叫延遲副程式 CALL SET設定邊界值呼叫测试画面程式研讨答辩 _1X1SPOT: CALL SET MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV SEG_E,ESEG MOV INVERSE,#1 MOV D_DATA,#AAH CALL SHOW DM #150設定邊界值呼叫顯示副程式呼叫SET副程式呼叫延遲副程式載入將顯示的字元到DPTR設定反向次數(寫1次後反向) _1X
12、1SPOT:設定邊界值呼叫顯测试画面程式研讨答辩 BLACK: CALL SET MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV SEG_E,ESEG MOV INVERSE,#0 MOV D_DATA,#FFH CALL SHOW DM #150設定邊界值呼叫顯示副程式呼叫SET副程式呼叫延遲副程式載入將顯示的字元到DPTR設定反向次數(不反向) BLACK:設定邊界值呼叫顯示副程测试画面程式研讨答辩 CLEAR: CALL SET MOV PAGE_S,#SPA MOV PAGE_E,#EPA MOV SEG_S,#SSEG MOV SEG
13、_E,#ESEG MOV INVERSE,#0 MOV D_DATA,#00H CALL SHOW DM #150設定邊界值呼叫顯示副程式呼叫SET副程式呼叫延遲副程式載入將顯示的字元到DPTR設定反向次數(不反向) CLEAR:設定邊界值呼叫顯示副1121231234123451234561234567ABCDABCABA1121231234123451234561234567ABBAR: CALL SET MOV A,ESEG INC A MOV R5,SSEG SUBB A,R5 MOV R5,A MOV A,EPA INC A MOV R7,SPA SUBB A,R7 MOV R7,A
14、 把R7擺放共有多少PAGE要顯示呼叫SET副程式把R5的內容擺放共有多少SEGMENT要顯示BAR:把R7擺放共有多少PAGE要顯示呼叫SET副程式把R MOV R6,#6BAR1: MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV ESEG,SSEG MOV SEG_E,ESEG MOV INVERSE,#0 MOV D_DATA,#FFH CALL SHOW將第一行的SEGMENT點亮(FFH)因為一條BAR需有六條SEGMENT點亮所以我們要作六次的迴圈 MOV A,#1 ADD A,SSEG MOV SSEG,A DEC R5 CJNE
15、 R5,#0,LOOP CALL NUM1 DM #150 JMP BEGINLOOP: DJNZ R6,BAR1移到下一行的SEGMENT將所需顯示的SEGMENT減一判斷R5是否為零(全部SEGMENT已顯示完)是零就往下作呼叫副程式NUM1後跳至BEGIN重新顯示,若不是則跳至LOOP判斷是否已點亮六行完成一條BAR的顯示 MOV R6,#6將第一行的 MOV R6,#6 MOV A,#1 ADD A,SPA MOV SPA,A MOV A,#2 ADD A,SSEG MOV SSEG,A DEC R5 DEC R5 CJNE R5,#0,LOOP1 DM #150 CALL NUM1
16、JMP BEGIN LOOP1: DJNZ R7,BAR1 CALL NUM1當顯示完六行時,重新設定R6為六,準備坐下一條BAR柱的顯示將準備顯示的位置條到下一個PAGE,而BAR柱中間有SEGMENT的空隙所以將SEGMENT加2把剛剛加上的2個SEGMENT在所有顯示SEGMENT之R5中減去,並判斷R5是否已為零(顯示完SEGMENT了),是零的話呼叫NUM1副程式後重新顯示,不是零,則判斷(R7)所有的PAGE是否已經顯示完了,是的話呼叫NUM1副程式後重頭顯示 當顯示完六行時,重新設定R6為六BAR3: MOV A,#3 ADD A,ESEG CALL SET MOV SSEG,A
17、 MOV R2,A MOV A,EPA INC A MOV R7,SPA SUBB A,R7 MOV R7,A把R7擺放共有多少PAGE要顯示呼叫SET副程式R2的內容關係NUM2的開始SEGMENT所以先存放在R2中將第一組BAR的最後一條SEGMENT當基準間隔2個SEGMENT因呼叫SET副程式邊界值會改變故把剛剛我們的A暫存器值給起始的SEGMENTBAR3: MOV A,#3把R7擺放共有多少PAGE要 MOV R6,#6 BAR2: MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV ESEG,SSEG MOV SEG_E,ESEG M
18、OV INVERSE,#0 MOV D_DATA,#FFH CALL SHOW MOV A,#1 ADD A,SSEG MOV SSEG,A DEC R5 CJNE R5,#0,LOOP2 DM #150 CALL NUM2 JMP BEGIN將第二條BAR柱第一行的SEGMENT點亮(FFH)因為一條BAR需有六條SEGMENT點亮所以我們要作六次的迴圈移到下一行的SEGMENT將所需顯示的SEGMENT減一判斷R5是否為零(全部SEGMENT已顯示完)是零就往下作呼叫副程式NUM2後跳至BEGIN重新顯示 MOV R6,#6將第二條BA若不是則跳至LOOP判斷是否已點亮六行完成一條BAR的
19、顯示LOOP2: DJNZ R6,BAR2 MOV R6,#6 MOV A,#1 ADD A,SPA MOV SPA,A MOV A,#2 ADD A,SSEG MOV SSEG,A DEC R5 DEC R5 CJNE R5,#0,LOOP3 DM #150 CALL NUM2 JMP BEGINLOOP3: DJNZ R7,BAR2 CJNE R5,#0,BAR3 DM #150 CALL NUM2 JMP BEGIN當顯示完六行時,重新設定R6為六,準備坐下一條BAR柱的顯示將準備顯示的位置條到下一個PAGE,而BAR柱中間有SEGMENT的空間所以將SEGMENT加2把剛剛加上的2個S
20、EGMENT在所有顯示SEGMENT之R5中減去,並判斷R5是否已為零(顯示完SEGMENT了),是零的話呼叫NUM2副程式後重新顯示,不是零,則判斷(R7)所有的PAGE是否已經顯示完了,是的話呼叫NUM2副程式後重頭顯示若不是則跳至LOOP判斷是否已點亮六行完成一條BAR的顯示LNUM1:MOV R1,ESEG MOV A,SPA CALL SET MOV R4,SPA SUBB A,R4 MOV R4,A MOV ESEG,R1 MOV A,#7 ADD A,SSEG MOV SSEG,A MOV EPA,SPA 將剛剛第一條BAR柱的截止SEGMENT放入R1暫存,將SPA目前所在的P
21、AGE給A,呼叫SET副程式將剛剛的A暫存器內容和重新呼叫的SET副程是相減得到的直就是我們要顯示NUM2的次數放入(R4)將我們要顯示的NUM2顯示終止SEGMENT給ESEG從BAR1的後七個SEGMENT開始顯示,每一次顯示一個PAGENUM1:MOV R1,ESEG將剛剛第一條BAR柱的截NUM1_1: MOV PAGE_S,SPA MOV PAGE_E,EPA MOV SEG_S,SSEG MOV SEG_E,ESEG MOV DPTR,#ONE CALL SHOW_RAM MOV A,#1 ADD A,SPA MOV SPA,A MOV EPA,SPA MOV A,#8 ADD A
22、,SSEG MOV SSEG,A DJNZ R4,NUM1_1 DM #150 RET將所有訂定好的邊界值放入將顯示資料載入DPTR中呼叫顯示副程式移到下一個的跟PAGE,將顯示的起始和終止PAGE設成同一行,將上一個PAGE的起始SEGMENT加8當成下一個PAGE的起始SEGMENT判斷將顯示的次數是否為零呼叫延遲副程式返回BAR1程式NUM1_1: MOV PAGE_S,SPA將所有訂NUM2: MOV B,ESEG MOV A,SPA CALL SET MOV R4,SPA SUBB A,R4 MOV R4,A MOV ESEG,B MOV SSEG,R2 MOV A,#8 ADD A,SS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 励志教育班主题班会
- 教育整顿专题汇报实施纲要
- 门诊就诊标准化流程
- 生命能量探索与研究
- 2026上半年中小学教师资格(答辩)模拟试题及答案解析
- 春天树叶绘画技法教学课件
- 健康教育讲座
- 技能教育课件
- 无偿捐献协议书
- 高考心理护航主题班会课件
- 塑造非权力影响力
- 金口中心幼儿园园本课程评价体系及评估细则
- 老师我们的朋友
- 大学生志愿服务西部计划考试复习题库(笔试、面试题)
- 回族上坟怎么念
- GB/T 42415-2023表面活性剂静态表面张力的测定
- YY/T 1681-2019医疗器械唯一标识系统基础术语
- GB/T 25380-2010数控滚齿机精度检验
- plm实施工具11培训课件库cmii培训课件
- 《社会工作伦理案例分析》课件011 妇女社会工作伦理
- Unit 3 Lesson 1 Spring Festival 课件-高中英语北师大版(2019)必修第一册
评论
0/150
提交评论