74HC595 Nixie Driver

Dependencies:   mbed

Committer:
heroistired
Date:
Fri Jun 16 07:07:15 2017 +0000
Revision:
0:b5bd2bc3c14d
Chen Huan; EEA of THU

Who changed what in which revision?

UserRevisionLine numberNew contents of line
heroistired 0:b5bd2bc3c14d 1 /***************************************************************
heroistired 0:b5bd2bc3c14d 2 功能 : mbed的串联74HC595数码管驱动
heroistired 0:b5bd2bc3c14d 3 作者 : 陈欢 清华大学电机工程与应用电子技术系
heroistired 0:b5bd2bc3c14d 4 邮箱 : h-che14@mails.tsinghua.edu.cn OR heroistired@gmail.com
heroistired 0:b5bd2bc3c14d 5 声明 :
heroistired 0:b5bd2bc3c14d 6 本程序仅供学习与交流使用,如需他用,须联系作者
heroistired 0:b5bd2bc3c14d 7 本程序可以随意更改,但须保留本信息页
heroistired 0:b5bd2bc3c14d 8 All rights reserved
heroistired 0:b5bd2bc3c14d 9 2017.6.16
heroistired 0:b5bd2bc3c14d 10 ***************************************************************/
heroistired 0:b5bd2bc3c14d 11
heroistired 0:b5bd2bc3c14d 12 #include "Nixie.h"
heroistired 0:b5bd2bc3c14d 13
heroistired 0:b5bd2bc3c14d 14 Nixie::Nixie(PinName _DIO, PinName _SCK, PinName _RCK): DIO(_DIO), SCK(_SCK), RCK(_RCK)
heroistired 0:b5bd2bc3c14d 15 {
heroistired 0:b5bd2bc3c14d 16 DIO = 0;
heroistired 0:b5bd2bc3c14d 17 SCK = 0;
heroistired 0:b5bd2bc3c14d 18 RCK = 0;
heroistired 0:b5bd2bc3c14d 19 }
heroistired 0:b5bd2bc3c14d 20
heroistired 0:b5bd2bc3c14d 21 void Nixie::NixieShow(int Num, int Pos, bool WithDot)
heroistired 0:b5bd2bc3c14d 22 {
heroistired 0:b5bd2bc3c14d 23 char c, num;
heroistired 0:b5bd2bc3c14d 24
heroistired 0:b5bd2bc3c14d 25 if(WithDot)
heroistired 0:b5bd2bc3c14d 26 {
heroistired 0:b5bd2bc3c14d 27 num=NumCode[Num]-0x80;
heroistired 0:b5bd2bc3c14d 28 for(c=0;c<8;c++)
heroistired 0:b5bd2bc3c14d 29 {
heroistired 0:b5bd2bc3c14d 30 SCK=0;
heroistired 0:b5bd2bc3c14d 31 DIO=num&0x80;
heroistired 0:b5bd2bc3c14d 32 num<<=1;
heroistired 0:b5bd2bc3c14d 33 SCK=1;
heroistired 0:b5bd2bc3c14d 34 }
heroistired 0:b5bd2bc3c14d 35 }
heroistired 0:b5bd2bc3c14d 36 else
heroistired 0:b5bd2bc3c14d 37 {
heroistired 0:b5bd2bc3c14d 38 num=NumCode[Num];
heroistired 0:b5bd2bc3c14d 39 for(c=0;c<8;c++)
heroistired 0:b5bd2bc3c14d 40 {
heroistired 0:b5bd2bc3c14d 41 SCK=0;
heroistired 0:b5bd2bc3c14d 42 DIO=num&0x80;
heroistired 0:b5bd2bc3c14d 43 num<<=1;
heroistired 0:b5bd2bc3c14d 44 SCK=1;
heroistired 0:b5bd2bc3c14d 45 }
heroistired 0:b5bd2bc3c14d 46 }
heroistired 0:b5bd2bc3c14d 47
heroistired 0:b5bd2bc3c14d 48 num=SegBit[Pos];
heroistired 0:b5bd2bc3c14d 49 for(c=0;c<8;c++)
heroistired 0:b5bd2bc3c14d 50 {
heroistired 0:b5bd2bc3c14d 51 SCK=0;
heroistired 0:b5bd2bc3c14d 52 DIO=num&0x80;
heroistired 0:b5bd2bc3c14d 53 num<<=1;
heroistired 0:b5bd2bc3c14d 54 SCK=1;
heroistired 0:b5bd2bc3c14d 55 }
heroistired 0:b5bd2bc3c14d 56 RCK=0;
heroistired 0:b5bd2bc3c14d 57 RCK=1;
heroistired 0:b5bd2bc3c14d 58 }