kingman 发表于 2009-4-18 18:01:11

PICC六位数码管从左到右显示0123456六位数字

//实验目的:熟悉多位数码管动态扫描显示的方法。
//六位数码管从左到右显示0123456六位数字。
//硬件要求:拨码开关S5、S6全部置ON。其他拨码开关全置OFF。
#include<pic.h>            //包含单片机内部资源预定义
__CONFIG(0x1832);      
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡

voiddelay();            //delay函数申明
voidinit();               //I/O口初始化函数申明
const char TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92};//定义常数0-5的数据表格

void main()               //主函数
   {
   
   while(1)                //死循环,让数码管持续点亮
       {
         init();             //调用初始化函数
         PORTD=TABLE;   //D口输出数据表格第1个数据0
         PORTA=0X3E;         //点亮第1位数码管
         delay();            //延时一定时间,保证数码管亮度
         PORTD=TABLE;   //显示数据1(同数据0)
         PORTA=0X3d;
         delay();
      
         PORTD=TABLE;   //显示数据2(同数据0)
         PORTA=0X3b;
         delay();
         PORTD=TABLE;   //显示数据3(同数据0)
         PORTA=0X37;
         delay();
         PORTD=TABLE;   //显示数据4(同数据0)
         PORTA=0X2f;
         delay();
         PORTD=TABLE;   //显示数据5(同数据0)
         PORTA=0X1f;
         delay();
      }
    }         
void init()               //I/O口初始化函数
   {
    TRISA=0X00;             //设置A0输出,其他输入
    TRISD=0X00;             //设置D口输出
    ADCON1=0X07;            //设置A口为普通I/O口
    PORTA=0xff;            
    PORTD=0xff;             //先熄灭所有显示
   }
   
voiddelay()            //延时程序
    {
   int i;               //定义整形变量
   for(i=0x100;i--;);   //延时
    }
页: [1]
查看完整版本: PICC六位数码管从左到右显示0123456六位数字