51单片机 数码显示数字

发布者:sedsedq最新更新时间:2015-10-30 来源: eefocus关键字:51单片机  数码显示 手机看文章 扫描二维码
随时随地手机看文章
    数码管显示在51单片机里面也是很经典的历程。因为IO口有限,所以数码管的数据端口与选通端口使用了同样的IO端口,防止数据与选通信号混乱,这里使用了两个锁存器,用于区分选通信号与数据信号。在实际工程开发中,IO复用的情况还是很常见的,所以掌握复用IO的控制过程就显得很重要了。

    原理图:

    51单片机 <wbr>数码显示数字

51单片机 <wbr>数码显示数字

     代码如下:详细说明见注释。

//在6个数码管上面显示数字0-6,时间间隔是1s。数码管1显示1,1S关闭,数码管2显示2,1S关闭~~~~~~~~~~
#include   //头文件
#define uint unsigned int  //定义宏--无符号整型
#define uchar unsigned char  //定义宏--无符号字符型
sbit duanxuan=P2^6;  //声明P2.6端口为段选端
sbit pianxuan=P2^7;  //声明P2.7端口为片(位)选端
void delay_1s(uint);  //声明延时函数--延时一秒
uint xs;  //延时函数用

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};  //C语言编码定义

void main()  //主函数入口
{
  xs=20;  //参数越小,就可以实现6个数码管一起显示数字
  while(1)
  {
    pianxuan=1;  //打开片选锁存器
    P0=0xfe;  //执行片选,选择第1个数码管
    pianxuan=0;  //关闭锁存器,锁存器输出端保持不变
 P0=0x00;
    duanxuan=1;  //打开段选端
    P0=table[1];  //显示数字1
    duanxuan=0;  //关闭段选端,数字保持
    delay_1s(xs);  //延时xS


 pianxuan=1; 
    P0=0xfd;   //选择第2个数码管
    pianxuan=0; 
 P0=0x00;
    duanxuan=1;
    P0=table[2];  //显示数字2
    duanxuan=0; 
    delay_1s(xs); 

 pianxuan=1;
    P0=0xfb;   //选择第3个数码管
    pianxuan=0;
    P0=0x00;
    duanxuan=1; 
    P0=table[3]; //显示数字3
    duanxuan=0;
    delay_1s(xs); 

 
    pianxuan=1; 
    P0=0xf7; //选择第4个数码管
    pianxuan=0;
 P0=0x00;
    duanxuan=1;
    P0=table[4]; //显示数字5
    duanxuan=0; 
    delay_1s(xs);
 
   
 pianxuan=1;
    P0=0xef; //选择第5个数码管
    pianxuan=0;
 P0=0x00;
    duanxuan=1;
    P0=table[5];  //显示数字5
    duanxuan=0; 
    delay_1s(xs); 

 pianxuan=1; 
    P0=0xdf; //选择第6个数码管
    pianxuan=0;
    P0=0x00;
 delay_1s(xs);
    duanxuan=1; 
    P0=table[6];  //显示数字6
    duanxuan=0; 
    delay_1s(xs); 
  }
}
void delay_1s(uint xs)  //延时函数主体
{
  uint i,j;
  for(i=xs;i>0;i--)
  {
    for(j=10;j>0;j--)
 {
 }
  }
}
    以上,数码管显示结束。

关键字:51单片机  数码显示 引用地址:51单片机 数码显示数字

上一篇:51单片机 定时器T0方式1 控制流水灯
下一篇:51单片机--流水灯演示

推荐阅读最新更新时间:2024-03-16 14:38

基于AT89C51单片机的雨量数码显示设计
一.系统概述 系统使用的模块有AT89C51单片机+8位共阴极数码管+ADC0808(模拟雨量)+ULN2003电机驱动模块+电机。 系统使用AT89C51单片机作为主控,通过ADC0808和电位器模拟雨量的变化,单片机会将采集到的雨量数据处理并将其显示在数码管上,雨量的上限和下限通过程序进行了设定,分别是130和120,当雨量超过120后电机就会运转,当雨量超过130运转速度加快。 二.仿真概述 1.8位共阴极数码管显示雨量。 2.电位器模拟雨量检测模块检测雨量。 3.当雨量达到120时雨刷器开始工作。 4.当雨量达到130时雨刷器的速度加快。 三.程序设计 使用 Keil 51进行程序设计,打开
[单片机]
基于AT89C<font color='red'>51单片机</font>的雨量<font color='red'>数码</font>管<font color='red'>显示</font>设计
8051单片机进行8路LED模拟分支控制
一、设计题目 用8051的P1口作为输入、P0口作为输出,通过74LS244接8路LED模拟分支控制。 P1.0为低电平时,点亮一LED;P1.0为高电平、P1.1为低电平时点亮全部LED;当P1.0、P1.1都为高电平时,LED按四个一组,轮流反复点亮;P1.0、P1.1、P1.2都为高电平时,8LED逐一点亮并反复循环。 二、设计目的 1. 进一步熟悉和掌握单片机的结构及工作原理。 2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 3. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数 的计算方法。 4. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 5. 通过完成
[单片机]
80<font color='red'>51单片机</font>进行8路LED模拟分支控制
51单片机向PC电脑发送一组汉字的方法
最近看到有朋友在网上问 单片机 怎么向电脑发送一串汉字这个问题,其实这个问题也不难.呵呵.只要把相关的参数设置好一些,然后把汉字定义成一组字符向电脑发送就可以. 为了让大家更明确的了解,我就写了下面的一个程序来演示一下. 操作条件: 1.XP操作系统. 2.XP的超级终端显示. 3.WJ-V4.0开发板. 4.单片机STC89C52. 5. 晶振 11.0592M 操作步骤: 1.设置TMOD设置波特率和定时器1的工作方式. 2.设置定时器的初始值. 3.设置串行口工作方式. 4.设置波特率不加倍. 5.打开TR1允许发送. 6.启动定时器. 7.串行中断打开. 8.打开EA中断. 现在发上源代码: #include AT
[单片机]
<font color='red'>51单片机</font>向PC电脑发送一组汉字的方法
80C51单片机内部定时器和计数器的结构及原理解析
80C51单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。 定时器/计数器的结构: 图片1 从上面定时器/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过
[单片机]
80C<font color='red'>51单片机</font>内部定时器和计数器的结构及原理解析
40-基于51单片机直流电机PWM调速设计
具体实现功能 系统由STC89C52单片机、LCD1602液晶显示屏、霍尔测速传感器、3V直流电机、按键模块构成。 具体功能: 1、采用霍尔传感器非接触式测电机转速; 2、LCD1602液晶显示当前的转速(单位为转/分(RPM))和当前的PWM占空比0~100%; 3、电机转速可以通过按键调整,也可以开始暂停,正转和反转; 4、按键可实现加速、减速、正转、反转、开始/暂停等功能。 使用说明: 液晶屏第一行显示电机转速,第二行显示占空比,占空比数值越大,电机转速越快。 系统一共有6个按键,单片机附近的独立按键是系统的复位按键,按下单片机会复位。 下面一排是控制按键: 1键:加速键,可以短按,占
[单片机]
40-基于<font color='red'>51单片机</font>直流电机PWM调速设计
嵌入式学习笔记4——51单片机之蜂鸣器和继电器
1. 51单片机I/O口的驱动能力有限,一般只有10mA以内,不足以直接驱动蜂鸣器和继电器,故需一个放大设备,如ULN2003。 2. 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,他实际上是用较小的电流去控制较大电流的一种 自动开关 。 (电磁继电器:小电流部分通电产生磁力,便使大电流部分的开关合上。)
[单片机]
嵌入式学习笔记4——<font color='red'>51单片机</font>之蜂鸣器和继电器
51单片机驱动1602程序
sbit LCD_RS=P3^4; // 定义IO口,具体1602的读控制线 sbit LCD_RW=P3^3; // 定义IO口,具体1602的写控制线 sbit LCD_EN=P2^0; // 定义IO口,具体1602的使能控制线 sbit Light=P3^7; // 定义IO口,具体1602的背光控制线(0:开通,1关闭) sbit D0 = P1^0; // 定义IO口,P1.0数据口1602LCD的D0口 sbit D1 = P1^1; // 定义IO口,P1.1数据口1602LCD的D1口 sbit D2 = P1^2; // 定义IO口,P1.2数据
[单片机]
AT89C2051单片机与MT8880接口设计
加拿大MITEL公司生产的MT8880是一种带有CPU接口的DTMF(双音多频)发送/接收芯片,其可与6800系列微处理器或单片机直接接口。然而,对于想使用MT8880芯片的51系列单片机用户而言,关注的是51系列单片机如何与MT8880接口的问题。本文将以具有51内核的 AT89C2051(简称2051)单片机为例,介绍2051单片机与MT8880接口电路的设计,供有关用户参考。 1 接口时钟信号 笔者在使用MT8880过程中,经实验研究发现,MT8880对接口控制信号时序的要求并不十分严格,关键在如何为MT8880提供接口时钟信号CP(第12脚)。从MITEL公司原文器件手册提供的参数可知,CP时钟周期tCYC典型值
[单片机]
AT89C20<font color='red'>51单片机</font>与MT8880接口设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved