资源描述
实验三、51单片机的编程和应用设计——动态显示窗口的设计与应用
一、 实验目的:
1、 掌握单片机I/O技术和程序设计的综合知识。
2、 掌握数码管显示的基本原理。
二、 实验内容:
设计一个数码管动态显示系统,控制8个数码管动态扫描显示01234567。
三、 实验要求:
设计控制8个数码管动态扫描显示01234567,要求连续地看到01234567这八个数。
四、 实验设备及实验耗材:
计算机一台,WAVE6000软件模拟器,完成ISP下载的XLISP软件,XL1000单片机综合仿真试验仪一台(8个用共阳接法连接的8段数码管,89C51一片,9针对9针的串口线一条,USB电缆一条)
五、 实验基本原理与方法:
预习教科书MCS-51单片机的I/O技术及指令系统中的布尔指令,查找相关资料掌握8段数码管显示的基本原理,分析解决如何在一个屏幕上显示01234567这些不同数字的问题。
共阳接法:低电平亮,高电平灭
数码管部分 JP5(控制数码管的8段)
JP8(输入高电平选中相应的数码管)
数码管实际上是由7个发光管组成的8字形构成的,加上小数点就是8个。我们分别把它命名为ABCDEFGH。由于接法是共阳接法,所以低电平是亮,高电平是灭。例如,我们要显示一个数字2则是C、F、H(小数点)不亮,P0.0-P0.7控制数码管的8段,0为亮,1为灭,从高往低排列,P0.0-P0.7写成二进制为10100010,把它转化为十六进制数为A2H,当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。我们把数码管显示数字编制为一个表格。
有了这个表格上面显示一个2的程序则可简化为
LOOP:
CLR P2.7 ;选中左边的数码管
MOV P0,#0A2H
JMP LOOP
END
原理图中把所有数码管的a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受IO线控制。CPU向字段输出口送出字形码,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪位工作,例如我们选中P2.7最后一位亮了。同样,如果要选中第一位,将CLR P2.7改为CLR P2.0即可。
这里有一个矛盾,所有数码管的8个笔划段a-h同名端连在一起,那么在一个屏幕上如何显示012345这样不同的数字呢?的确,在这种接法中同一瞬间所有的数码管显示都是相同的,不能显示不同的数字。在单片机里,首先显示一个数,然后关掉,然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每个显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会由闪烁感。
例如数码管显示01234567这么8个数,在单片机中实际的工作流程如下:先打开P2.0送0,然后关掉P2.0,打开P2.1送1,再关掉P2.1,打开P2.2送2,依次向下,由于速度足够快,那么我们将连续地看到01234567这8个数。
六、 实验方案设计:
1、 采用哪些I/O口完成89C51与数码管的通信。
2、 说明该程序的功能,给程序加上注释。
3、 硬件连接原理图。
七、 实验步骤:
1. 弄清实验内容和实验要求。
2. 复习相关理论知识,提出实验方案,画出程序流程图。
开始
选中第1个数码管
显示0
关显示
延时
选中第2个数码管
显示1
关显示
延时
选中第8个数码管
显示7
关显示
延时
结 束
软件流程图
3. 实验程序,分号后加注释,便于查看和调试。
程序:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
CLR P2.0 ;
MOV P0, #28H ;
LCALL DELAY ;
MOV P0, #0FFH ;
SETB P2.0
CLR P2.1 ;
MOV P0, #7EH ;
LCALL DELAY
MOV P0, #0FFH
SETB P2.1
CLR P2.2 ;
MOV P0, #0A2H ;
LCALL DELAY
MOV P0, #0FFH
SETB P2.2
CLR P2.3 ;
MOV P0, #62H ;
LCALL DELAY
MOV P0, #0FFH
SETB P2.3
CLR P2.4 ;
MOV P0, #74H ;
LCALL DELAY
MOV P0, #0FFH
SETB P2.4
CLR P2.5 ;
MOV P0, #61H ;
LCALL DELAY
MOV P0, #0FFH
SETB P2.5
CLR P2.6 ;
MOV P0, #21H ;
LCALL DELAY
MOV P0, #0FFH
SETB P2.6
CLR P2.7 ;
MOV P0, #7AH ;
LCALL DELAY
SETB P2.7
MOV P0, #0FFH
AJMP MAIN ;
DELAY: ;
MOV R7, #2
D1: MOV R6, #25
D2: DJNZ R6, D2
DJNZ R7, D1
RET
END
4. 编译和调试。
伟福软件:
1. 打开伟福WAVE V3.20软件,采用伟福默认的仿真器就可以了。文件——新建文件,在弹出的窗口中输入实验程序,保存为“文件名.asm”文件,若窗口内的部分程序字体颜色发生改变,表示保存成功。
2. 文件——新建项目
加入模块文件:打开刚才已经保存的文件“文件名.asm”
加入包含文件:取消
保存项目“文件名.PRJ”,在项目窗口里可以看到。
3. 确保仿真器——仿真器设置——目标文件里“生成HEX文件”和“生成BIN文件”被勾选上。
4. 项目——编译,调试,编译成功后就会生成“文件名.HEX”文件。
5. 软件调试成功后,完成硬件连接。
接线方法:
1、 接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51。
2、 接8位数码管的显示位线。将数码管部份的显示位口 JP8接到CPU部份的P2口JP52。
6. 将程序烧写到单片机上,试运行。若出现问题,修改程序,重新编译和调试,直至运行成功。
ISP下载烧写程序:
确保实验仪与计算机的串口和电源都连通后,打开软件XLISP,注意串口设置,计算机和试验仪采用的是哪个串口连接,不同的计算机可能会不同,有的是COM1,有的是COM3等,可以采用自动检测功能查找。也可以在打开软件后,选项—串口,更改串口设置。如果串口选择错误,实验将无法进行。
打开(打开生成的HEX文件)——智能一键通。即可看到运行结果。重新烧写程序时应该先擦除上一个的再烧写。
实验结果: 在8个数码管上仿佛同时看到显示01234567.
八、实验报告要求:
1.分析程序,说出程序的功能,画出流程图。
2.程序加注释。
3.画出硬件接口原理电路图。
4. 实验小结(包括理论知识的总结和实验结果的分析)
展开阅读全文