目录
写在最前:本项目附视频效果展示,可点击文内链接查看。
一,模块化编程
模块化编程是一种软件设计技术,它强调将程序的功能分为独立的,可互换的模块,以使每个模块都包含执行所需功能的一个方面所必需的一切。
在本项目中具体实现方式是将Nixie.h、Nixie.c、Delay.h、Delay.c模块化。
Nixie.h
#ifndef __NIXIE_H__
#define __NIXIE_H__
void Nixie(unsigned char Location,Number,xms);
#endif
Nixie.c
#include <REGX52.H>
#include "Delay.h"
unsigned char NixieNumber[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void Nixie(unsigned char Location,Number,xms)
{
P0=0x00;
switch(Location)
{
case 1:
P0=0x01;break;//1ÁÁ 0Ãð
case 2:
P0=0x02;break;
}
P2=NixieNumber[Number];
Delay(xms);
//P2=0x00;//0ÁÁ 1Ãð
}
Delay.h
#ifndef __DELAY_H__
#define __DELAY_H__
void Delay(unsigned int xms);
#endif
Delay.c
void Delay(unsigned int xms) //@12.000MHz
{
while(xms--)
{
unsigned char i, j;
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
前部定义
#include <REGX52.H>
#include "Delay.h"
#include "Nixie.h"
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
sbit L5=P1^4;
sbit L6=P1^5;
sbit L7=P1^6;
sbit L8=P1^7;
unsigned int i;
unsigned int j;
int P=0x00;
int Hour=0;
int Min=0;
int S=0;
二,功能介绍
- Morse Code
本项目中,八个发光二极管全亮表示MorseCode中的长横杠,第一个发光二极管亮表示小点。
代码展示0~9的Morse Code,其中数码管显示正表示的数字,发光二极管负责显示MorseCode。
实现代码如下:
//0
for(i=0;i<100;i++)
{Nixie(1,0,5);L1=0;L2=0;L3=0;L4=0;L5=0;L6=0;L7=0;L8=0;}
P1=0xff;
Delay(100);
for(i&