首页 > 其他分享 >数码管

数码管

时间:2024-06-06 19:56:33浏览次数:12  
标签:12 T1MS void unsigned Seg 数码管 Init

/******************************************************************************
此程序是依据吴坚鸿程序框架,在普中51 A2单片机开发板上的程序练习
程序目标:数码管显示
*******************************************************************************/
#include<REG51.H>
#define Main_Fosc 12000000L //默认系统时钟12Mhz
#define T1MS  (65536-Main_Fosc/12/1000)  //12分频下1ms定时器的装载值,n=t/T=t/(12/f)=0.001*f/12=f/12/1000
#define Scan_Time 1
unsigned char Seg_ScanFlag=0;
unsigned char Seg_ScanCNT;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
void Sys_Init();    //系统初始化
void Delay_Long();   //长延时,等待系统稳定
void Perpherial_Init();  //端口初始化
unsigned char code Seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void Seg_Display();
void main()
{
    Sys_Init(); 
    Delay_Long();
    Perpherial_Init();
    while (1)
    {
        ;
    }
    
}

void Sys_Init()
{
   TMOD=0X01;
   TL0=T1MS;
   TH0=T1MS>>8;
}
void Delay_Long()
{
    unsigned char i,j;
    for ( i = 0; i < 220; i++)
    {
        for(j=0;j<220;j++)
        {
                ;
        }  
    } 
}

void Perpherial_Init()
{
    TR0=1;
    ET0=1;
    EA=1;
}

void Seg_Display()
{
    static unsigned char Seg_ScanStep=0;
    if(0==Seg_ScanCNT)
    {
        P0=0X00;//消影
        switch (Seg_ScanStep)
        {
            case(0):
				LSA=1;LSB=1;LSC=1; break;//显示第0位
			case(1):
				LSA=0;LSB=1;LSC=1; break;//显示第1位
			case(2):
				LSA=1;LSB=0;LSC=1; break;//显示第2位
			case(3):	
				LSA=0;LSB=0;LSC=1; break;//显示第3位
			case(4):
				LSA=1;LSB=1;LSC=0; break;//显示第4位
			case(5):
				LSA=0;LSB=1;LSC=0; break;//显示第5位
			case(6):
				LSA=1;LSB=0;LSC=0; break;//显示第6位
			case(7):
				LSA=0;LSB=0;LSC=0; break;//显示第7位	
        }
        P0=Seg[Seg_ScanStep];
        Seg_ScanStep++;
        if (Seg_ScanStep>7)
        {
            Seg_ScanStep=0;
        }
        Seg_ScanFlag=0;
        Seg_ScanCNT=Scan_Time;
        Seg_ScanFlag=1;   
    }
}

void Timer0_ISR() interrupt 1
{
    Seg_Display();
    if ((1==Seg_ScanFlag)&&(Seg_ScanCNT>0))
    {
        Seg_ScanCNT--;
    }
    TL0=T1MS;
    TH0=T1MS>>8;
    
}

标签:12,T1MS,void,unsigned,Seg,数码管,Init
From: https://www.cnblogs.com/boliuXun/p/18235914

相关文章

  • 402、基于51单片机的火灾报警(3房间,温度,数码管)(程序+Proteus仿真+原理图+流程图+元器件
    毕设帮助、开题指导、技术解答(有偿)见文未目录方案选择单片机的选择一、设计功能二、Proteus仿真图单片机模块设计三、原理图四、程序源码资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择单片机的选择方......
  • 一个问题:六位八段数码管(Verilog)
    【基本信息】需求:verilog程序,显示任意六位字符或数值,包含点号,且能够按需点亮位数。(学习篇)芯片型号:cycloneⅣEP4CE10F17C8数码管属性:六位、八段【最终成果图】经过多轮测试,最后代码程序满足设计要求,但结合仿真发现了一个问题,仿真和上机不匹配,当然还是要以上机为准。【模块......
  • Verilog设计实现七段数码管译码器的设计
    七段数码管常用于计时器、拨码开关输入、班级和学号等信息的显示,通过控制不同的段亮灭,可以实现各种数字和字符的显示。七段数码管通常由a-g七个段组成,每一段对应一个LED。为了显示不同的数字,需要控制这些LED的亮灭。图1七段数码管为了控制这些LED的亮灭,需要设计一个显示译......
  • 基于51单片机的超声波测距(汽车倒车雷达)—数码管显示
    基于51单片机的超声波测距(仿真+程序+原理图+PCB+设计报告)功能介绍具体功能:1.HC-SR04超声波模块测距;2.数码管显示测量的距离,74hc573和三极管驱动数码管;3.本设计可用作汽车的倒车雷达;4.三个按键可设置报警距离;​演示视频:基于51单片机的超声波测距(汽车倒车雷达)—数码......
  • 七段数码管
    importturtle,datetimedefdrawGap():#绘制数码管间隔turtle.penup()turtle.fd(5)defdrawLine(draw):#绘制单段数码管drawGap()turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)drawGap()turtle.right(90)defdrawDigit(d):#根据数字绘制七段数......
  • 数码管显示屏驱动芯片VK1640 SOP28,2线串行接口,适用于小型LED显示屏驱动
    产品品牌:永嘉微电/VINKA产品型号:VK1640封装形式:SOP28概述VK1640是一种数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、LED驱动等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持8SEGx16GRID的点阵LED显示。适用于小型LED显示屏驱动。采用SOP28的封装形式。LJQ336特点•......
  • 数码管闪烁模板及注意事项
    数码管闪烁模板及注意事项方式1:直接在segProc()里写查看代码voidSeg_Proc(void){ if(Seg_Slow_Down)return; Seg_Slow_Down=1; /***用户自定义代码区↓***/ sprintf(seg_string,"-%d-%3d",(unsignedint)disp1,disp2); if(state_flag==2)//让disp1......
  • 基于EP4CE6F17C8的FPGA可调校数码管时钟实例
    一、电路模块1、数码管开发板板载了6个数码管,全部为共阳型,原理图如下图所示,段码端引脚为DIG[0]~DIG[7]共8位(包含小数点),位选端引脚为SEL[0]~SEL[5]共6位。端口均为低电平有效。其实物图如下所示。数码管引脚分配见下表。2、时钟晶振开发板板载了一个50MHz的有源晶振,为系统......
  • 基于51单片机的锅炉控制【热电偶,数码管,PID】(仿真)
    1、使用N型热电偶测量锅炉内部温度2、设置温度值,温度低于设定值则启动加热3、加热过程使用PID控制,PID参数固定4、数码管显示温度5、温度过限报警#include"lcd1602.h"voiddelay_uint(uinti){ while(i--);}/**************************************************......
  • 点阵LED数码管显示驱动IC VK16K33 A/B/C/BA/AA 驱动电流大 质量稳定 适用于计量插座,数
    VK16K33是一种带按键扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有数据锁存器、键盘扫描、LED驱动模块等电路。数据通过I2C通讯接口与MCU通信。SEG脚接LED阳极,GRID脚接LED阴极,可支持16SEGx8GRID的点阵LED显示面板。最大支持13×3的按键。内置上电复位电路,整体闪烁频率可......