英锐恩单片机论坛,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