南昌大学单片机实验报告及程序

  • 格式:doc
  • 大小:690.50 KB
  • 文档页数:25

实 验 报 告 实验课程: 单片机原理与应用实验 学生姓名: *** 学 号: ********** 专业班级: 电力系统及其自动化111班

2013年 12 月 16 日 南昌大学实验报告 学生姓名: 吴晓峰 学 号: 6100311019 专业班级: 电力系统111班 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:

实验一、I/O口的应用 一、实验要求 单片机P1.0口外接8个LED灯,P3.0口接开关,电路图如下,当开关断开时,流水灯从L1到L7依次间隔0.2秒循环点亮,在任意位置当开关合上时,流水灯便从L7灯开始,按照L7到L6的顺序点亮,晶振选用11.0592MH。 二、选择元器件 1.80C51 2.Crystal 3.CAP 4.22p ceramic22p 5.3watt10k 6.LED-BIRG 7.SWITCH

三、放置元器件及连线

用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口); 用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

四、实验程序 程序要求:用延时程序设计灯每间隔0.2秒循环点亮 1、汇编程序:

ORG 0000H LJMP START START: MOV SP,#60H; 设置堆栈 JB P3.0,ZY; 若开关断开,P3.0为1,转到左移子程序 JNB P3.0,YY; 若开关合上,P3.0为0,转到右移子程序 YY: MOV A,#7FH; 右移程序 ACALL YY1 RET ZY: MOV A,#0FEH; 左移程序 ACALL ZY1 RET YY1: MOV P1,A; 将A送入P1,灯从L7开始亮 ACALL DELAYS; 延时 RR A; 右移一位 JNB P3.0,YY1; 判断开关是否合上,若合上,P3.0为0,转到YY1,继续右移 JB P3.0,START; 若开关断开,P3.0为1,转到START,重新从L1灯开始左移 RET ZY1: MOV P1,A; 将A送入P1,灯从L1开始亮 ACALL DELAYS; 延时 RL A; 左移一位 JNB P3.0,START; 若开关合上,P3.0为0,转到START,重新从L7灯开始右移 JB P3.0,ZY1; 若开关断开,P3.0为1,转到ZY1,继续左移 RET DELAYS: MOV R6,#2; 延时0.2s DELAYS2: MOV R4,#100; 延时100ms DELAYS1: MOV R5,#230; 延时1ms LOOP: NOP NOP DJNZ R5,LOOP DJNZ R4,DELAYS1 DJNZ R6,DELAYS2 RET END

四、实验心得

通过本次对实验程序进行了仿真与调试,因此实验顺利完成,但有些时候还是有问题,本次试验,是我们更加对I/O口有进一步了解,是我们更好地掌握所学的知识 现象:打开开关,我们观察到L1到L7灯循环亮。 南昌大学实验报告 学生姓名: 吴晓峰 学 号: 6100311019 专业班级: 电力系统111班 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:

实验二、外部中断实验 一、实验目的 学习外部中断技术的基本使用方法。 二、实验内容 INT0 端接单次脉冲发生器。 按一次脉冲产生一次中断,CPU 使P1.0 状态发生一次反转,P1.0接 LED 灯,以查看信号反转。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明

1)外部中断的初始化设置共有三项内容:中断总允许即 EA=1,外部中断允许即 EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚 INT0(P3.2)和 INT1(P3.3)引入。 2)中断服务的关键: a、保护进入中断时的状态。 堆栈有保护断点和保护现场的功能使用 PUSH 指令, 在转中断服务程序之 前把单片机中有关寄存单元的内容保护起来。 b、必须在中断服务程序中设定是否允许中断重入,即设置 EX0 位。 c、用 POP 指令恢复中断时的现场。 3)中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51 系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及 IP。 4) 中断响应的过程: 首先中断采样然后中断查询最后中断响应。 采样是中断处理的第一步, 5) 对于本实验的脉冲方式的中断请求, 若在两个相邻周期采样先高电平后低电平则中断请求有效, 6) IE0 或 IE1 置“1” ;否则继续为“0” 。所谓查询就是由 CPU 测试 TCON 和 SCON 中各标志位的状 7) 态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。 8) 本实验需要用到 CPU 模块(F3 区)和八位逻辑电平显示模块(B5 区) 、单次脉冲模块(E3区)。 五、实验预习要求 学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。 六、实验步骤 1) 系统各跳线器处在初始设置状态, 用导线连接单次脉冲模块的输出端到 CPU 模块的 P32;CPU 模块的P10 接八位逻辑电平显示模块的灯。 2)启动PC机,打开 THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)连续按动单次脉冲产生电路的按键,发光二极管 L0 每按一次状态取反,即隔一次点亮。 七、实验程序 1.汇编程序 ORG 0000H LJMP MAIN ORG 0003H LJMP ITOP ORG 1000H MAIN: MOV SP,#60H SETB EX0 SETB IT0 SETB EA HERE: SJMP HERE ITOP: CPL P1.0 RETI END 2、C语言程序 #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; void main() { IE0=1; IT0=1; EX0=1; EA=1; while(1); } void zhongduan() interrupt 0 { LED=!LED; //取反 }

八、结果分析: 运行程序后,连续按动单次脉冲产生电路的按键,发光二极管L0 每按一次状态取反,即隔一次点亮,综合分析,本实验主要有2个模块:中断模块和主程序模块,主程序主要是用来初始化中断的,包括中断模式的选择,中断开关的打开,当脉冲变化时触发中断,硬件自动产生ACALL指令,跳转到中端口执行程序。 九、实验心得 通过这次实验,我学到了如何通过外部的控制,对单片机实现中断的处理,外部中断首先要初始化设置,中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式的选择可以选择电平方式或者脉冲方式。 本次试验外部中断,通过程序的仿真与调试,我们完成了实验,本次试验,是我们了解外部中断的原理及如何应用,让我们去掌握学到的知识,印象更深刻,学以致用。

现象:按一次脉冲产生一次中断,CPU 使P1.0 状态发生一次反转,P1.0接 LED 灯,以查看信号反转。 南昌大学实验报告 学生姓名: 吴晓峰 学 号: 6100311019 专业班级: 电力系统111班 实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:

实验三、定时器\计时器的应用 一、实验目的 学习51单片机内部计数器的使用和编程方法。 二、实验内容 单片机P1.0口外接8个LED灯,P3.0口接开关,电路图如下,当开关断开时,流水灯从L1到L7依次间隔0.5秒循环点亮,在任意位置当开关合上时,流水灯便从L7灯开始,按照L7到L6的顺序点亮,晶振选用11.0592MH。 三、实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四、实验说明 关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为0.2秒钟。 定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON。TMOD 用于设置定时器/计数器的工作方式 0-3,并确定用于定时还是用于计数。TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡器周期。假设实验系统的晶振是 11.0592MHZ,程序工作于方式1, 定时器50mS,中断一次。中断10次为0.5秒。 五、选择元器件 8.80C51 9.Crystal 10、CAP 11、22p ceramic22p 12、3watt10k 13、LED-BIRG 14、SWITCH 六、放置元器件及连线 仿真电路图:

七、实验步骤 1)先画出仿真电路图,载入程序进行仿真 2)在实验箱上,系统各跳线器处在初始设置状态,用导线连接 CPU 模块 P10