/************************************************************************
Name: 数码管
Copyright: 唐湘衡
Author: 唐湘衡
Date: 24-10-09 15:42
Description:
功能:六位数码管从左(6)到右(1)显示123456六位数字。
器件:pic18f4520芯片一片,pic-DEMO工程板一块,picMCD2仿真器,台式电脑
要求:选用xt晶振,关闭看门狗定时器和低电压编程
**************************************************************************/
#include
void Delay(); //延时函数的声明
void IntPort(); //I/O口初始化函数申明
const char TABLE[] = {0XF9,0XA4,0XB0,0X99,0X92,0X82}; //定义1-5的数字 (D端口控制 )
//*************************************************************************************
void main()
{
IntPort(); //调用端口初始化函数
PORTD = TABLE[0]; //输出数据1
PORTA = OX1F; //打开第六个数码管(最左一个)
Delay();
PORTD = TABLE[1]; //输出数据1
PORTA = OX2F; //打开第5个数码管
Delay();
PORTD = TABLE[2]; //输出数据1
PORTA = OX37; //打开第4个数码管
Delay();
PORTD = TABLE[3]; //输出数据1
PORTA = OX3B; //打开第3个数码管
Delay();
PORTD = TABLE[4]; //输出数据1
PORTA = OX3D; //打开第2个数码管
Delay();
PORTD = TABLE[5]; //输出数据1
PORTA = OX3E; //打开第1个(最右的)数码管
Delay();
}
//*************************************************************************************
void Delay() //延时函数的定义
{
int i;
for (i=20000; i>0; i--){;}
}
//*************************************************************************************
void IntPort()
{
TRISA = 0X00; //A端口全部设为输出
TRISD = 0X00; //D端口全部设为输出
ADCON1 = 0X07; //设置A口为普通I/O口(模数转换寄存器)查表吧
PORTA = 0XFF;
PORTD = 0XFF; //熄灭所有数码管
}