zoukankan      html  css  js  c++  java
  • 共阳极数码管计数器

    0到98,想要计数更大,改变sec的值就可以

    注意变量led_cache

    #include<STC15F2K60S2.H>
    #include"intrins.h"
    #define uint unsigned int
    #define uchar unsigned char
    #define led_output P0
    #define led_duan_and_wei P2 //共阳极数码管
    unsigned char add; //变量
    unsigned int num;
    unsigned char sec;
    uchar code tabe[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//显示段选,1,2,3,4,5,6,7,8,9 常量
    uchar code tabe1[ ]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01}; // 显示位选第八位到第一位
    uchar tabe2[ ]={0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0}; //初始化显示缓冲区 变量

    void main( )
    {
    while(1)
    {
    led_output=0xff;//消影    共阳极数码管是低电位有效,消隐要无效;      共阴数码管是高电位有效,消影是0x00
    led_duan_and_wei=0xff;//打开段选数据
    led_duan_and_wei=0x1f; //锁存段选数据573

    led_output=tabe1[add];//位选
    led_duan_and_wei=0xdf;//打开位选控制Y6信号,送数据
    led_duan_and_wei&=0x1f; //清零,关闭U8锁存器,锁存数据

    led_output=tabe2[add];// led_cache变量中取值,段选数据
    led_duan_and_wei=0xff;//打开段选控制Y7信号,送数据
    led_duan_and_wei&=0x1f; //清零,关闭U7锁存器 ,锁存数据
    add++;
    add&=0x07; //2的3次方用&,段选和位选相同
    //数值运算
    num++;
    if(num>=50000)//控制计数器增加的时间间隔
    {
    num=0; //变量清0
    sec++;
    if(sec>=99)//控制数值的范围0-98
    {
    sec=0;//成立执行清0
    }
    tabe2[0]=tabe[sec%10]; //摘取个位
    tabe2[1]=tabe[sec/10%10]; //摘取十位
    tabe2[2]=tabe[sec/100%10]; //摘取百位
    tabe2[3]=tabe[sec/1000%10]; //摘取千位
    tabe2[4]=tabe[sec/10000%10]; //摘取万位
    tabe2[5]=tabe[sec/100000%10]; //摘取十万位
    tabe2[6]=tabe[sec/1000000%10]; //摘取百万位
    tabe2[7]=tabe[sec/10000000%10];//摘取千万位
    }
    }
    }

  • 相关阅读:
    免费部署Woocall到您自己的网站上
    服务器控件开发之复杂属性
    删除数据库的所有存储过程、主键、外键、索引等
    怎样在dropdownlist的每一项前加一个或多个空格
    Java的内部类学习
    StringUtils全览 (转)
    Java异常大全
    Java web 开发小问题总结(持续更新中)
    Java常用方法总结(持续更新中)
    Python 常用函数
  • 原文地址:https://www.cnblogs.com/296389183yy/p/8760629.html
Copyright © 2011-2022 走看看