单片机八段数码管显示课程设计

目录

一.前言 . ........................................................................................................................................................ 2

二. 设计任务和要求 . .................................................................................................................................. 2

2.1 设计目的 . ......................................................................................................................................... 2

2.2 设计意义 . ......................................................................................................................................... 3

三.总原理图及及主要模块的流程图 ......................................................................................................... 3

3.1七段数码管的字型代码表 ............................................................................................................... 3

3.2 主要流程图 . ..................................................................................................................................... 6

四.实验步骤: . ............................................................................................................................................ 7

五.程序汇编代码如下 . ................................................................................................................................ 8

六.程序调试过程及运行结果 ................................................................................................................... 11

七.结论与心得 . .......................................................................................................................................... 15

单片机八段数码管显示课程设计

一.前言

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU 表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

从上世纪70年代第一批单片机问世,短短二三十年时间,单片机技术已经成为计算机技术的一个重要分支,广泛运用到工业控制、仪器、仪表、消费产品,汽车、办公自动化和通信等领域。因此,单片机技术已经成为电子、测控、自动化、通信等许多工科专业学生的必备技能。我用AT89C51芯片来设计一个简单的数码管显示。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。关键词:单片机,AT89C51, 数码管

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

二. 设计任务和要求 2.1 设计目的

1. 学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。

2. 了解AT89C51这个芯片的使用和性能指标测试方法。 3. 培养实践技能,提高分析和解决实际问题的能力。

4.了解数码管动态显示的原理及了解74LS164扩展端口的方法。

2.2 设计意义

为了更好地熟悉和掌握单片机的基本功能和编程,掌握数码管动态扫描显示原理及实现方法。自我动态扫描显示电路驱动程序的编写方法。通过课程设计,达到理论与实际应用相结合,提高学生对微机硬件结构的软件设计方法的理解,使学生能够根据实际应用,初步实现硬件及软件的设计,对硬件开发有更深层的认识,为今后打软硬件开发,打下坚实的基础。

三.总原理图及及主要模块的流程图

3.1本实验仪提供了8段码数码管LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,采用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H。本实验涉及到了8155 I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

3.1七段数码管的字型代码表

1. 数码管电路图如下

2.8155键显模块

3.2 主要流程图

1. 主程序的流程图

四.实验步骤:

1、将KEIL 仿真器上40芯排线一端和实验箱上51CPU 板上的40芯排针连接起来,将仿真器连接的USB 或串口线与PC 机对应的USB 或串口连接起来,打开实验箱电源。 2、进入KEIL 软件界面,点击项目/打开项目

在C:\KEIL\UV2\3000TC51配套实验例程中选择实验一,内有ASM 和C51两种程序,进入ASM 文件夹打开LED 项目文件

进入如图所示界面

点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—F

五.程序汇编代码如下

主程序和子程序都存放在AT89C51单片机中。主程序的功能是:显示数字。子程序的功能有:延时。

程序代码:Num equ 70h ; 显示的数据 DelayT equ 75h ; org 0000h ljmp Start

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop:

djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED:

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop:

mov dptr, #OUTBIT

mov a, #00h

movx @dptr, a ; 关所有八段管 mov a, @r0

mov B, #8 ; 送164 DLP:

rlc a mov r3, a mov acc.0, c ANL A, #0FDH mov dptr, #DAT164 movx @dptr, a mov dptr, #CLK164 orl a,#02h movx @dptr, a anl a,#0fDh movx @dptr, a mov a, r3 djnz B, DLP mov dptr, #OUTBIT mov a, r2

movx @dptr, a ; mov r6, #1 call Delay

mov a, r2 ; rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0

显示一位八段管显示下一位

movx @dptr, a ; 关所有八段管 ret

Start: mov dptr,#0e100h mov a,#03h movx @dptr,a mov sp, #40h mov Num, #0 MLoop:

inc Num mov a, Num mov b, a mov r0, #LEDBuf FillBuf:

mov a, b anl a, #0fh mov dptr, #LEDMap

movc a, @a+dptr ; 数字转换成显示码 mov @r0,a ; 显示在码填入显示缓冲 inc r0 inc b

cjne r0, #LEDBuf+6, FillBuf mov DelayT,#30 DispAgain:

call DisplayLED ; 显示 djnz DelayT,DispAgain ljmp MLoop END

六.程序调试过程及运行结果

通过用Uvision 按编译运行没错误后执行但不调试 看到每一步执行结果运行状态的各个内存外存数据变化情况

调试菜单如图所示

寄存器状图

七.结论与心得

此次课程设计使我受益良多,在着一周的时间里我我遇到了很多困难,但是通过同学的和老师的帮主都一一解决了,在作品完成的同时我也感觉到自己对嵌入式有了更多的认识和理解,在此真诚的感谢帮助我的同学和老师。

目录

一.前言 . ........................................................................................................................................................ 2

二. 设计任务和要求 . .................................................................................................................................. 2

2.1 设计目的 . ......................................................................................................................................... 2

2.2 设计意义 . ......................................................................................................................................... 3

三.总原理图及及主要模块的流程图 ......................................................................................................... 3

3.1七段数码管的字型代码表 ............................................................................................................... 3

3.2 主要流程图 . ..................................................................................................................................... 6

四.实验步骤: . ............................................................................................................................................ 7

五.程序汇编代码如下 . ................................................................................................................................ 8

六.程序调试过程及运行结果 ................................................................................................................... 11

七.结论与心得 . .......................................................................................................................................... 15

单片机八段数码管显示课程设计

一.前言

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU 表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。

从上世纪70年代第一批单片机问世,短短二三十年时间,单片机技术已经成为计算机技术的一个重要分支,广泛运用到工业控制、仪器、仪表、消费产品,汽车、办公自动化和通信等领域。因此,单片机技术已经成为电子、测控、自动化、通信等许多工科专业学生的必备技能。我用AT89C51芯片来设计一个简单的数码管显示。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。关键词:单片机,AT89C51, 数码管

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

二. 设计任务和要求 2.1 设计目的

1. 学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。

2. 了解AT89C51这个芯片的使用和性能指标测试方法。 3. 培养实践技能,提高分析和解决实际问题的能力。

4.了解数码管动态显示的原理及了解74LS164扩展端口的方法。

2.2 设计意义

为了更好地熟悉和掌握单片机的基本功能和编程,掌握数码管动态扫描显示原理及实现方法。自我动态扫描显示电路驱动程序的编写方法。通过课程设计,达到理论与实际应用相结合,提高学生对微机硬件结构的软件设计方法的理解,使学生能够根据实际应用,初步实现硬件及软件的设计,对硬件开发有更深层的认识,为今后打软硬件开发,打下坚实的基础。

三.总原理图及及主要模块的流程图

3.1本实验仪提供了8段码数码管LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,采用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H。本实验涉及到了8155 I0/RAM扩展芯片的工作原理以及74LS164器件的工作原理。

3.1七段数码管的字型代码表

1. 数码管电路图如下

2.8155键显模块

3.2 主要流程图

1. 主程序的流程图

四.实验步骤:

1、将KEIL 仿真器上40芯排线一端和实验箱上51CPU 板上的40芯排针连接起来,将仿真器连接的USB 或串口线与PC 机对应的USB 或串口连接起来,打开实验箱电源。 2、进入KEIL 软件界面,点击项目/打开项目

在C:\KEIL\UV2\3000TC51配套实验例程中选择实验一,内有ASM 和C51两种程序,进入ASM 文件夹打开LED 项目文件

进入如图所示界面

点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—F

五.程序汇编代码如下

主程序和子程序都存放在AT89C51单片机中。主程序的功能是:显示数字。子程序的功能有:延时。

程序代码:Num equ 70h ; 显示的数据 DelayT equ 75h ; org 0000h ljmp Start

LEDMAP: ; 八段管显示码

db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop:

djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED:

mov r0, #LEDBuf

mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop:

mov dptr, #OUTBIT

mov a, #00h

movx @dptr, a ; 关所有八段管 mov a, @r0

mov B, #8 ; 送164 DLP:

rlc a mov r3, a mov acc.0, c ANL A, #0FDH mov dptr, #DAT164 movx @dptr, a mov dptr, #CLK164 orl a,#02h movx @dptr, a anl a,#0fDh movx @dptr, a mov a, r3 djnz B, DLP mov dptr, #OUTBIT mov a, r2

movx @dptr, a ; mov r6, #1 call Delay

mov a, r2 ; rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0

显示一位八段管显示下一位

movx @dptr, a ; 关所有八段管 ret

Start: mov dptr,#0e100h mov a,#03h movx @dptr,a mov sp, #40h mov Num, #0 MLoop:

inc Num mov a, Num mov b, a mov r0, #LEDBuf FillBuf:

mov a, b anl a, #0fh mov dptr, #LEDMap

movc a, @a+dptr ; 数字转换成显示码 mov @r0,a ; 显示在码填入显示缓冲 inc r0 inc b

cjne r0, #LEDBuf+6, FillBuf mov DelayT,#30 DispAgain:

call DisplayLED ; 显示 djnz DelayT,DispAgain ljmp MLoop END

六.程序调试过程及运行结果

通过用Uvision 按编译运行没错误后执行但不调试 看到每一步执行结果运行状态的各个内存外存数据变化情况

调试菜单如图所示

寄存器状图

七.结论与心得

此次课程设计使我受益良多,在着一周的时间里我我遇到了很多困难,但是通过同学的和老师的帮主都一一解决了,在作品完成的同时我也感觉到自己对嵌入式有了更多的认识和理解,在此真诚的感谢帮助我的同学和老师。


相关内容

  • 2013嵌入式系统课程设计报告模板(硬件)
  • 嵌入式系统课程设计报告模板 软 件 学 院 课程设计报告书 课程名称 嵌入式系统 设计题目 模拟电梯控制系统 专业班级 学 号 姓 名 指导教师 年 月 1 设计时间 2 设计目的 (1)利用所学过的知识,初步分析单片机原理及接口技术的能力: (2)进一步掌握硬件电路和软件功能的设计方法: (3)了 ...

  • 简易滤纸式烟度计设计
  • 目录 一.传感器课程设计任务计划书................................................................................ 1 1.1.实习性质及目的 ...................................... ...

  • 基于51单片机的数据采集器
  • 重庆大学本科专业综合课程设计论文 电类课程设计 题 目: 数据采集的控制系统设计 学 生: xxx xxx xxx 指导教师: x x 院 系: xx 工程学院 专业班级: xxxxx3班 x x 大 学 2014 年 6 月 摘要 数据的采集和处理是数字信号处理中十分重要的一个环节,为了设计一个对 ...

  • 数字密码锁的PCB电路
  • 摘 要 本文主要设计了一种以单片机89C51为核心的数字密码锁,详细的介绍了该数字密码锁完整的设计过程和外围的开锁电路的设计.数字密码锁主要由三部分组成:键盘接口电路.数字密码锁的控制电路.输出八段显示电路.键盘接口电路包括时序产生电路.键盘扫描电路.键盘译码电路.数字密码锁控制电路设计包括数字按键 ...

  • 红外防盗报警器的设计
  • 红外防盗报警器的设计 机械工程测试技术课程设计 红外防盗报警器的设计 姓 名: 学 号: 指导教师: 院系: 专 业: 完成日期: 田德阳 [1**********]3 卢纪丽 机电工程学院 机械设计制造及其自动化 2014年12 月 3日 红外防盗报警器的设计 摘 要 本系统是基于单片机AT89C ...

  • 基于单片机LED数码管共阴极显示电路课程设计
  • 物理与电子工程学院 <单片机原理与接口技术> 课程设计报告书 设计题目:基于单片机LED 数码管共阴极显示电路 专 业: 自动化 班 级: 14级 接本班 学生姓名: 李超 学 号: [1**********]08 指导教师: 成燕平 2014年6月9日 物理与电子工程学院课程设计任务书 ...

  • 超声波测距
  • 现代测控技术课程设计 超声测距系统设计 学 院: 班 级: 姓名学号: 学 号: 指导教师: 利用超声波作为定位技术是蝙蝠等生物作为防御和捕捉猎物生存的手段,也就是由生物体发射不能被人们听到的超声波20Hz 以上的机械波,借助空气或其它介质传播.通过被待捕捉的猎物或障碍物反射回来的时间间隔长短和反射 ...

  • 人体反应速度测试仪 毕业设计
  • 第一章 课题综述 1.1 课题背景 速度素质是指人体进行快速运动的能力,即在单位时间内迅速完成某一动作或通过某一距离的能力.反应速度是指人体对刺激发生反应的快慢.从生理机制分析,反应快慢取决于"反射弧"的五个环节:感受器-传入神经-神经中枢-传出神经-效应器.下面以MCS-805 ...

  • 基于51单片机电子密码锁设计
  • 摘要 自从人类开始制造锁以来长期所使用的锁都是机械锁,通俗的讲就是弹子芯锁.而传统的弹子芯锁,由于其本身锁芯密齿的有限加之开锁工具钥匙的容易复制性,使得其安全性大大降低,随着人们生活质量的提高,如何实现安全有效的防盗这一问题受到越来越多人的关注.传统的机械锁由于安全性能太差,被撬的事件屡见不鲜,相比 ...