1、单片机实习指导书20112012学年第一学期单片机实习报告班 级:姓 名:学 号:指导教师:实习时间:二八年十二月一 应用程序练习1 EDIT编辑器EDIT.COM是一个编辑软件,对于DOS系统,它处于DOS目录下,对于WINDOWS系统,它处于WINDOWS下的COMMAND目录中。使用方法:(1)启动EDIT.COM (2)激活菜单选项 (3)文件管理 (4)文件编辑 (5)文本内容搜索注意:源程序编辑完毕,将文件保存为“*.ASM”格式。2 CYS8051汇编软件使用方法:先打开CYS8051汇编软件,接着在光标处输入“ASM51 *.ASM”命令,会产生汇编结果信息,并生成同名列表文件
2、*.LST和目录文件*.HEX。3 AVSIM51模拟仿真软件装入方法:第一步:输入字母A 第二步:输入字母L-A 第三步:输入“*.ASM”功能键:F1连续执行键 F10分步执行键 Ctrl+C 回命令行提示符 R-C CPU复位; Q-E 退出 ESC 工作模式切换 Ctrl+PageUp 滚屏模式切换二、应用程序1. ADD加法(1) 功能简介:有一组单字节无符号二进制数依次存放在内部RAM30H开始的16个单元中,求这个16个数据的和,结果按高低顺序存放在20H和21H的单元中。(2) 程序清单:0000 ORG 0000H 0000 7830 MOV R0,#30H 0002 7A1
3、0 MOV R2,#10H 0004 E4 CLR A 0005 F520 MOV 20H,A 0007 F521 MOV 21H,A 0009 26 AD: ADD A,R0 000A 5002 JNC RT 000C 5012 INC 20H 000E 08 RT: INC R0 000F DAF8 DJNZ R2,AD 0011 F521 MOV 21H,A0000 END2. MAX 求最大数(1) 功能简介:设有一组数据存放在内部RAM从42H开始的连续单元中,这组数的长度存放在41H单元中,求出最大数并存放在40H单元中(2) 程序清单:0041 = NUM EQU 41H 004
4、2 = STAR EQU 42H 0040 = MAX EQU 40H 0000 ORG 0000H 0000 7842 MOV R0,#STAR 0002 8640 MOV MAX,R0 0004 1541 DEC NUM 0006 08 LOOP: INC R0 0007 E6 MOV A,R0 0008 B54000 CJNE A,MAX,COMP 000B 4002 COMP: JC NEXT 000D F540 MOV MAX,A 000F D541F4 NEXT: DJNZ NUM,LOOP 0012 80FE SJMP $0000 END3. MIN求最小数(1) 功能简介:设有
5、一组数据存放在内部RAM从42H开始的连续单元中,这组数的长度存放在41H单元中,求出最大数并存放在40H单元中(2) 程序清单:0041 = NUM EQU 41H 0042 = STAR EQU 42H 0040 = MIN EQU 40H 0000 ORG 0000H 0000 7842 MOV R0,#STAR 0002 8640 MOV MIN,R0 0004 1541 DEC NUM 0006 08 LOOP: INC R0 0007 E6 MOV A,R0 0008 B54000 CJNE A,MIN,COMP 000B 4002 COMP: JNC NEXT 000D F540
6、 MOV MIN,A 000F D541F4 NEXT: DJNZ NUM,LOOP 0012 80FE SJMP $ 0000 END4 DELAY延时(1) 功能简介:把用户标位F0从0置1的时间间隔延时1秒。(2) 程序清单:0000 ORG 0000H 0000 C2D5 CLR F0 0002 7B0A MOV R3,#10 0004 7CC8 DEL1: MOV R4,#200 0006 7DF8 DEL2: MOV R5,#248 0008 DDFE DEL3: DJNZ R5,DEL3 000A DCFA DJNZ R4,DEL2 000C DBF6 DJNZ R3,DEL1
7、000E D2D5 SETB F0 0000 END 5 PX排序(1) 功能简介:从内部RAM 20H单元开始有一组无符号数,其长度为10,把20H单元的数按从小到大的顺序排列,仍存放于原存储区域内。(2) 程序清单: 0020 = BLOCK EQU 20H000A = NUM EQU 100000 ORG 0000H 0000 7F09 MOV R7,#NUM 0002 EF NEXT: MOV A,R7 0003 FE MOV R6,A 0004 7820 MOV R0,#BLOCK 0006 C2D5 CLR F0 0008 E6 COMP: MOV A,R0 0009 FA MOV
8、 R2,A 000A 08 INC R0 000B C3 CLR C 000C 96 SUBB A,R0 000D 4005 JC LESS 000F EA MOV A,R2 0010 C6 XCH A,R0 0011 18 DEC R0 0012 D2D5 SETB F0 0014 DEF2 LESS: DJNZ R6,COMP 0016 DF02 DJNZ R7,LOOP 0018 8003 SJMP STOP 001A 20D5E5 LOOP: JB F0,NEXT 001D 22 STOP: RET0000 END三 课题制作1. 跑马灯(1)硬件电路如图所示对应接口:P 1.0X0
9、P 1.4X5P 1.1X2 P 1.5X7P 1.2X3 P 1.6X8P 1.3X4 P 1.7X6(2)功能简介:开始接通电源,VD1-VD8 首先全亮,进行灯测试:延时几秒钟进入同时闪亮:闪亮10次后进入:VD1、VD2VD2、VD3VD7、VD8VD1、VD2循环闪亮:循环10次后进入:VD8、VD7VD7、VD6VD2、VD1VD8、VD7循环闪亮:循环10次进入:VD4、VD5VD3、VD6VD2、VD7VD1、VD8发散状态:发散10次后进入:VD1、VD8VD2、VD7VD3、VD1VD4、VD5居中状态:居中10次后返回初始状态开始下一个大循环。(3)程序清单:0000 O
10、RG 0000H 0000 7400 TEST: MOV A,#00H 0002 F590 MOV P1,A 0004 7D00 MOV R5,#00H 0006 1161 ACALL DELAY 0008 DDFE DJNZ R5,$ 000A 7D0A FLASH: MOV R5,#10 000C F4 FLASH1: CPL A 000D F590 MOV P1,A 000F 1161 ACALL DELAY 0011 DDF9 DJNZ R5,FLASH1 0013 7D0A L_R: MOV R5,#10 0015 74FC L_R1: MOV A,#0FCH 0017 F590 L
11、_R2: MOV P1,A 0019 1161 ACALL DELAY 001B 23 RL A 001C B4FCF8 CJNE A,#0FCH,L_R2 001F DDF4 DJNZ R5,L_R1 0021 7D0A R_R: MOV R5,#10 0023 743F R_R1: MOV A,#3FH 0025 F590 R_R2: MOV P1,A 0027 1161 ACALL DELAY 0029 03 RR A 002A B43FF8 CJNE A,#3FH,R_R2 002D DDF4 DJNZ R5,R_R1 002F 7D0A SEPAR: MOV R5,#10 0031
12、7590E7 SEPAR1: MOV P1,#0E7H 0034 1161 ACALL DELAY 0036 7590DB MOV P1,#0DBH 0039 1161 ACALL DELAY 003B 7590BD MOV P1,#0BDH 003E 1161 ACALL DELAY 0040 75907E MOV P1,#07EH 0043 1161 ACALL DELAY 0045 DDEA DJNZ R5,SEPAR1 0047 7D0A MASS: MOV R5,#10 0049 75907E MASS1: MOV P1,#07EH 004C 1161 ACALL DELAY 004
13、E 7590BD MOV P1,#0BDH 0051 1161 ACALL DELAY 0053 7590DB MOV P1,#0DBH 0056 1161 ACALL DELAY 0058 7590E7 MOV P1,#0E7H 005B 1161 ACALL DELAY 005D DDEA DJNZ R5,MASS1 005F 809F SJMP TEST 0061 79FF DELAY: MOV R1,#0FFH 0063 7AFF DELAY1: MOV R2,#0FFH 0065 DAFE DJNZ R2,$ 0067 D9FA DJNZ R1,DELAY1 0069 22 RET
14、0000 END2. 抢答器(1)硬件电路:(2)功能简介:该抢答器设定5个按键,1个主持按键,4个分组抢答按键。设有5 个指示灯:1个为允许禁止抢答指示,4个分组抢答指示。1个蜂鸣器(发光二极管VC6代替)。具体使用说明如下: A:任何情况下,只有在允许禁止指示灯亮的前提下,主持人按下主持按键,会发出蜂鸣信号(VC6亮),等允许禁止抢答指示灯闪亮以后,4个抢答按键才起作用,此时,4个抢答指示灯全灭。 B:在允许抢答的状态下,若无抢答按键按下,则4个抢答指示灯全灭;若有抢答按键按下,则与抢答按键对应的指示灯亮,并且自动进入禁止抢答状态,同时发出蜂鸣信号(VC6亮),4个抢答指示灯保持状态不变。
15、C:若超出抢答时间,主持人按下主持按键后,允许禁止抢答指示灯直亮,同时发出蜂鸣信号(VC6亮),4个抢答器抢答。(3)程序清单:0090 = LED EQU 90H 0090 = LED0 BIT 90H 00B0 = SW EQU 0B0H 00B0 = SW0 BIT 0B0H 00B5 = DL BIT 0B5H 0000 ORG 0000H 0000 758140 MOV SP,#40H 0003 7CFE MOV R4,#0FEH 0005 7401 TEST: MOV A,#01H 0007 F590 TEST1: MOV LED,A 0009 7D00 MOV R5,#00H 0
16、00B 7E80 MOV R6,#80H 000D DEFE DJNZ R6,$ 000F DDFA DJNZ R5,$-4 0011 23 RL A 0012 B4DFF0 CJNE A,#0DFH,TEST 0015 DCEE DJNZ R4,TEST 0017 7590FE MOV LED,#0FEH 001A 113E STOP: ACALL DL_0 001C 20B0FD JB SW0,$ 001F 113E ACALL DL_0 0021 7C02 MOV R4,#02H 0023 E5B0 START: MOV A,SW 0025 F4 CPL A 0026 541F ANL
17、A,#1FH 0028 60F9 JZ START 002A 20E0ED JB ACC.0,STOP 002D 541E ANL A,#1EH 002F 4401 ORL A,#01H 0031 F4 CPL A 0032 F590 MOV LED,A 0034 80E4 SJMP STOP 0036 DCEB START1: DJNZ R4,START 0038 B290 CPL LED0 003A 7C02 MOV R4,#02H 003C 80E5 SJMP START 003E 780A DL_0: MOV R0,#10 0040 D2B5 SETB DL 0042 7980 DL_
18、1: MOV R1,#80H 0044 7A80 DL_2: MOV R2,#80H 0046 7B60 MOV R3,#60H 0048 DBFE DJNZ R3,$ 004A DAFA DJNZ R2,$-4 004C B2B5 CPL DL 004E D9F4 DJNZ R1,DL_2 0050 79A0 DL_3: MOV R1,#0A0H 0052 7A40 DL_4: MOV R2,#40H 0054 7B60 MOV R3,#60H 0056 DBFE DJNZ R3,$ 0058 DAFA DJNZ R2,$-4 005A B2B5 CPL DL 005C D9F4 DJNZ
19、R1,DL_4 005E D8E2 DJNZ R0,DL_1 0060 22 RET 0000 END3 脉冲发生器(1)硬件电路图:(2)功能简介:利用P1.0输出,用发光二极管产生1HZ防波,用二极管模拟发出,亮0.5秒,灭0.5秒(3)程序清单:0000 ORG 0000H 0000 758910 DEL_1S: MOV TMOD,#10H 0003 758BDC MOV TL1,#0DCH 0006 758D0B MOV TH1,#0BH 0009 D28E SETB TR1 000B 7A04 LOOP: MOV R2,#4 000D 308FFD LOOP1: JNB TF1,$
20、0010 758BDC MOV TL1,#0DCH 0013 758D0B MOV TH1,#0BH 0016 C28F CLR TF1 0018 DAF3 DJNZ R2,LOOP1 001A B290 CPL P1.0 001C 80ED SJMP LOOP 0000 END 4 动态显示(1)硬件电路图:(2)功能简介: MCS-51外接一片8155,8155的命令寄存器地址为FF20H、A口地址为FF21H,B口地址为FF22H。其中的B口作字行口,经同相驱动器74LS244接各显示器的字段端,A口作字位口,经反相驱动器74LS06接各显示器的公共端COM。在79H地址单元以后输入06
21、0102010600,运行程序,在LED显示器会显示051216。(3)程序清单:(加点)0000 ORG 0000H0000 7403 DIS: MOV A,#00000011B0002 90FF20 MOV DPTR,#0FF20H0005 F0 MOVX DPTR,A0006 7879 DIS_RET: MOV R0,#79H0008 7B01 MOV R3,#01H000A EB MOV A,R3000B 90FF21 DIS0: MOV DPTR,#0FF21H000E E4 CLR A000F F0 MOVX DPTR,A0010 A3 INC DPTR0011 E6 MOV A,
22、R00012 2416 ADD A,#16H0014 83 MOVC A,A+PC0015 BB0402 CJNE R3,#04H,NEXT10018 54BF ANL A,#0BFH001A BB1002 NEXT1: CJNE R3,#10H,NEXT2001D 54BF ANL A,#0BFH001F F0 NEXT2: MOVX DPTR,A0020 113C ACALL DELAY0022 EB MOV A,R30023 20E5E0 JB ACC.5,DIS_RET0026 23 RL A0027 08 INC R00028 FB MOV R3,A0029 80E0 SJMP DIS0002B C0 F9 A4 TAB: DB 0C0H,0F9H,0A4H, 0B0H, 99H,92H,82H,0F8H002E B0 99 92 82 F8 0033 80 90 88 DB 80H,90H,88H,83H,0C6H, 0A1H,86H,84H,0FFH0036 83 C6 A1 86 84 FF003C 7F02 DELAY: MOV R7,#02H003E 7EFF MOV R6,#0FFH0040 DEFE DJNZ R6,$0042 DFFA DJNZ R7,$-40044 22 RET0000 END