2023年数码管动态显示实验报告.pdfVIP

  • 154
  • 0
  • 约3.91千字
  • 约 3页
  • 2023-08-03 发布于四川
  • 举报
实验四 数码管动态显示实验一 一、实验要求 1. 在 Proteus 软件中画好 51 单片机最小核心电路,包括复位电路和晶振电路 2. 在电路中增加四个 7 段数码管( 共阳/ 共阴自选), 将 P1 口作数据输出口与 7 段数码 管数据引脚相连 ,P2.0~P2.3 引脚输出选控制信号 3. 在 Keil 软件中编写程序, 采用动态显示法, 实现数码管分别显示数字 1 ,2 ,3 ,4 二、实验目的 1. 稳固 Proteus 软件和 Keil 软件的使用方法 2. 学习端口输入输出的高级应用 3. 掌握 7 段数码管的连接方式和动态显示法 4. 掌握查表程序和延时等子程序的设计 三.实验说明 本实验是将单片机的 P1 口做为输出口,将四个数码管的七段引脚分别接到 P1.0 至 P1.7 。由于电路中采用共阳极的数码管,所以当 P1 端口相应的引脚为 0 时,对应的数码管 段点亮。程序中预设了数字 0-9 的段码。由于是让四个数码管显示不同的数值,所以要用扫 描的方式来实现。因此定义了 scan 函数,接到单片机的 p2.0 至 p2.3 在实验中,预设的数字段码表存放在数组 TAB中,由于段码表是固定的,因此存储类型 可设为 code 。 在 Proteus 软件中按照要求画出电路,再利用 Keil 软件按需要实现的功能编写 c 程序, 生成 Hex 文件,把 Hex 文件导到 Proteus 软件中进行仿真 。为了能够更好的验证实验要求, 在编写程序时需要延时 0.5s ,能让人眼更好的分辨;89C51 的一个机器周期包含 12 个时钟 脉冲 ,而我们采用的是 12MHz晶振,每一个时钟脉冲的时间是 1/12us ,所以一个机器周期 为 1us 。在 keil 程序中,子函数的实现是用 void delay_ms(int x) ,其 中 x 为 1 时是代表 1ms。 四、硬件原理图及程序设计 〔一 〕硬件原理图设计 电路中 P1.0 到 P1.7 为数码管七段端口的控制口,排阻 RP1 阻值为 220 Ω,p2.0 到 p2.3 为数码管的扫描信号。AT89c51 单片机的 9 脚 〔RST〕为复位引脚,当 RST 为高电平的时间 到达 2 个机器周期时系统就会被复位 ;31 引脚 〔EA〕为存取外部存储器使能引脚,当 EA为 高电平是使用单片机 内部存储器,当 EA为低 电平时单片机那么使用外部存储器 。18、19 引 脚是接晶振脚。而接地和电源端在软件中已经接好,所以不用在引线 。 如下列图所示 : 机的至在实验中预设的数字段码表存放在数组中由于段码表是固定的因此存储类型可设为在软件中按照要求画出电路 〔二〕流程图与程序设计 开始 声明驱动 将四个数码管的七段引脚分别接到至由于电路中采用共阳极的数码管所以当端口相应的引脚为时对应的数码管段点亮 信号数组 声明延时函数 扫描数组的值 读 取 数 组 数 据 及 数据处理 显示数值 用动态显示法实现数码管分别显示数字二实验目的稳固软件和软件的使用方法学习端口输入输出的高级应用掌握段数 〔三〕程序设源代码 #include reg51.h

文档评论(0)

1亿VIP精品文档

相关文档