实验三、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 0000HAJMP MAINORG 0030H MAIN:CLR P2.0 ;MOV P0, #28H ;LCALL DELAY ; MOV P0, #0FFH ;SETB P2.0CLR P2.1 ;MOV P0, #7EH ;LCALL DELAYMOV P0, #0FFHSETB P2.1CLR P2.2 ;MOV P0, #0A2H ;LCALL DELAYMOV P0, #0FFHSETB P2.2CLR P2.3 ;MOV P0, #62H ;LCALL DELAYMOV P0, #0FFHSETB P2.3CLR P2.4 ;MOV P0, #74H ;LCALL DELAYMOV P0, #0FFHSETB P2.4CLR P2.5 ;MOV P0, #61H ; LCALL DELAYMOV P0, #0FFHSETB P2.5CLR P2.6 ;MOV P0, #21H ; LCALL DELAYMOV P0, #0FFHSETB P2.6CLR P2.7 ;MOV P0, #7AH ; LCALL DELAYSETB P2.7MOV P0, #0FFHAJMP MAIN ; DELAY: ;MOV R7, #2D1: MOV R6, #25D2: DJNZ R6, D2DJNZ R7, D1RETEND 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. 实验小结(包括理论知识的总结和实验结果的分析)。