已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 实验2-1EXTRNCODE(Display8, GetBCDKey)BUFFER2DATA70H;8字节显示缓冲区BUFFERDATA 30H BLOCKdata50HRESULTDATA40HF1BIT 0D1H ;PSW.1 ORG 0000H LJMP START ORG 0100HSTART: MOV SP,#60H CLR F1 ;先清除显示,再接收键输入START1:MOV R0,#BUFFER MOV A,#4 ;按键次数LCALL GetBCDKey ;得到双字节十进制数(乘数)MOV R0,#BUFFERACALL BCD2B ;转换成二进制数MOV BLOCK,R3MOV BLOCK+1,R4 SETB F1 ;接收到第一个键,才清除显示MOV R0,#BUFFERMOV A,#4 ;按键次数LCALL GetBCDKey ;得到双字节十进制数(减数)MOV R0,#BUFFERACALL BCD2BMOV BLOCK+2,R3MOV BLOCK+3,R4MOV R4,BLOCK ;四个BCD入口参数MOV R5,BLOCK+1MOV R6,BLOCK+2MOV R7,BLOCK+3MOV R0,#RESULTlCALL MLTYMOV R3,RESULTMOV R2,RESULT+1MOV R1,RESULT+2MOV R0,RESULT+3ACALL B4toD4 ;字节二进制数转十进制数;R0R1R2R3为二进制数,R4R5R6R7为压缩BCD码MOV A,R7ANL A,#0FHMOV BUFFER2,AMOV A,R7ANL A,#0F0HSWAP AMOV BUFFER2+1,AMOV A,R6ANL A,#0FHMOV BUFFER2+2,AMOV A,R6ANL A,#0F0HSWAP AMOV BUFFER2+3,AMOV A,R5ANL A,#0FHMOV BUFFER2+4,AMOV A,R5ANL A,#0F0HSWAP AMOV BUFFER2+5,AMOV A,R4ANL A,#0FHMOV BUFFER2+6,AMOV A,R4ANL A,#0F0HSWAP AMOV BUFFER2+7,AMOV R0,#BUFFER2LCALL Display8sjmp $BCD2B: MOV R1,#BUFFER MOV R2,#2S: MOV A,R1 PUSH ACC ANL A,#0FH MOV R0,A POP ACC JNB ACC.4,NEXT1 ;分别判断4,5,6,7位是否为1,分别加上10,20,40,80 XCH A,R0 ADD A,#10 XCH A,R0NEXT1: JNB ACC.5,NEXT2 XCH A,R0 ADD A,#20 XCH A,R0NEXT2: JNB ACC.6,NEXT3 XCH A,R0 ADD A,#40 XCH A,R0NEXT3: JNB ACC.7,NEXT4 XCH A,R0 ADD A,#80 XCH A,R0NEXT4: MOV A,R0 PUSH ACC INC R1 DJNZ R2,S POP ACC MOV R0,A POP ACC MOV B,#100 ;高2位(千位、百位)乘以100 MUL AB ADD A,R0 MOV R3,A ;转换成的二进制数放在R4R3中 MOV A,B ADDC A,#0 MOV R4,A RET ;字节二进制数转十进制数;R0R1R2R3为二进制数,R4R5R6R7为压缩BCD码;该子程序也可以模仿书上(胡汉才)例4.22,采用除以10、其余数为个位数字,其商继续除以10得十位数字,依次类推B4toD4:CLRAMOVR4,AMOVR5,AMOVR6,AMOVR7,AMOVB,#32LOOP:CLRCMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,AMOVA,R1RLCAMOVR1,AMOVA,R0RLCAMOVR0,AMOVA,R7 ;算法举例:例如数据为0010 0100(36),则过程为ADDCA,R7 ; A R7DAA ; 0 0MOVR7,A ; 0 0MOVA,R6 ; 1 1ADDCA,R6 ; 2 2DAA ; 4 4MOVR6,A ; 9 9MOVA,R5 ; 18 18ADDCA,R5 ; 36 36DAAMOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,ADJNZB,LOOPRETMLTY:MOV A,R6MOV B,R4MUL ABMOV R0,AMOV R3,BMOV A,R7MOV B,R4MUL ABADD A,R3MOV R3,AMOV A,BADDC A,#00HMOV R2,AMOV A,R6MOV B,R5MUL ABADD A,R3INC R0MOV R0,AMOV A,R2ADDC A,BMOV R2,AMOV R1,#00HJNC NXT1INC R1NXT1:MOV A,R7MOV B,R5MUL ABADD A,R2INC R0MOV R0,AMOV A,BADDC A,R1INC R0MOV R0,ARETend2. 实验2-2ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R7,#15 CLR F0 LOOP1:PUSH 07H MOV R0,#30H MOV R1,#31H SJMP LOOP2 LOOP4:DEC R7 SJMP LOOP1 LOOP2:MOV A,R0 SUBB A,R1 JC LOOP3 SETB F0 MOV A,R0 XCH A,R1 XCH A,R0 LOOP3:INC R0 INC R1 DJNZ R7,LOOP2 POP 07H JB F0,LOOP4 END3. 实验3-1电子钟EXTRN CODE(GetbcdkEY,Display8) BUFFER1 DATA 40H BUFFER2 DATA 60H ORG 0000H LJMP MAIN ORG 000BH LJMP ITOP ORG 1000H MAIN: CLR PSW.1 MOV R0,#BUFFER1 MOV A,#06H ; LCALL GetBCDKey MOV 20H,#20 MOV TMOD,#01H MOV TL0,#0b0H MOV TH0,#3cH SETB TR0 SETB ET0 SETB EA SJMP $ ITOP:PUSH PSW PUSH ACC MOV TL0,#0b0H MOV TH0,#3cH DJNZ 20H,LOOP MOV 20H,#20 ;重置中断次数 MOV A,#01H ;秒增加1 ADD A,42H DA A ;秒单元十进制调整 MOV 42H,A CJNE A,#60H,LOOP ;是否到60秒,未到返回 MOV 42H,#00H ;记满30秒,秒单元请零 MOV A,#01H ;分单元增1 ADD A,41H DA A ;分单元十进制调整 MOV 41H,A CJNE A,#60H,LOOP ; MOV 41H,#00H MOV A,#01H ADD A,40H DA A MOV 40H,A CJNE A,#24H,LOOP MOV 40H,#00H LOOP:MOV R0,#40H MOV R6,#03H MOV R1,#50H DECOMP:MOV A,R0 SWAP A ANL A,#0FH MOV R1,A INC R1 MOV A,R0 ANL A,#0FH MOV R1,A INC R0 INC R1 DJNZ R6,DECOMP MOV R0,#BUFFER2 MOV BUFFER2,55H MOV BUFFER2+1,54H MOV BUFFER2+2,53H MOV BUFFER2+3,52H MOV BUFFER2+4,51H MOV BUFFER2+5,50H MOV BUFFER2+6,#10H MOV BUFFER2+7,#10H LCALL Display8 POP ACC POP PSW RETI END 4. 秒表EXTRN CODE(GetbcdkEY,Display8) BUFFER1 DATA 40H BUFFER2 DATA 60H ORG 0000H LJMP MAIN ORG 000BH ; 定时器T0中断LJMP ITOP ORG 1000H MAIN: CLR PSW.1 ;先清显示,再接收键盘输入 MOV R0,#BUFFER1 MOV A,#06H ;按键次数6次 LCALL GetBCDKey ;调键盘程序 MOV 20H,#1 ;循环次数 MOV TMOD,#01H ;计时器T0选择方式一 16位计数器 MOV TL0,#18H MOV TH0,#0FCH SETB TR0 ;开计时器T0 SETB ET0 SETB EA DAN: JB P1.0, $ ;比较P1.0口(暂停口),若为0,则往下执行,若为1,则在本行等待 CLR TR0 ;关计时器,暂停秒表计数 JNB P1.0,$ ;比较P1.0口(暂停口),若为1则往下执行,若为0,则在本行等待 SETB TR0 ;开计时器,继续秒表计数 JB P1.1, DAN ;比较P1.1口(清零口), 若为1,则跳DAN(继续等待),若为0,则往下执行(全部清零) MOV 40H,#00 ;微秒 单元清零 MOV 41H,#00 ;毫秒 单元清零 MOV 42H,#00 ;秒 单元清零 SJMP DAN ITOP:PUSH PSW PUSH ACC MOV TL0,#18H ;计时器T0重新赋初值 MOV TH0,#0FCH DJNZ 20H,LOOP ;减1,比较是否为0, 不为0则跳LOOP MOV 20H,#1 ;重新赋循环次数 MOV A,#01H ;微秒 单元+ 1 ADD A,40H DA A ;十进制调整 MOV 40H,A CJNE A,#99H,LOOP ; 微秒单元中的数字和99H比较,若小于等于99H, 则跳转到LOOP MOV 40H,#00H ; 微秒单元零 MOV A,#01H ;毫秒 单元 +1 ADD A,41H DA A MOV 41H,A CJNE A,#10H,LOOP MOV 41H,#00H ;毫秒单元 清零 MOV A,#01H ;秒单元 + 1 ADD A,42H DA A MOV 42H,A CJNE A,#60H,LOOP ;比较是否过了60秒 ? 过了则清零 MOV 42H,#00H ;秒单位请零LOOP:MOV R0,#40H ; 寄存器赋初值 ,为下面做准备 MOV R6,#03H ;次数3次 MOV R1,#50H ;保存到50H单位中DECOMP:MOV A,R0 SWAP A ;高低字节互换 ANL A,#0FH ; 取高字节 MOV R1,A ;高字节存到R1 INC R1 ;R1 地址 + 1 MOV A,R0 ANL A,#0FH MOV R1,A ;低字节存到 R1 INC R0 INC R1 DJNZ R6,DECOMP ;上面从LOOP开始整个的意思就是把40H中的微秒,毫秒,秒的数据放到50H中,然后下面开始在LED上显示 MOV R0,#BUFFER2 MOV BUFFER2,51H MOV BUFFER2+1,50H MOV BUFFER2+2,53H MOV BUFFER2+3,52H MOV BUFFER2+4,55H MOV BUFFER2+5,54H MOV BUFFER2+6,#10H MOV BUFFER2+7,#10H LCALL Display8 POP ACC POP PSW RETI END 6、 航标灯ORG 0000H LJMP MAIN ORG 0003HLJMP IIE0ORG 000BH ; 定时器T0中断LJMP ITOP ORG 1000H MAIN: SETB EX0 ; SETB EA L: JB P3.2,L CLR TR0 SETB p1.0 LJMP LIIE0: push psw push ACC MOV 20H,#40 ;循环次数 MOV TMOD,#01H ; 计时器T0选择方式一 16位计数器 MOV TL0,#0B0H ;50ms MOV TH0,#3CH SETB ET0 SETB TR0 POP ACC POP PSW RETIITOP:PUSH PSW PUSH ACC MOV TL0,#0B0H MOV TH0,#3CH DJNZ 20H,LOOP ;减1,比较是否为0, 不为0则跳LOOP MOV 20H,#40 ;重新赋循环次数 CPL P1.0 LOOP:POP ACC POP PSW RETI END 7、 串行口接收ORG 0000H LJMP MAIN ORG 0023H LJMP SINT ORG 0100H MAIN: MOV SP, #60H MOV TMOD, #20H ;T1方式2MOV TH1, #0E8H MOV TL1, #0E8H MOV SCON, #0D0H ;串行口3 MOV PCON, #80H SETB ES CLR ET1 SETB EA SETB TR1 MOV R0, #41H ;存入41H开始单元MOV R7, #0DH ;接收次数13次SJMP $ SINT: CLR RI MOV A, SBUFMOV C, P CPL CJNC L1 JNB RB8, ERR AJMP L2 L1: JB RB8, ERR L2: MOV R0, AINC R0 DJNZ R7, L3 ;比较是否接收13次CLR ES CLR ET1 CLR TR1 AJMP L3 ERR: CLR P1.0 ;点亮LED L3: RETI END8、 串行口发送 ORG 0000H LJMP MAIN ORG 0023H LJMP SINT ORG 0100H MAIN: MOV SP, #60H MOV TMOD, #20H ;T1方式2MOV TH1, #0E8H MOV TL1, #0E8H MOV SCON, #0D0H ;串行口3 MOV PCON, #80H SETB ES CLR ET1 SETB EA SETB TR1 MOV DPTR ,#TAB ;要发送的数据存入DPTRMOV R7, #0DH ;发送次数13次SETB TI SJMP $ SINT: CLR TICLR A MOVC A, A+DPTR MOV C, P MOV TB8, C MOV SBUF, A INC DPTR DJNZ R7, L1 JNB TI,$CLR ES CLR ET1 CLR TR1 L1: RETI TAB:DB J,M,U DB 2,0,0,9,8,2,0,0,2,0END9、 并转串ORG 0000H LJMP MAIN ORG 0100H MAIN:clr p1.3;SERINIT:CLR P1.2 ;SHNOPSETB P1.2 ;;SH上升沿CLR P1.3 ;;P1.3(CLK口)清零MOV R5,#8 ; ;循环次数8次PRO:JB P3.0,NEXT ;;查询 P3.0 口.CLR CSJMP NEXT1NEXT:SETB CNEXT1:RLC ASETB P1.3 ;CLK一次NOPCLR P1.3DJNZ R5,PROCPL A ;;取反AMOV P2,A ;;P1整个排线 LJMP INITDELAY:MOV R7,#200DELAY1:MOV R6,#125DELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND10、 串转并ORG 0000H LJMP MAIN ORG 0100H MAIN:CLR P1.3 ;CLK清零SETB CMOV A,#0FeHINIT:MOV R5,#8 ;循环次数8次PRO:RRC A ;;A中内容带进位右移一位JC NEXT ;;下面就是比较进位端CLR P1.2SJMP NEXT1NEXT:setb P1.2 ;;然后开关P1.2 口NEXT1:SETB P1.3NOP ;;CLK一次CLR P1.3DJNZ R5,PROCALL DELAY ;;延时程序CALL DELAYLJMP INITDELAY:MOV R7,#255;200DELAY1:MOV R6,#255;125DELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RETEND11、 iic总线SDA BITP1.2SCLBITP1.3A24C02_WRITEEQU0A8HA24C02_READ EQU0A9HORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV DPTR ,#TAB ;;要发送的内容存入DPTRMOVR0,#30HMOVB,#0FHLOOP:CLR AMOVC A, A+DPTRMOVR0,AINCDPTRINCR0DJNZB,LOOP ;;上面到这是把TAB存入30H以后单元MOVR1,#30H ; ;这部分开始是发送的MOVR2,#40HMOVR0,#0FH ; ;次数15次WRITE_BYTE:LCALLSTART ; ;发送起始信号MOVA,#A24C02_WRITE;器件写地址,表示写操作LCALL WRITE_8BITS ; ;写入8位LCALL ACKNOWLEDGE ; ;等待从机应答MOVA,R2 ;写入地址LCALL WRITE_8BITSLCALL ACKNOWLEDGEMOV A,R1;写入数据LCALL WRITE_8BITSLCALL ACKNOWLEDGELCALL STOP ;;停止信号LCALL ACKPOLLINGINC R2INC R1DJNZ R0,WRITE_BYTE ;;是否发送15次?MOVR1,#50H ;;这部分开始是接收的MOVR2,#40HMOVR0,#0FHREAD_BYTE:LCALL STARTMOV A,#A24C02_WRITELCALL WRITE_8BITSLCALL ACKNOWLEDGEMOV A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 聚氯乙烯塑料配制工安全文明知识考核试卷含答案
- 淀粉糖制造工安全素养知识考核试卷含答案
- 烟机电工安全实操能力考核试卷含答案
- 当事人自行协商解决事故协议书
- 2025淘宝天猫宠物品牌增长白皮书
- 工业自动化解耦控制风险防控措施
- 教育变革与未来路径
- 河北省邢台市2024-2025学年八年级上学期11月期中考试数学试卷(含答案)
- 地球的公转及其地理意义(同步训练)-2026年高考地理一轮复习(解析版)
- 2025浙江衢州市柯城区国有企业招聘工作人员16人笔试历年参考题库附带答案详解
- 零部件寿命预测技术-全面剖析
- 高二会考音乐试题及答案
- 博乐市宠爱宠物医院环境影响报告表
- 2025年03月大庆市龙凤区事业单位人才引进60人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 《稀土元素》课件
- 2025宪法宣传教育
- 羽毛球教练员培训课件
- 放疗健康宣教讲解 医学专业课学习资料
- 安全信息报送管理制度模版(3篇)
- 2025年中远海运广州有限公司招聘笔试参考题库含答案解析
- 《星巴克服务有形展》课件
评论
0/150
提交评论