字形输出码的作用,点阵码与字节关系

首页 > 经验 > 作者:YD1662022-11-18 00:31:48

主要参数:

引脚定义:

Arduino实验

下面我们就用Arduino UNO驱动8位数码管模块工作吧。

硬件设备:

接线图:

将驱动模块的DIN、CS、CLK分别连到Arduino 12、11、10数字引脚上,连接电源和接地线。

字形输出码的作用,点阵码与字节关系(9)

程序:

在编程之前我们需要知道一位数码管对应显示各个数字字符的段码。我们可以用这样的一个小程序进行查询。例如数字2,它的段码正码就是5B,反码就是A4,分别对应共阳和共阴的数码管。

字形输出码的作用,点阵码与字节关系(10)

数字2的段码查询

//数码管显示程序 //事先输入查询好的各个字符的段码 uint8_t SEGPLAY[] = { 0xC0, //"0" 0xF9, //"1" 0xA4, //"2" 0xB0, //"3" 0x99, //"4" 0x92, //"5" 0x82, //"6" 0xF8, //"7" 0x80, //"8" 0x90, //"9" // 0x88, //"A" // 0x83, //"B" // 0xC6, //"C" // 0xA1, //"D" // 0x86, //"E" // 0x8E, //"F" // 0x89, //"H" // 0xC7, //"L" // 0xC8, //"n" // 0xC1, //"u" // 0x8C, //"P" // 0xA3, //"o" // 0xBF, //"-" // 0xFF, //熄灭 // 0xFF //自定义 }; //定义位码,也就是1到8位的数码管的代码 uint8_t DIG[] = {0b10000000, 0b01000000, 0b00100000, 0b00010000, 0b00001000, 0b00000100, 0b00000010, 0b00000001, }; //定义三个引脚 #define latchPin 10 #define clockPin 11 #define dataPin 12 void setup() { //定义三个引脚为输出 pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); } void loop() { playnum (1308, 5014); //显示 13085014 delay(20); } // //函数作用:用于两个四位数码管显示数字 //输入值:unsigned int 范围0-9999 // //返回值: 无 // void playnum (unsigned int i, unsigned int j) { SegDisplay(i / 1000, 0); SegDisplay((i % 1000) / 100, 1); SegDisplay((i % 100) / 10, 2); SegDisplay((i % 10), 3); SegDisplay( j / 1000, 4); SegDisplay((j % 1000) / 100, 5); SegDisplay((j % 100) / 10, 6); SegDisplay((j % 10), 7); } // //函数作用:用于单位数码管显示数字 //输入值:i 范围0-11 // // 显示位置 1-4 // //返回值: 无 // void SegDisplay(int i, int j) { digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, DIG[j]); //位选 shiftOut(dataPin, clockPin, MSBFIRST, SEGPLAY[i]);//段选 digitalWrite(latchPin, HIGH); delayMicroseconds(500);//调节这个和下面的参数可以调整显示亮度,建议这两个数加起来为860。这样是为了显示时间准确 // delayMicroseconds(360); },

上一页123末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.