




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验一 开关量输入输出实验 ORG 0000H JMP START ORG 0100HSTART:MOV P1,P0 AJMP START END连线:JP0连JP10,JP1连JP4实验二 继电器和蜂鸣器控制输出实验ORG 0000HJMP STARTORG 0100HSTART:SETB P1.2 ;为了准确读取P1.2口的电平JNB P1.2,RELAY ;控制继电器开 SETB P1.0 ;关继电器JMP NEXTRELAY: CLR P1.0 ;开继电器NEXT: SETB P1.3 ;为了准确读取P1.3口的电平JNB P1.3,BUZZ ;蜂鸣器开 SE
2、TB P1.1 ;关继电器JMP STARTBUZZ: CLR P1.1 ;开蜂鸣器 JMP STARTEND连线:JP1.0+JP1.1接JP6.0+JP6.1 JP1.2+JP1.3接JP10实验三 步进电机正转实验; 该程序是步进开关的控制; 步进电机采用4相8拍控制方式; 程序较精炼ORG 0000H JMP START ORG 0100HSTART:MOV P1,#1fH ACALL DELAY MOV P1,#3fH ACALL DELAY MOV P1,#2fH ACALL DELAY MOV P1,#6fH ACALL DELAY MOV P1,#4fH ACALL DELAY
3、 MOV P1,#0CfH ACALL DELAY MOV P1,#8fH ACALL DELAY MOV P1,#9fH ACALL DELAYAJMP STARTDELAY:MOV R6,#5DD1:MOV R5,#0DD2:MOV R7,#0DD3:DJNZ R7,DD3DJNZ R5,DD2DJNZ R6,DD1RETEND连线:JP1.4_1.7接JP6DE 4-7步进电机接步进电机接口实验四 步进电机正反转实验; 该程序是步进开关的控制; 步进电机采用4相8拍控制方式; 该程序对SETP1作了改进,可以进行正、反转以及步进控制; 程序较精炼ORG 0000H JMP START O
4、RG 0100HSTART:MOV DPTR,#TAB1MOV R4,#7 ;初始表内指针MOV P1,#0 ;初始角度,0度,停止KEY: SETB P1.2 ;为了准确读取P1.2口的电平 SETB P1.3 ;为了准确读取P1.3口的电平JNB P1.3,NEG ;控制步进电机反转 JNB P1.2,POS ;控制步进电机正转 SJMP KEYPOS: CJNE R4,#7,LOOPP ; 判断是否到头MOV R4,#0 ; 重新赋首值 AJMP PPLOOPP:INC R4 ; 赋新值PP: MOV A,R4MOVC A,A+DPTRMOV P1,AACALLDELAYAJMP KEY
5、NEG:CJNE R4,#0,LOOPN ; 判断是否到头MOV R4,#7 ; 重新赋首值 AJMP NNLOOPN:DEC R4 ; 赋新值NN: MOV A,R4MOVC A,A+DPTRMOV P1,AACALLDELAYAJMPKEYDELAY:MOV R6,#5DD1:MOV R5,#0DD2:MOV R7,#0DD3:DJNZ R7,DD3 DJNZ R5,DD2 DJNZ R6,DD1 RETTAB1:DB 1fH,3fH,2fH,6fHDB 4fH,0CfH,8fH,9fH;控制数据表END 连线:JP1 接 IP6实验五 扩展存储器读写实验 ORG 0000H LJMP S
6、TART ORG 0040HSTART: MOV SP,#60HMOV R0,#00H SETB P3.4STR: MOV DPTR,#0000H ;置外部RAM读写地址NEXT: MOV A,R0 MOV B,A MOVX DPTR,A ;写外部RAM MOVX A,DPTR ;读外部RAM XRL A,B ;比较读回的数据 JNZ ERRORMOV A,B;异或后,A中数据以不对,需要从B中重取数据CPL A ;状态取反MOV P1,A; 数据在P1口输出ACALL DELAYINC R0 ;数据加1MOV A,DPL;地址是否到IFFFH,CJNE A,#0FFH,DIN1MOV A,D
7、PHCJNE A,#1FH,DIN1JMP STR;若空间已存满,则从头开始DIN1: INC DPTR ;地址加1JMP NEXTERROR: CLR P3.4 ;测试失败,鸣叫 SJMP $DELAY:MOV R6,#5DD1:MOV R5,#0DD2:MOV R7,#0DD3:DJNZ R7,DD3 DJNZ R5,DD2 DJNZ R6,DD1 RET END实验六 LED灯轮换点亮实验ORG 0000HLJMP STARTORG 0100HSTART:MOV SP,#60HLD1:MOV A,#0FEHCLR P2.7ROTATE:MOV P0,A ;写 P0口 SETB P2.7N
8、OPCLR P2.7LCALL DELAY ;延时 RL A ;循环左移SJMP ROTATEDELAY: MOV R0,#0AH ;延时子程序(1秒) DELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2HDJNZ R2,$DJNZ R1,DELAY2DJNZ R0,DELAY1RET END实验七:交通灯控制实验 ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV SP,#60HCLR P2.6 LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;
9、南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLESTATUS0: ;南北红灯,东西红灯 MOV P0,#09H SETB P2.6 NOP CLR P2.6 MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS1: ;南北绿灯,东西红灯 MOV P0,#21H SETB P2.6 ;74HC573数据锁存 NOP CLR P2.6 MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV R3,#03
10、H ;绿灯闪3次FLASH: MOV P0,#021H SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY MOV P0,#01H SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV P0,#11H ;南北黄灯,东西红灯 SETB P2.6 NOP CLR P2.6 MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS3: ;南北红灯,东西绿灯 MOV P0,#0CH SETB P2.6 NOP CLR P2.6 MOV R2,#50 ;延时5秒 LC
11、ALL DELAY RETSTATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV R3,#03H ;绿灯闪3次FLASH1: MOV P0,#0CH SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY MOV P0,#08H SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV P0,#0AH SETB P2.6 NOP CLR P2.6 MOV R2,#10 ;延时1秒 LCALL DELAY RETDELAY: ;延时子程序 PUSH 2;将R2、R1、R0压入堆栈 PU
12、SH 1 PUSH 0DELAY1: MOV R1,#00HDELAY2: MOV R0,#0B2H DJNZ R0,$ DJNZ R1,DELAY2 ;延时 100 mS DJNZ R2,DELAY1 POP 0 POP 1 POP 2 RET END实验八 LED数码管显示实验; 系统复位时,显示"" 显示内容放到主程序中,用50H57H作为显示缓冲单元,由30H放位控码;ORG 0000HAJMP MAIN ORG 0100HMAIN: MOV SP,#60HMOV 50H,#01H ;设置了显示缓冲单元50H57HMOV 51H,#02H ;显示"&quo
13、t;MOV 52H,#03HMOV 53H,#04HMOV 54H,#05HMOV 55H,#06HMOV 56H,#07HMOV 57H,#08HCLR P2.6CLR P2.7HERE: ACALL DISP AJMP HEREDISP: PUSH DPHPUSH DPLPUSH PSWPUSH ACCMOV R0, #50H ;显示缓冲单元首地址MOV 30H, #0FEH ;位控码LD0: MOV P0,#0FFH ;清位控口,修改 SETB P2.7 NOP CLR P2.7 MOV DPTR, #TABLE ;查段码 MOV A, R0 MOVC A, A+DPTR MOV P0,
14、A ;送段码 SETB P2.6 NOP CLR P2.6 MOV A, 30H MOV P0,A ;送位控码 SETB P2.7 NOP CLR P2.7 ACALL DELAYINC R0MOV A, 30HJNB ACC.7,LD1RL AMOV 30H, AAJMP LD0LD1: MOV P0,#00 ;清段控口,修改 SETB P2.6 NOP CLR P2.6 MOV P0,#0FFH ;清位控口,修改SETB P2.7NOPCLR P2.7 POP ACCPOP PSWPOP DPLPOP DPHRETTABLE: DB 3FH,06H,5BH,4FH,66H ; 0 1 2
15、3 4 DB 6DH,7DH,07H,7FH,6FH ; 5 6 7 8 9 DB 77H,7CH,39H,5EH,79H ; A B C D E DB 71H,00H,76H,38H,40H ; F 灭 H L -DELAY: MOV R1,#02H ;延时约1msDEL0: MOV R2, #00HDEL1: DJNZ R2, DEL1 DJNZ R1, DEL0 RETEND实验九 LED数码管显示与按钮输入; 系统复位时,显示"HELLO-88",当按下任何时,在最右边LED上显示该键号,原显示内容自动左移; 显示程序采用了子程序的结构,有利于独立性,并使用了查表指
16、令; 显示内容放到主程序中,用50H57H作为显示缓冲单元,由30H放位控码;; 新键标记位01H,新键38H,新键暂存37H; 该程序的关键在于按键处理,处理前先消除新键标记位 ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV SP,#60HMOV 50H,#11H ;设置了显示缓冲单元50H57HMOV 51H,#0EH ;显示"HELLO-88"MOV 52H,#12HMOV 53H,#12HMOV 54H,#00HMOV 55H,#13HMOV 56H,#08HMOV 57H,#08HCLR P2.6CLR P2.7CLR 01H ;清新
17、按钮标记为HERE: ACALL DISPACALL KEYSCANACALL KEYPROAJMP HEREDISP: PUSH DPHPUSH DPLPUSH PSWPUSH ACCMOV R0, #50H ;显示缓冲单元首地址MOV 30H, #0FEH ;位控码LD0: MOV P0,#0FFH ;清位控口,修改 SETB P2.7 NOP CLR P2.7 MOV DPTR, #TABLE ;查段码 MOV A, R0 MOVC A, A+DPTR MOV P0,A ;送段码 SETB P2.6 NOP CLR P2.6 MOV A, 30H MOV P0,A ;送位控码 SETB
18、P2.7 NOP CLR P2.7 ACALL DELAYINC R0MOV A, 30HJNB ACC.7,LD1RL AMOV 30H, AAJMP LD0LD1: MOV P0,#00 ;清段控口,修改 SETB P2.6 NOP CLR P2.6 MOV P0,#0FFH ;清位控口,修改SETB P2.7NOPCLR P2.7 POP ACCPOP PSWPOP DPLPOP DPHRETTABLE: DB 3FH,06H,5BH,4FH,66H ; 0 1 2 3 4 DB 6DH,7DH,07H,7FH,6FH ; 5 6 7 8 9 DB 77H,7CH,39H,5EH,79H
19、 ; A B C D E DB 71H,00H,76H,38H,40H ; F 灭 H L -DELAY: MOV R1,#02H ;延时约1msDEL0: MOV R2, #00HDEL1: DJNZ R2, DEL1 DJNZ R1, DEL0 RETKEYSCAN:PUSH DPH PUSH DPLPUSH PSWPUSH ACCMOV P0,#00H ;送全0码,检查是否有按钮按下SETB P2.7NOPCLR P2.7JNB P3.2,ONECLR 01HKEY_END:POP ACCPOP PSWPOP DPLPOP DPHRETONE:ACALL DISP;调用现实延时,消抖 M
20、OV P0,#0FEH;送01#键扫描码 SETB P2.7NOPCLR P2.7JB P3.2,TWOMOV 37H,#01HAJMP KEY_DTWO:MOV P0,#0FDH;送02#键扫描码 SETB P2.7NOPCLR P2.7JB P3.2,THREEMOV 37H,#02HAJMP KEY_DTHREE:MOV P0,#0FBH;送03#键扫描码 SETB P2.7NOPCLR P2.7JB P3.2,FOURMOV 37H,#03HAJMP KEY_DFOUR:MOV P0,#0F7H;送04#键扫描码SETB P2.7NOPCLR P2.7JB P3.2,FIVEMOV 3
21、7H,#04HAJMP KEY_DFIVE: MOV P0,#0EFH;送05#键扫描码SETB P2.7NOPCLR P2.7JB P3.2,SIXMOV 37H,#05HAJMP KEY_DSIX: MOV P0,#0DFH;送06#键扫描码 SETB P2.7NOPCLR P2.7JB P3.2,SEVENMOV 37H,#06HAJMP KEY_DSEVEN: MOV P0,#0BFH;送07#键扫描码 SETB P2.7NOPCLR P2.7JB P3.2,EIGHTMOV 37H,#07HAJMP KEY_DEIGHT: MOV P0,#7FH;送08#键扫描码SETB P2.7N
22、OPCLR P2.7JB P3.2,KEY_EMOV 37H,#08HKEY_D: ACALL DISP MOV P0,#00H;送全0码,检查是否有按钮按下SETB P2.7NOPCLR P2.7 JNB P3.2,KEY_D ;是否弹开MOV A,37HMOV 38H,37HSETB 01H;设定新键标记AJMP KEY_ENDKEY_E: CLR 01H AJMP KEY_ENDKEYPRO: JNB 01H,PROENDCLR 01H ;移位处理MOV 50H,51HMOV 51H,52HMOV 52H,53HMOV 53H,54HMOV 54H,55HMOV 55H,56HMOV 5
23、6H,57HMOV 57H,38HPROEND: RETEND实验十 带应急状态的交通灯控制实验 ORG 0000H LJMP MAIN ORG 0003H ;INT 0 中断入口地址 LJMP INTA ORG 0100HMAIN: MOV SP,#60HSETB IT0 ; 下降沿有效 SETB EA SETB EX0 ; INT 0 中断有效CLR P2.6 LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCAL
24、L STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLESTATUS0: ;南北红灯,东西红灯 MOV P0,#09H SETB P2.6 NOP CLR P2.6 MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS1: ;南北绿灯,东西红灯 MOV P0,#21H SETB P2.6 ;74HC573数据锁存 NOP CLR P2.6 MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV R3,#03H ;绿灯闪3次FLASH: MOV P0,#021H SETB P2.6 NOP C
25、LR P2.6 MOV R2,#03H LCALL DELAY MOV P0,#01H SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV P0,#11H ;南北黄灯,东西红灯 SETB P2.6 NOP CLR P2.6 MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS3: ;南北红灯,东西绿灯 MOV P0,#0CH SETB P2.6 NOP CLR P2.6 MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV R3
26、,#03H ;绿灯闪3次FLASH1: MOV P0,#0CH SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY MOV P0,#08H SETB P2.6 NOP CLR P2.6 MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV P0,#0AH SETB P2.6 NOP CLR P2.6 MOV R2,#10 ;延时1秒 LCALL DELAY RETINTA: PUSH PSW ;保护现场 PUSH 2 ;将R2压入堆栈 MOV P0,#09H ;东西南北均红灯 SETB P2.6 NOP CLR P2.6
27、 MOV R2,#100 ;延时10秒 LCALL DELAY POP 2 POP PSW RETIDELAY: ;延时子程序 PUSH 2;将R2、R1、R0压入堆栈 PUSH 1 PUSH 0DELAY1: MOV R1,#00HDELAY2: MOV R0,#0B2H DJNZ R0,$ DJNZ R1,DELAY2 ;延时 100 mS DJNZ R2,DELAY1 POP 0 POP 1 POP 2 RET END实验十一 点阵显示实验; LED点阵每隔3秒轮换显示0 1 2 3 4 5 6 7 8 9 *; 数据口通过P0扩展口和P1 作为点阵扫描接口; 显示内容放到主程序中,用5
28、0H57H作为显示缓冲单元,SAN EQU 30H ; 扫描码单元TIM EQU 31H ; 定时循环次数CNTA EQU 32H ; 字符内8个列循环CNTB EQU 33H ; 第几个字符LEDData0 EQU 50H ; 8个LED点阵数据缓存器LEDData1 EQU 51HLEDData2 EQU 52HLEDData3 EQU 53HLEDData4 EQU 54HLEDData5 EQU 55HLEDData6 EQU 56HLEDData7 EQU 57HLEDSEG_LEBIT P2.6 ; LED点阵行数据锁存位 ORG0000H AJMP MAIN ORG 000BH
29、JMP PITO ORG 0100HMAIN: MOV SP,#60H MOV TMOD,#01H ; 将定时器0设置为方式1 MOV TL0,#0DCH ; 定时125ms MOV TH0,#0BH MOV TIM,#18H ; 设置定时循环次数 MOV LEDData0,#00H ; 首次显示“0” MOV LEDData1,#00H MOV LEDData2,#3EH MOV LEDData3,#41H MOV LEDData4,#41H MOV LEDData5,#41H MOV LEDData6,#3EH MOV LEDData7,#00H MOV CNTA,#00H MOV CNT
30、B,#00H CLR LEDSEG_LE; LED点阵行数据锁存位 SETB EA ; 开总中断 SETB ET0 ; 定时0中断允许 SETB TR0HERE: ACALL DISP AJMP HEREDISP: PUSH DPH PUSH DPL PUSH PSW PUSH ACC MOV R0, #LEDData0 ;显示缓冲单元首地址 MOV SAN, #0FEH ;位控码LD0: MOV P1,#0FFH ;清位控口,修改 MOV A, R0 ;5057H中直接存放显示码 MOV P0,A ;送段码 SETB LEDSEG_LE; LED点阵行数据锁存位 NOP CLR LEDSEG
31、_LE MOV A, SAN MOV P1,A ;送位控码 ACALL DELAY INC R0 MOV A, SAN JNB ACC.7,LD1 RL A MOV SAN, A AJMP LD0LD1: MOV P0,#00 ;清段控口,修改 SETB LEDSEG_LE; LED点阵行数据锁存位 NOP CLR LEDSEG_LE POP ACC POP PSW POP DPL POP DPH RETDELAY: MOV R3,#02H ;延时约1msDEL0: MOV R2, #00HDEL1: DJNZ R2, DEL1 DJNZ R3, DEL0 RETPITO: PUSH DPH
32、PUSH DPL PUSH ACC PUSH PSW MOV TL0, #0DCH ; 每125ms要重新赋值 MOV TH0, #0BH DEC TIM MOV A, TIM JNZ RET0 MOV TIM, #18 ; 8次后要重新赋值循环次数 MOV R1, #LEDData0;显示缓冲单元首地址 MOV DPTR, #DIGIT MOV CNTA, #00HNEX: MOV A, CNTB MOV B, #8 MUL AB ADD A, CNTA MOVC A, A+DPTR MOV R1, A INC CNTA INC R1 MOV A, CNTA CJNE A, #8,NEX I
33、NC CNTB MOV A, CNTB CJNE A, #10,RET0 MOV CNTB, #00HRET0: POP PSW POP ACC POP DPL POP DPH RETIDIGIT: DB 00H,00H,00H,00H,21H,7FH,01H,00H ; 1DB 00H,00H,27H,45H,45H,45H,39H,00H ; 2DB 00H,00H,22H,49H,49H,49H,36H,00H ; 3DB 00H,00H,0CH,14H,24H,7FH,04H,00H ; 4DB 00H,00H,72H,51H,51H,51H,4EH,00H ; 5DB 00H,00H,3EH,49H,49H,49H,26H,00H ; 6DB 00H,00H,40H,40H,40H,4FH,70H,00H ; 7DB 00H,00H,36H,49H,49H,49H,36H,00H ; 8DB 00H,00H,32H,49H,49H,49H,3EH,00H ; 9DB 00H,00H,3EH,41H,41H,41H,3EH,00H ; 0END实验十二 LED点阵动态移位显示; LED点阵
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年范县三年级数学第一学期期末检测模拟试题含解析
- 2024年茂名市茂南区三上数学期末调研试题含解析
- 2024年辽宁省营口市鲅鱼圈区数学三年级第一学期期末质量跟踪监视试题含解析
- 2025主管护师考试全真模拟试题及答案
- 执业护士考试各类案例开发及分析试题及答案
- 2025年行政管理语文复习试题及答案判例
- 外部环境对经济法影响试题及答案
- 2025年执业药师考试真题解析及答案
- 2025年卫生资格考试探索试题及答案
- 行政法学考试清单试题与答案
- 大学生创业计划书智能农业技术项目
- 2018大截面导线压接工艺导则
- 量子计算与量子信息简介
- 焙炒咖啡生产许可证审查细则说明
- 河南省驻马店市重点中学2023-2024学年九年级上学期12月月考语文试题(无答案)
- 中考数学二元一次方程专题训练100题(含答案)
- 【教师共享】《羽毛球》教学评价及评价建议
- DB13-T 5742-2023醇基燃料使用安全规范
- 尾矿库安全生产风险监测预警系统运行管理办法
- 特殊教育:康复训练课程标准(年版)
- 南京秦淮外国语学校新初一分班英语试卷含答案
评论
0/150
提交评论