仿真软件Keil和protues的使用;流水灯实验;中断系统实验;数码显示实验;键盘接口实验
实验二:流水灯实验
一、 实验目的
1、 熟悉LED的显示特点;
2、 了解单片机系统实现花样流水灯实验的硬件电路和软件编程技巧; 3、 熟悉基本汇编指令的灵活应用。
二、 实验仪器、材料
1、 微型计算机(PⅣ以上)
2、 编程、汇编与模拟平台软件Keil uVision4 3、 电子技术专业仿真软件protues运行平台 4、 单片机实训开发电路板
三、 实验内容和步骤
1、 花样流水灯实验电路原理图如下
2、完成以下花样流水灯的实现:(要求:程序4采用查表形式编写) 1)从左到右(或从右到左)流水循环点亮实验 2)从两端到中间、从中间到两端循环点亮实验
3)如图:D1-D4为一组,D5-D8为一组,两组循环点亮。 4)独立编写程序,完成一组新的花样。
四、 实验要求
1. 2. 3. 4. 5. 6. 7.
完成仿真电路设计,要求电路布局整齐规范,参数标注清楚; 在参考程序的基础上,编写源程序代码; 至少绘制一个程序的流程图
编译连接源程序,没有任何警告信息和错误信息出现; 编译连接的源程序代码,能在仿真电路上正常运行; 进一步精简修改原程序代码,使之更加完善; 总结本实验的编程方法和技巧;
参考程序:
//从左到右(或从右到左)流水循环显示实验 ORG 0000H AJMP MAIN ORG 0030H
MAIN:MOV A,#80H //MOV A,#03H ;从右到左 LOOP:RL A //RR A ;从右到左 MOV P1,A ACLL DELA SJMP LOOP DELAY:MOV R7,#0FFH ;延时程序 DELAY1:MOV R4,#0FFH DELAY2:MOV R5,#03H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END
//从两端到中间、从中间到两端显示实验 ORG 0000H
LOOP:MOV P1,#81H //1000 0001 ACALL DELAY MOV P1,#42H //0100 0010 ACALL DELAY MOV P1,#24H //0010 0100 ACALL DELAY MOV P1,#18H //0001 1000 ACALL DELAY MOV P1,#24H //0010 0100 ACALL DELAY MOV P1,#42H ACALL DELAY SJMP LOOP DELAY:MOV R7,#0FH ;延时程序 DELAY1:MOV R6,#0FH DELAY2:MOV R5,#02H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END
//带CY循环移位,从左到右、从右到左流水显示实验3 ORG 0000H MOV A,#00H SETB CY LOOP:RLC A JC LOOP1 MOV P1,A ACALL DELAY SJMP LOOP LOOP1:RRC A JC LOOP MOV P1,A ACALL DELAY SJMP LOOP1 DELAY:MOV R7,#0FFH ;延时程序 DELAY1:MOV R6,#0FFH DELAY2:MOV R5,#02H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END
//花样流水灯查表显示实验 ORG 0000H START:MOV R0,#00H MOV P1,#00H LOOP:MOV A,R0 ADD A,#0CH MOVC A,@A+PC CJNE A,#01H,XSH ;3 SJMP START ;2 XSH:MOV P1,A ;2 ACALL DELAY ;2 INC R0 ;1 SJMP LOOP ;2 ASCTAB:DB
0FFH,00H,0FFH,00H,0FFH,00H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0CCH,55H,0AAH,55H,0AAH,55H,0AAH,55H DB
81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H DB
03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,01H
DELAY:MOV R7,#0FFH ;延时程序 DELAY1:MOV R6,#0FFH DELAY2:MOV R5,#02H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET END */
实验三:中断系统实验
一、 实验目的
1. 结合理论教学,进一步熟悉外部中断INT0和INT1、定时器/计数器的基本概念和原理;
2. 理解掌握定时器控制寄存器TCON、中断允许控制寄存器IE、中断优先级别控制寄存器IP的功能
和设置方法;
3. 了解并熟悉MCS-51单片机外部中断INT0和INT1、定时器/计数器的电路设计特点和应用特点; 4. 能够针对MCS-51单片机,进行外部中断INT0和INT1、定时器/计数器的初始化设置,能够完成
简单中断服务程序的功能应用设计。
5. 进一步熟悉、掌握MCS-51单片机指令系统和应用软件的编程方法和技巧。 二、 实验设备、材料
1. 2. 3. 4.
微型计算机(PⅣ以上);
编程、汇编与模拟平台软件Keil uVision4; 电子技术专业仿真软件protues运行平台; 单片机实训开发电路板。
三、 实验内容和实验步骤 1、外部中断系统实验:
1)用INT0控制流水灯左移1位,用INT1控制流水灯右移1位。系统仿真电路参考原理图1
C130pF19U1X1XTAL112MHzP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7D9D16D15D14D13D12D11D10LED-REDLED-REDLED-REDLED-REDLED-REDLED-REDLED-REDLED-REDC230pF18XTAL2C3910uR110K293031RSTR4200R13R14R15R16R17R18R19200300200200200200200PSENALEEAINT0_RINT1_LR2R310k10k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 2、定时器/计数器系统实验:
内部定时器模式:使用定时器/计数器T1,工作方式1,要在P1.0上输出40个周期为2ms的方波,假设系统振荡频率采用12MHz。(要求:写出详细写出初始值计算过程,参考程序如下:)
ORG 0100H MAIN:MOV TMOD, #01H MOV TL0, #00H SETB TR0
MOV TH0, #3BH NE:DJNZ R7, NEXT CPL P1.0 SJMP MAIN
NEXT: MOV TL0, #00H
MOV TH0, #3CH SJMP LOOP
MOV R7,#10 LOOP:JBC TF0,NE SJMP LOOP
END 四、实验要求
1. 2. 3. 4. 5. 6.
完成仿真电路设计,要求电路布局整齐规范,参数标注清楚; 在参考程序的基础上,编写源程序代码;
编译连接源程序,没有任何警告信息和错误信息出现; 编译连接的源程序代码,能在仿真电路上正常运行; 进一步精简修改原程序代码,使之更加完善; 总结本实验的编程方法和技巧;
参考程序:
1、外部中断系统实验:
1)用INT0控制流水灯左移1位,用INT1控制流水灯右移1位。 参考程序1:
ORG 0020H MAIN:MOV TCON,#05H MOV IE,#85H MOV P2,#0FEH MOV A,#0FEH 参考程序2:
ORG 0000H
AJMP MAIN ORG 0003H ;INT0中断入口地址 CLR F0 RETI ORG 0013H ;INT1中断入口地址 SETB F0 RETI ORG 0030H MAIN:MOV P2,#0FFH MOV TCON,#05H MOV IE,#85H MOV A,#7FH RRR:JNB F0,LLL RR A //右移 MOV P2,A
ORG 0000H AJMP MAIN
ORG 0003H ;INT0中断入口地址 LJMP IN0
ORG 0013H ;INT1中断入口地址 LJMP IN1
SJMP $ IN0:CLR EA
RL A //左移 MOV P2,A SETB EA RETI IN1:CLR EA
RR A //右移 MOV P2,A SETB EA END
ACALL DELAY SJMP RRR LLL:JB F0,RRR RL A //左移 MOV P2,A ACALL DELAY SJMP LLL
DELAY:MOV R7,#8FH ;延时程序 DELAY1:MOV R6,#0FFH DELAY2:MOV R5,#02H DELAY3:DJNZ R5,DELAY3 DJNZ R6,DELAY2 DJNZ R7,DELAY1 RET
END
2、定时器/计数器系统实验: 1)内部定时器模式、方式2:
查询方式: 中断方式: ORG 0000H ORG 0000H LJMP MAIN LJMP MAIN ORG 0030H ORG 000BH
MAIN: MOV IE, #00H LJMP TT0 MOV TMOD, #02H ORG 0030H MOV TH0, #0CEH MAIN:MOV SP,#60H MOV TL0, #0CEH SETB EA SETB TR0 LOOP:JBC TF0, LOOP1 AJMP LOOP LOOP1:CPL P1.0 AJMP LOOP END
SETB ET0
MOV TMOD, #02H MOV TH0, #0CEH MOV TL0, #0CEH SETB TR0 SJMP $
TT0:CPL P1.0
RETI
END