利用数码管显示三位数是利用了单片机数码管的动态扫描,但此方法又有不同点,我们不再需要位选table,实现的具体思路是,先将要显示的3位数进行百位,十位,个位进行分离,然后再利用动态扫描将其显示即可.
源代码如下,产生的效果是:可以显示任一个小于255的整数
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit sda=P1^0;
sbit clk=P1^1;
sbit dig1=P1^2;
sbit dig2=P1^3;
sbit dig3=P1^4;
sbit dig4=P1^5;
uchar code table_num[]={0x7e,0x0c,0xb6,0x9e,0xcc,0xda,0xfa,0x0e,0xfe,0xde};
void display(uchar);
void delay(uint);
void write164(uchar);
void main()
{
while(1)
{
display(255);
}
}
/** 显示函数(仅能显示3位整数) **/
void display(uchar temp)
{
/** 分离百位,十位,个位 **/
uchar bai,shi,ge;
bai = temp/100;
shi = temp%100/10;
ge = temp%10;
dig1=1;
/* 显示百位 */
dig2=0;
write164(table_num[bai]);
delay(10);
dig2=1;
/* 显示十位 */
dig3=0;
write164(table_num[shi]);
delay(10);
dig3=1;
/* 显示个位 */
dig4=0;
write164(table_num[ge]);
delay(10);
dig4=1;
}
/** 向锁存器写入一个字节 **/
void write164(uchar b)
{
uchar temp = b;
uint i;
for(i=0;i<8;i++)
{
clk=1;
sda = temp & 0x80;
clk=0;
temp = temp << 1;
}
}
/** 延迟函数 **/
void delay(uint time)
{
uchar x,y;
for(x=time;x>0;x--)
for(y=101;y>0;y--);
}
分享到:
相关推荐
在这个设计中,“三位半”意味着它能显示0到9之间的任意整数(称为全位),共三个全位。此外,还有一个千位,它在理论上可以显示2,但实际上由于量程限制,最大只显示1。因此,千位被称为1/2位,即理论值为2,实际...
本程序为数码管动态扫描显示: ...可传入任意三位及以下位数的正整数让数码管显示对应的数字,如传入256,则数码管显示256,需要注意的是对于不同的单片机,数码管段和位的引脚可能不同,因此可能要修改所控制的引脚。
选做的任务为任务1,该任务主要体现功能为基于51单片机的计算器使用C语言来编程程序,1.用计算器,实现三位十进制整数的加减乘除运算,要求是如果...其中有8位数码管用来显示数据,实现三位十进制整数的加减乘除运算。
### 单片机浮点数显示的C语言编程详解 #### 一、引言 在单片机的应用中,浮点数的显示是一项常见的需求,尤其是在需要精确度较高的场合,如温度测量、压力传感器数据读取等场景。本文将详细介绍如何在单片机上实现...
根据给定的文件信息,我们可以总结出以下关于“单片机485通信显示程序”的相关知识点: ### 一、485通信简介 RS-485是一种用于串行通信接口的标准,其硬件接口简单,抗干扰能力强,能够进行远距离传输(理论上可达...
它可以显示一位符号(正负号)、三位整数和一位小数,为用户提供了直观的读数界面。与单片机连接时,需要正确设置控制指令来更新屏幕内容。 四、实验功能实现 实验中,通过编程控制AT89C51单片机读取DS18B20的温度...
《单片机原理及应用》(C51语言版)相关实验资料。 包含电路图、hex文件、实验报告。 如有不全、疏漏、错误,还望多多谅解! 目录: 实验一:MSC-51内部并行口实验 实验二:MSC-51外部中断实验 实验三:MSC-51内部...
单片机C语言之两位数码管动态显示 单片机C语言是一种微控制器编程语言,广泛应用于自动控制、机器人、智能家电等领域。下面是根据给定的文件信息生成的相关知识点: 一、单片机基本概念 单片机(Microcontroller ...
由于51单片机的存储和计算资源有限,这个计算器只能精确到7位数。这意味着它可以处理的最大整数是9999999,最小负数是-9999999。此外,四则运算(加、减、乘、除)和可能的括号运算也需要在此范围内进行。为了实现...
标题 "单片机串口发送数据至VC接收显示及保存" 涉及到的是一个典型的嵌入式系统与个人计算机通信的场景。在这个项目中,单片机(Microcontroller Unit,MCU)作为数据源,通过串行通信接口(Serial Communication ...
在实际应用中,本设计的温度测量模块可以测量范围从-40°C至+125°C的温度,并能够以三位整数和一位小数的格式显示温度值。通过使用NTC热敏电阻和MC9S12XS128单片机的内部高精度A/D转换模块,模块能够在保持电路设计...
- 函数内部计算出三位整数,并调用`Led_N`函数进行显示。 ### 5. 总结 通过上述分析可以看出,这段代码实现了在STC单片机上利用74HC164芯片驱动数码管显示数字的功能。其中的关键点包括数组的定义与初始化、74HC...
这个过程涉及到了对输入数的整数除法和取余操作,将一个整数分解为个位、十位、百位等多个单独的数字,便于后续的显示操作。 综合以上,我们可以看到51单片机数码管串行显示板的制作是一个结合了硬件设计和软件编程...
其中,前一位显示整数,后两位显示小数。 5. 软件设计 未提供详细内容,但通常会包括初始化程序、A/D转换控制程序、数据显示程序以及可能的异常处理程序等。 6. 总结 这个基于单片机的模拟量数字显示系统具有电路...
光标技术用于显示当前的调整状态位。按键检测程序用于检测四个独立按键的状态,并根据不同的键值进行不同的操作。 四、系统功能 系统的主要功能包括: * 显示准确的北京时间(时、分、秒) * 公历日期显示(年、...
根据给定的信息,本文将详细解释如何在C语言中编写一个程序来实现64位无符号整数的加法和减法运算。 ### 一、背景介绍 在计算机科学领域,处理大整数是一个常见的需求,尤其是在那些需要精确计算且数字可能非常大...
可以使用数组来处理,用数组a[100]存放产生的确100个随机整数,数组x[10]来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。 二、求两个整数的最大公约数、最小公倍数 求两个整数的最大公约数、最小公倍数...
- **温度显示**: 使用LED数码管显示当前环境温度和预设温度,其中预设温度仅限整数,环境温度可精确到小数点后一位。 - **电机驱动**: 采用PWM脉宽调制技术通过ULN2803达林顿反向驱动器调节直流风扇电机的转速。 - *...
这个计算器系统采用MCS-51系列中的8051单片机作为核心处理器,利用红外遥控器进行操作,能够在LCD12864显示器上显示三位整数的加、减、乘、除运算结果。 系统设计的关键点包括: 1. **LCD12864显示原理**:LCD...