Arduino 数码管LED驱动 读位法 16进制

区别与上两个驱动的方法,用bitRead()读取位数,代码简介一点。

//设置阴极接口
int d1 = 1;
int d2 = 2;
int d3 = 3;
int d4 = 4;
int d5 = 5;
int d6 = 6;
int d7 = 7;
//设置阳极接口
int a = 8;
int b = 9;
int c = 10;
int d = 11;
int e = 12;
int f = 13;
int g = A0;
int h = A1;

const unsigned char Yang[] = { a, b, c, d, e, f, g, h };
const unsigned char YangCode[]={
  0x03,    // 0 = 缺水
  0x0C,    // 1 = 低水位
  0x70,    // 2 = 定时关机
  0x3F,    // 3 = 0
  0x06,    // 4 = 1
  0x5B,    // 5 = 2
  0x4F,    // 6 = 3
  0x66,    // 7 = 4
  0x6D,    // 8 = 5
  0x7D,    // 9 = 6
  0x07,    // 10 = 7
  0x7F,    // 11 = 8
  0x6F,    // 12 = 9
  0x80,    // 13 = 摄氏度符号、睡眠符号
};

byte gyin[7] = { d1, d2, d3, d4, d5, d6, d7 };
byte gong_yin[5][7] = {
                          { 1,1,1,1,1,1,0 },  // 0 = 缺水、低水位、定时关机
                          { 0,1,1,1,1,1,1 },  // 1 = 温度十位、摄氏度符号
                          { 1,0,1,1,1,1,1 },  // 2 = 温度个位、睡眠符号
                          { 0,0,1,1,1,1,1 },  // 3 = 温度个和十位
                          { 1,1,0,0,0,0,1 },  // 4 = 时钟个、十位和两点
                        }; 

void setup()
{
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  for(int i=1; i<14;i++)
  {
    pinMode(i,OUTPUT);
  }
}

void loop()
{
  GongYin(3);
  GongYin(4);
  for (int a=3;a<13;a++)
  {
    digitalWrite(h, HIGH);//显示时钟的冒号
    delay(300);
    YangShow(a);
    delay(300);
  }
}

void GongYin(int y)
{
  for (int i = 0; i < 7; i++)
  {
    digitalWrite(gyin[i], gong_yin[y][i]);
  }
}

void YangShow(char data)
{
  char i;
  char j;
  char hc;
  if(0<=data<14)
  {
    hc = YangCode[data];
    for(i=0;i<8;i++)
    {
      j = bitRead(hc,i);
      digitalWrite(Yang[i], j);
    }
  }
}

Arduino 数码管LED驱动 读位法 16进制

时间: 2024-10-10 05:24:51

Arduino 数码管LED驱动 读位法 16进制的相关文章

Arduino 数码管LED驱动 数组法

Disk Schedule Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2368    Accepted Submission(s): 333 Problem Description 有很多从磁盘读取数据的需求,包括顺序读取.随机读取.为了提高效率,需要人为安排磁盘读取.然而,在现实中,这种做法很复杂.我们考虑一个相对简单的场景.磁

随机生成16位的16进制数

利用Python的uuid模块生成16位的16进制数 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import uuid for i in range(100): res = str(uuid.uuid4()) res = res.replace('-', '') print(res[:16]) 随机生成100个16位的16进制数: e77ddca3bb474c9d fb96d68a32754500 2c5dc4347fcd43c0 b51bff

字和字节和位和16进制数的关系

字 word 字节 byte 位 bit 字长是指字的长度 1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = 8bit)  一个字的字长为16 一个字节的字长是8 两个16进制数! 一个字节八个比特,就是八个二进制位   0000 0000     0x00-0xFF (十进制0-255) 四个二进制数最大表示为15,就是一个16进制数,所以八位可以表示成两个16进制的数!

Android 8位的16进制数字表示的颜色的含义

数值以#符号开头. 前2位数字代表颜色的透明度, 00~ff,  00表示该颜色完全透明, ff表示该颜色完全不透明.  后6位数字代表颜色的RGB值. 如: 000000代表黑色, ffffff代表白色, ff0000代表红色, 00ff00代表绿色, 0000ff代表蓝色, ffff00代表黄色等. 下面以侧滑菜单的背景颜色(此处设置为黄色)为例, 对透明度进行说明. 1. 设置黄色的透明度为ff(表示该颜色完全不透明): 效果图如下: 2. 设置黄色的透明度为00 (表示该颜色完全透明):

汇编一点点提高3——键盘输入8位二进制数,存入NUM单元,并在屏幕上显示对应的16进制数

此程序要注意一下几点: 1.dos1号功能--带回显的键盘输入,自动存入al 2.dos7号功能--不带回显的键盘输入,自动存入al,若要在屏幕中显示要调用DOS2号功能 3.将输入的多个二进制数转换为ASCII码 input:  mov ah,1  int 21h  add bl,bl  cmp al,'1'  jnz P1  inc bl  P1: dec ch  jnz input 4.换行子程序: newline: mov ah,2 mov dl,13 int 21h mov ah,2

md5加密--32位16进制小写

public class ttgameMd5 { public final static String MD5(String str) { char hexDigits[] = { // 用来将字节转换成 16 进制表示的字符 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { byte[] strTemp = str.getBytes(); MessageDigest m

16进制转化为2进制 【位运算】

#include <stdio.h> int  main() {    int i,a; while (~scanf("%x", &a)){ for(i=15;i>=0;i--) printf("%1d", a&1<<i?1:0);  //注意优先级,先移位<<,结果再与a按位与 printf("\n"); }return 0; } 16进制转化为2进制 [位运算]

用js正则判断输入的两位字符,第一位是数字16进制的,第二位是I、O、Q、U除外的字母(A到Z)

项目中遇到客户的需求变化,要验证某个数据的正确性,判断输入的两位字符,第一位是数字16进制的,第二位是I.O.Q.U除外的字母(A到Z). 本来对js不熟练,网上参考了一下js正则验证的规则,使用正则表达式完成了这个验证. 1 function check() { 2 var str = document.getElementById("txtEnglishName").value; 3 var reg=/^[0-9a-fA-F][^IOQU]$/; 4 if (str.length!

超过16位的字符串装16进制

在编写程序时遇到一个问题,需要把一个19为的字符串转换为16进制.不想使用分段转换,想一次性的全部转换. C#中支持9种整型:sbyte,byte,short,ushort,int,uint,long,ulong和char. Sbyte:代表有符号的8位整数,数值范围从-128 - 127 Byte:代表无符号的8位整数,数值范围从0-255 Short:代表有符号的16位整数,范围从-32768 - 32767 ushort:代表有符号的16位整数,范围从0 到 65,535 Int:代表有符