利用数码管显示三位数是利用了单片机数码管的动态扫描,但此方法又有不同点,我们不再需要位选table,实现的具体思路是,先将要显示的3位数进行百位,十位,个位进行分离,然后再利用动态扫描将其显示即可.
源代码如下,产生的效果是:可以显示任一个小于255的整数
#include
#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--);
}
关键字:单片机 三位整数
引用地址:
单片机显示三位整数
推荐阅读最新更新时间:2024-03-16 15:21
单片机四层电梯控制系统设计最终版(含仿真+报告+程序源码)
在1901年的上海,美国奥的斯公司安装了中国最早的一座电梯,而今,我国电梯业已进入了高速发展的时期,商场、医院、宾馆、仓库、住宅大楼等地方的电梯都被广泛应用着,直接与人们的生活息息相关,给人们的生活带来了极大的便利,是一种必不可少的垂直运输交通工具。 抛开一些复杂的概念,单片机在我们的生活中触手可及,尤其是在智能仪表,实时控制,机电一体化,办公机械,家用电器等方面拥有广泛的应用领域。这次课设注重对单片机的理解应用,明白单片机的工作原理,掌握单片机的接口技术,中断技术,存储技术,时钟方式和控制方式,这样才能更好地利用单片机来做有效的设计,提高自己的综合能力。 1. 设计任务 结合实际情况,基于AT89C52单片机设计一个四层
[单片机]
低成本8位单片机控制的光电寻迹智能车
智能车 竞速比赛以及多种智能车的应用场合中,需要智能车沿着某条轨迹快速前进,使用普通红外 传感器 、激光传感器、摄像头识别均可有效提取路面轨道信息而解决这一问题,现在常见使用16位 单片机 作为控制核心。普通红外传感器因为易受干扰、前瞻距离短等缺点已经较少使用,摄像头有丰富的数据信息,但是低成本8位单片机不能很好的处理这些信息。激光传感器成本适中,处理的信号便于8位单片机处理,能够有效的节省硬件成本。针对寻迹智能车进行了软硬件设计,采用3位freescale单片机MC9S08AC16作为控制核心,使用激光传感器提取赛道信息,采用低成本的红外测速方案,算法使用以PID为基础的枚举查表法,做到了处理快速高效。整个设计既满足了竞速小车的
[单片机]
labview与单片机串口通信
VISA是虚拟仪器软件体系结构的缩写(即Virtual Instruments Software Architecture),实质上是一个I/O口软件库及其规范的总称。 VISA是应用于仪器编程的标准I/0应用程序接口,是工业界通用的仪器驱动器标准API(应用程序接口),采用面向对象编程,具有很好的兼容性、扩展性和独立性。用户可用一个API控制包括VXI、GPIB及串口仪器在内的不同种类的仪器。它还支持多平台工作、多接口控制,是一个多类型的函数库。 在LabVIEW中编写的VISA接口程序,当外部设备变更时,只需要更换几个程序模块即可使用,简单方便而且开发效率高。 在LabVIEW 中利用VISA节点进行串行通信编程。为了方便用户
[单片机]
基于PIC单片机的精确加油系统设计
一、引言 当前,能源已成为制约很多国家发展的瓶颈,特别是广大发展中国家,能源紧缺现象逐步凸现,世界各国对石油资源的争夺不断加剧,甚至引发局部战争;作为最大的发展中国家,我国必须在实现能源来源多元化的同时,加强对已有资源的有效管理和使用,杜绝浪费和无效流失现象。传统的人工加油的方式由于受人的影响较大,不仅加油量误差较大,且容易造成少加、错加、加冒等人为差错。而该系统的优点: 1、精确定量加油 2、节约人力 3、节约时间 4、安全可靠 5、体积小 6、成本低廉;可有效避免传统加油方式的缺点。 二、工作原理 本论文所设计的精确加油系统是在传统加油管上安装智能测控系统而构成的,该测控系统主要由PIC单片机、IC卡、计量电路、电控系统以
[单片机]
第001课 不要再用老方法学习单片机和ARM
单片机程序员发展的必选之路: Linux 我们的第一期是教大家如何将ARM开发板当作单片机来用,但在这期视频的第一节,我告诉你们,学习单片机是没有前途的。 话说得非常狠,因为不这样说,没法警醒你们。我说这句话,是冒着生命危险的,因为很多人依靠单片机来生活,淘宝上有一大堆售卖单片机开发板的,像51、STM32等。 工资方面 我们学习这些不就是为了赚钱吗?在51job上,搜索“单片机”,工资平均下来是几千块钱。然后搜搜“Linux系统工程师”,平均工资是上万左右。 职业发展 这里我有切实的体会,我2003年毕业,2005年进入一个小公司,当时做的是车载电话,我们先是用51单片机来做的。当时我的李姓同事,用两个3000多行的
[单片机]
简单的51单片机多任务操作系统(C51)
在网上看到这段代码,所以自己尝试了,可以跑起来,但是没有精确的定时功能,仅仅是任务的调度而已。 数组中是11,而不是12。这里写错了。。。 /* 简单的多任务操作系统 其实只有个任务调度切换,把说它是OS有点牵强,但它对于一些简单的开发应用来说, 简单也许就是最好的.尽情的扩展它吧.别忘了把你的成果分享给大家. 这是一个最简单的OS,一切以运行效率为重,经测试,切换一次任务仅20个机器周期, 也就是在标准51(工作于12M晶振)上20uS. 而为速度作出的牺牲是,为了给每个任务都分配一个私有堆栈,而占用了较多的内存. 作为补偿,多任务更容易安排程序逻辑,从而可以节省一些用于控制的变量. 任务槽越多,占用内存越多,但任务也越
[单片机]
单片机定时器/计数器内部结构
MCS-51单片计算机内部的定时器/计数器逻辑结构如图1所示。 图1 定时器/计数器逻辑结构图
[单片机]
STM32单片机特性解析
STM32单片机 由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、 低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI等等,在功耗和集成度方面也有不俗的表现,当然和MSP430的功耗比起来是稍微逊色的一些,但这并不影响工程师们对它的热捧程度,由于其简单的结构和易用的工具再配合其强大的功能在行业中赫赫有名。其强大的功能主要表现在: 特性 1、内核:ARM32位Cortex-M3CPU,最高工作频率72MHz,1.25DMIPS/MHz,单周
[单片机]