此次使用的代码是以上一节的代码为基础
仅作为平时查看代码
main.c
#include <REGX52.H>
#include "Nixie.h"
#include "Delay.h"
void main()
{
while (1)
{
Nixie(1,1); Delay1ms(1);
Nixie(2,2); Delay1ms(1);
Nixie(3,3); Delay1ms(1);
Nixie(4,4); Delay1ms(1);
Nixie(5,5); Delay1ms(1);
Nixie(6,6); Delay1ms(1);
Nixie(7,7); Delay1ms(1);
Nixie(8,8); Delay1ms(1);
}
}
Delay.c
void Delay1ms(unsigned int xms) //@12.000MHz
{
unsigned char i, j;
while(xms)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
Delay.h
#ifndef __DELAY_H__
#define __DELAY_H__
void Delay1ms(unsigned int xms);
#endif
Nixie.c
#include <REGX52.H>
#include "Delay.h"
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x06};
void Nixie(unsigned char Location,Number)
{
switch (Location)
{
case 1 :
P1_2=0; P1_1=0; P1_0=0;
break;
case 2 :
P1_2=0; P1_1=0; P1_0=1;
break;
case 3 :
P1_2=0; P1_1=1; P1_0=0;
break;
case 4 :
P1_2=0; P1_1=1; P1_0=1;
break;
case 5 :
P1_2=1; P1_1=0; P1_0=0;
break;
case 6 :
P1_2=1; P1_1=0; P1_0=1;
break;
case 7 :
P1_2=1; P1_1=1; P1_0=0;
break;
case 8 :
P1_2=1; P1_1=1; P1_0=1;
break;
}
P0 = NixieTable[Number];
Delay1ms (1);
P0 = 0x00;
}
Nixie.h
#ifndef __NIXIE_H__
#define __NIXIE_H__
void Nixie(unsigned char Location,Number);
#endif