数码管动态显示实验
一、实验要求
1. 在 Proteus 软件中画好 51 单片机最小核心电路,包 括复位电路 和晶振电路
2. 在电路中增加四个 7 段数码管 ( 共阳 / 共阴自选 ), 将 P1口作数据输出口与 7 段数码
管数据引脚相连 ,P2.0~P2.3 引脚输出选控制信号
3. 在 Keil 软件中编写程序 , 采用动态显示法 , 实现数码管显示变量 unsigned int
show_value 的值( show_value 的值范围为 0000~9999),即把 show_value 的千百
十个位的值用数码管显示出来。
二、实验目的
1. 巩固 Proteus 软件和 Keil 软件的使用方法
2. 学习端口输入输出的高级应用
3. 掌握 7 段数码管的连接方式和动态显示法
4. 掌握查表程序和延时等子程序的设计
三.实验说明
(条理清晰,含程序的一些功能分析计算)
如下图(五)所示,由 P1 口将要显示的数字输给七段数码管;再由 P2 第四位
输给数码管的公共端,作为扫描输入信号;用 外部中断 P3.2 和 P3.3 分别接
PB1与 PB2,实现数字的增减。所要实现的功能是,开始运行电路功能图时,四
个数码管分别显示 0000,按下 PB1 增 1,直到 9999 回到 0000,相反按下 PB2
减 1,直到 0000 回到 9999。
在算相关数据时,由于要显示个十百千的不同数字,要调用 disp 函数,
disp[0]=show/1000; // 显示千位的值 disp[1]=show%1000/100; // 显示百
位的值
disp[2]=show%100/10; // 显示十位的值 disp[3]=show%10; // 显示个
位的值
本实验需要用到 IE 寄存器与 TCON寄存器。
四、硬件原理图及程序设计
(一)硬件原理图设计