树莓派编程wiringPi控制电子数码管显示循环0~9
来源:互联网 发布:寿百年黑俄罗斯淘宝店 编辑:程序博客网 时间:2024/05/16 06:24
我是看着胡老师的文档做的,现在也懒得写了。把文档放在这了http://pan.baidu.com/s/1c07D02k,胡老师写的文档真是太详细了
下面只贴一下代码吧,也没有注释。
led.h
#define LED_A 29#define LED_B 27#define LED_C 24#define LED_D 22#define LED_E 21#define LED_F 28#define LED_G 25#define LED_H 23#define LED_COM1 0#define LED_COM2 2#define LED_COM3 3#define LED_COM4 12#define LED_D1 LED_E#define LED_D2 LED_D#define LED_D3 LED_H#define LED_D4 LED_C#define LED_D5 30#define LED_D6 31#define LED_D7 11#define LED_D8 10int tube_segment[]={LED_A, LED_B, LED_C, LED_D, LED_E, LED_F, LED_G, LED_H};int number_segments[]={0b11111100, 0b01100000, 0b11011010, 0b11110010, 0b01100110, 0b10110110, 0b10111110,0b11100000, 0b11111110, 0b11100110};int tube_coms[]={LED_COM1, LED_COM2, LED_COM3, LED_COM4};int led_segment[]={LED_D1, LED_D2, LED_D3, LED_D4, LED_D5, LED_D6, LED_D7, LED_D8};void init_raspberrypi_gpios(void);void display_number_in_tube(int number, int tube_number);
led.c
#include<stdio.h>#include<wiringPi.h>#include "led.h"int main(){int i, current_number=0;wiringPiSetup();init_raspberrypi_gpios();while(1){// for (i = 0; i < 4; ++i){display_number_in_tube(current_number, 0);display_number_in_tube(current_number, 1);display_number_in_tube(current_number, 2);display_number_in_tube(current_number, 3);current_number++;if(current_number==10){current_number=0;}delay(500);}}return 0;}void init_raspberrypi_gpios(void){int i, count =8;for (i = 0; i < count; ++i){pinMode(tube_segment[i], OUTPUT);digitalWrite(tube_segment[i], HIGH);}count = 4;for (i = 0; i < count; ++i){pinMode(tube_coms[i], OUTPUT);digitalWrite(tube_coms[i], HIGH);}}void display_number_in_tube(int number, int tube_number){int i;int b_number = number_segments[number];for (i = 0; i < 8; ++i){if(b_number&0x80){digitalWrite(tube_segment[i], LOW);}else{digitalWrite(tube_segment[i], HIGH);}b_number<<=1;}// for (i = 0; i < 4; ++i)// {// digitalWrite(tube_coms[i], HIGH);// }if (tube_number < 4){digitalWrite(tube_coms[tube_number], LOW);/* code */}else{printf("%s\n", "tube number error!");}}
然后用WinScp传到树莓派上,在终端用如下命令编译、运行。
gcc -Wall -o led led.c -lwiringPi
sudo ./led
0 0
- 树莓派编程wiringPi控制电子数码管显示循环0~9
- 数码管0到9循环显示
- 数码管9到0循环显示
- 数码管循环显示1-9
- 数码管0到9循环显示仿真图
- 按键控制数码管显示
- 按键控制数码管显示
- 单片机编程:让led数码管显示数字0到9
- RS232串口控制LED数码管电子看板
- 9、新手入手树莓派教程--WiringPi控制GPIO
- 9、新手入手树莓派教程--WiringPi控制GPIO
- 单片机控制的数码管显示
- 定时器控制数码管扫描显示
- 按键控制单个数码管显示
- 数码管从0到9再从9到0循环显示
- (4)51单片机入门案列-8个数码管中循环显示数字0-9
- 4*4矩阵按键控制数码管显示0-F
- 树莓派使用wiringPi控制LED灯
- 第一篇
- 一句话了解Java回调机制的使用和功能
- Gamecenter 测试失败的解决方案
- [前端] 不定宽高居中对齐
- 数值优化(Numerical Optimization)学习系列-非线性方程(Nonlinear Equation)
- 树莓派编程wiringPi控制电子数码管显示循环0~9
- ios第一天
- Spark SQL 源码分析系列文章
- 背包问题(物体可分割)
- 网关、路由器的区别
- java hashtable 和 hashmap的区别
- 信管专业毕业生的尴尬
- 游戏系统开发笔记(序)——因由、感想与目的
- leetcode之Implement Queue using Stacks