|
/***************************************************************************
* 文件名:SEG 012345.c
* 功 能:六位数码管从左到右显示543210六位数字
* 作 者:
* 日 期:
* 备 注:
//软件思路:利用人眼睛的视觉暂留,迅速依次点亮数码管,
// 使人们以为几个数码管是全亮的
//开发板连接方法:把JP2跳线帽接上,JP3 SEG1 SEE2接上,JP1 跳线帽取下
****************************************************************************/
#include<pic.h> //包含单片机内部资源预定义
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
void delay(); //delay函数申明
//定义常数0-9的数据表格
const unsigned char TABLE[] = {0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7c,0x7,0x7f,0x6f};
/****************************************************************************
* 名 称:main()
* 功 能:主函数
* 入口参数:
* 出口参数:
* 说 明:
****************************************************************************/
void main()
{
TRISD = 0; //portd 输出
TRISA = 0; //porta 输出
PORTA = 0x00; //禁止显示
PORTD = 0x0f;
while (1) //死循环,让数码管持续点亮
{
PORTD = TABLE[0]; //取出数据,送D口显示
PORTA = 0x01; //点亮第一个位数码管
delay(); //延长一段时间,保证亮度
PORTD = TABLE[1]; //显示数据1(同数据0)
PORTA = 0x02;
delay();
PORTD = TABLE[2];
PORTA =0x04;
delay();
PORTD = TABLE[3];
PORTA = 0x08;
delay();
PORTD = TABLE[4];
PORTA = 0x10;
delay();
PORTD = TABLE[5];
PORTA = 0x20;
delay();
}
}
/****************************************************************************
* 名 称:delay()
* 功 能:延时
* 入口参数:
* 出口参数:
* 说 明:
****************************************************************************/
void delay()
{
int i; //定义整形变量
for (i = 60;i--;); //延时
}
|
|