Using the MSP430 with the CMOS logic chip CD4511 seven segment display/decoder/latch chip.
Source Code:
// MSP430G2231 // and display on 7 segment display via 4511 decoder/driver#include <msp430x20x2.h>#include <io.h>#include <signal.h>#include <stdlib.h>#include <stdio.h>static void __inline__delay(register unsigned int n);void main( void ){int msd, lsd, r1, r2, r3, r4, i, k = 0;WDTCTL = WDTPW + WDTHOLD; P1DIR |= 0x3f; P1SEL = 0x00;while( 1 ) {
i++;if (i > 99) i=0;
r2 = i / 10;r1 = i - r2 * 10;msd = r2;lsd = r1; P1OUT &= ~BIT4;P1OUT = (BIT0 & msd) | (BIT1 & msd) | (BIT2 & msd) | (BIT3 & msd) | BIT5;__inline__delay( 0xff );P1OUT |= BIT4;msd = 5;P1OUT &= ~BIT5;P1OUT = (BIT0 & lsd) | (BIT1 & lsd) | (BIT2 & lsd) | (BIT3 & lsd) | BIT4;P1OUT |= BIT5;__inline__delay(0xFF00);}}// Delay Routine from mspgcc help filestatic void __inline__delay(register unsigned int n){ __asm__ __volatile__ ( "1: \n" " dec %[n] \n" " jne 1b \n" : [n] "+r"(n));}