8位串行数码管模块__设计原理图及测试程序

发布者:技术旅人最新更新时间:2015-06-25 来源: 51hei关键字:串行数码管模块  单片机 手机看文章 扫描二维码
随时随地手机看文章

完整的码下载地址:http://www.51hei.com/f/chcxde.rar
 /***采用2片595驱动,动态扫描原理显示,需要单片机3路IO口(DIO接 P33  SCK接P32  RCK接P34),上电显示时钟****/
 #include
 unsigned int tcount;
 unsigned char m;
 static unsigned char second,minute,hour;
 
 unsigned char code fseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
 unsigned char code segbit[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
 unsigned char  disbuf[8]={0,0,0,0,0,0,0,0};


 //数据传输//
void sdata(void)
 {unsigned char b,c,num;

    if(b==0)
    { 
      b++;
    num=segbit[m];
     for(c=0;c<8;c++)
        {P3_2=0;
          P3_3=num&0x80;
          num<<=1;
          P3_2=1;
       }
    
    }

    if(b==1)

    {  
        b--;
      if(m==2||m==5)
      {num=0xbf;}
      else
       {num=fseg[disbuf[m]];}

        for(c=0;c<8;c++)
          {  P3_2=0;
             P3_3=num&0x80;
             num<<=1;
             P3_2=1;
          }
    
    }
         m++;
         if(m==8)
         {m=0;
          }
 }
//数据传输//

 


 //延时0.1ms个单位//

 void delay (unsigned char h)
  { while(h--);
  }
  //延时0.1ms个单位//

 
 //数据输出//
void out(void)
 {P3_4=0;
  delay(50);
  P3_4=1;
 } 
//数据输出//

[page]

  //按键控制//
  void bcon(void)
   {if(P3_5==0)
     {delay(100);
       if(P3_5==0)
        {second=0;
          while(P3_5==0);
     
    }
     }
     disbuf[0]=second%10;
    disbuf[1]=second/10;

    if(P3_6==0)
     {delay(100);
       if(P3_6==0)
        {minute++;
          while(P3_6==0);
          if(minute==60)
           {minute=0;
           }
    }
     }
    disbuf[3]=minute%10;
    disbuf[4]=minute/10;


     if(P3_7==0)
     {delay(100);
       if(P3_7==0)
        {hour++;
          while(P3_7==0);
           if(hour==24)
            {hour=0;
    }
    }
     }
    
    disbuf[6]=hour%10;
    disbuf[7]=hour/10;
    
    disbuf[0]=second%10;
    disbuf[1]=second/10;
    disbuf[3]=minute%10;
    disbuf[4]=minute/10;
    disbuf[6]=hour%10;
    disbuf[7]=hour/10;

   }
   //键盘控制//

  
  
  
  //主函数//

 

void main(void)
 {  
  TMOD=0x02;
  TH0=0x06;
  TL0=0x06;
  TR0=1;
  ET0=1;
  EA=1;

  while(1)
  {
   bcon();
   sdata();
   out();

  }
  while(1);

 } 
 //主函数//


 //中断程序//

 void t0(void) interrupt 1 using 0 
  { tcount++;

    if(tcount==4000)
      {tcount=0;
        second++;

         if(second==60)
          {second=0;
           minute++;

            if(minute==60)
             {minute=0;
              hour++;

              if(hour==24)
               {hour=0;
          }
        }
          }
      }
    }

 

    
  //中断程序//

关键字:串行数码管模块  单片机 引用地址:8位串行数码管模块__设计原理图及测试程序

上一篇:基于CH372的单片机波形采集程序
下一篇:51单片机+1602液晶万年历程序

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

基于51单片机的步进电机控制性系统
功能: 控制步进电机实现加速、减速、正转,反转,停止,并用LCD12864显示相关信息。 程序运行图: 仿真原理图: 部分程序: #define KEY_GLOBAL 1 #include Key.h static uchar keyValueBuff; //读取键值的缓冲区 static uchar keyValueOld; //前一次的键值 static uchar keyValueTemp; //键值中间交换变量 static uint stillTimes; //键按下保持次数 static uint stillTimesMax; static uchar get_data_1_count(uchar n
[单片机]
单片机访问外部RAM原程序
//-----------------------定义寻址的基址-------------------------------------------------------- #define base_Adr 0x060000 //-----------------------定义地址指针,指向基址-------------------------------------------------------- unsigned char xdata *ORAM_base_Adr = base_Adr; //---------------------------------------------------------------
[单片机]
基于AT89C52单片机的转速测量仪设计
1 引言 测量转子速度的方法很多,但多数比较复杂 。目前,测量转速的方法主要有四种 :机械式、电磁式、光电式和激光式。机械式主要利用离心力原理,通过一个随轴转动的固定质量重锤带动自由轴套上下运动,根据不同转速对应不同轴套位置获得测量结果原理简单直接,不需额外电器设备,适用于精度要求不高、接触式的转速测量场合。电磁式系统由电磁传感器和安装在轴上的齿盘组成,主轴转动带动齿盘旋转,齿牙通过传感器时引起电路磁阻变化,经过放大整形后形成脉冲,通过脉冲得到转速值。由于受齿盘加工精度、齿牙最小分辨间隔、电路最大计数频率等限制,测量精度不能保证。光电式结构类似于电磁式结构,把旋转齿盘换作光电编码盘或黑白相间的反射条纹,把电磁传感器换作光电接收器,
[测试测量]
基于AT89C52<font color='red'>单片机</font>的转速测量仪设计
Microchip推出专为电机控制和通用应用而优化的新型32位PIC32系列MCU
Microchip PIC32MK系列集成模拟外设、双USB功能,可支持多达4个CAN 2.0端口。下面就随网络同学校吧一起来了解一下相关内容吧。 Microchip推出专为电机控制和通用应用而优化的新型32位PIC32系列MCU 全球领先的整合单片机、混合信号、模拟器件和闪存专利解决方案的供应商——Microchip Technology Inc.(美国微芯科技公司)近日发布最新的PIC32单片机(MCU)系列。新的PIC32MK系列共包含4款高度集成、用于高精度双电机控制应用的MCU器件(PIC32MK MC),以及8款带有串行通信模块、用于通用应用的MCU器件(PIC32MK GP)。所有MC和GP器件均包含一个12
[网络通信]
STM32单片机-增量式PID
一、什么是增量式PID 虽然PID不是什么牛逼的东西,但是真心希望以后刚刚接触这块的人能尽快进入状态。特地分享一些自己如何实现的过程。 PID控制算法介绍与C程序实现 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来的,不同的是系数的差异。 【教程】如何在STM32上实现增量式PID - STM32/STM8技术论坛 - 电子技术论坛 - 广受欢迎的专业电子论坛! 资料上比较多的是: 还有一种的算法是: 这里主要介绍第二种,具体会分析比例、积分、微分三个环节的作用。 ----------------------------------------------
[单片机]
STM32<font color='red'>单片机</font>-增量式PID
基于PIC16F877A单片机的高分辨率频率计的设计
  1 引言   随着电子技术的迅速发展,以单片机为控制核心的控制器件,已经全面渗透到测试仪器和计量检定的各个方面。同时,频率计作为一种常用工具,在工程技术和无线电测量、计量等领域的应用十分广泛。本文介绍了一种以PIC16F87X系列单片机为控制器的高分辨率频率计的实现方法。   该方法设计的频率计主要用来测量脉冲频率。它采用LCD图形液晶显示,清晰度高,可视范围广,可外接晶体频率源,具有测量速度快、分辨率高的优点。   2 设计原理   PIC16F877A单片机内部集成有捕捉/比较/脉宽调制PWM (CCP)模块。当CCP工作在捕捉(capture)方式时,可捕捉外部输入脉冲的上升沿或下降沿,并产生相应的中断。  
[单片机]
基于PIC16F877A<font color='red'>单片机</font>的高分辨率频率计的设计
串行口异步通信单片机程序设计实例
org 0000H AJMP START ORG 30H START: mov SP,#5fh ; mov TMOD,#20h ;T1: 工作模式2 mov PCON,#80h ;SMOD=1 mov TH1,#0FDH ;初始化波特率(参见表) mov SCON,#50h ;Standard UART settings MOV R0,#0AAH ;准备送出的数 SETB REN ;允许接收 SETB TR1 ;T1开始工作 WAIT: MOV A,R0 CPL A MOV R0,A MOV SBUF,A LCALL DELAY JBC TI,WAIT1 ;如果TI等于1,则清TI并转WAIT1
[单片机]
<font color='red'>串行</font>口异步通信<font color='red'>单片机</font>程序设计实例
51单片机开发环境搭建方法
前言 上至航天,下至儿童玩具,凡事沾一点智能的东西,都离不开单片机的身影......,本文开始,我们学习单片机的相关知识,我们采用的是由普中科技开发的A7开发板,该开发板搭载了STC89C52或STC89C516两块芯片,这款单片机属于8051系列和STC8系列的单片机,51单片机作为入门级单片机不仅在教学实验中应用广泛,在实际项目中应用亦是十分广泛。 一、基础知识 1.什么是单片机? 单片机是一个单片微型计算机,由中央处理器CPU、数据存储器RAM、程序存储器ROM、输入/输出设备(键盘、显示屏等)等集成到一块芯片上组成。 2.单片机能做什么? 前言中开篇便比较好的阐释了单片机的功能,凡是沾点智能的影子的东西,都离不开单片机
[单片机]
51<font color='red'>单片机</font>开发环境搭建方法
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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