英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
PICC六位数码管从左到右显示0123456六位数字
[打印本页]
作者:
kingman
时间:
2009-4-18 18:01
标题:
PICC六位数码管从左到右显示0123456六位数字
//实验目的:熟悉多位数码管动态扫描显示的方法。
//六位数码管从左到右显示0123456六位数字。
//硬件要求:拨码开关S5、S6全部置ON。其他拨码开关全置OFF。
#include<pic.h> //包含单片机内部资源预定义
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
void delay(); //delay函数申明
void init(); //I/O口初始化函数申明
const char TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92}; //定义常数0-5的数据表格
void main() //主函数
{
while(1) //死循环,让数码管持续点亮
{
init(); //调用初始化函数
PORTD=TABLE[0]; //D口输出数据表格第1个数据0
PORTA=0X3E; //点亮第1位数码管
delay(); //延时一定时间,保证数码管亮度
PORTD=TABLE[1]; //显示数据1(同数据0)
PORTA=0X3d;
delay();
PORTD=TABLE[2]; //显示数据2(同数据0)
PORTA=0X3b;
delay();
PORTD=TABLE[3]; //显示数据3(同数据0)
PORTA=0X37;
delay();
PORTD=TABLE[4]; //显示数据4(同数据0)
PORTA=0X2f;
delay();
PORTD=TABLE[5]; //显示数据5(同数据0)
PORTA=0X1f;
delay();
}
}
void init() //I/O口初始化函数
{
TRISA=0X00; //设置A0输出,其他输入
TRISD=0X00; //设置D口输出
ADCON1=0X07; //设置A口为普通I/O口
PORTA=0xff;
PORTD=0xff; //先熄灭所有显示
}
void delay() //延时程序
{
int i; //定义整形变量
for(i=0x100;i--;); //延时
}
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2