您的位置:首页单片机PIC单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

MCD2-DEMO 数码管显示PICC-18范例(适合初学者)

[日期:2008-01-12 ] [来源:pic16 作者:] [字体: (投递新闻)

/**************************************************************
实现的功能:在MCD2-DEMO上使数码管从左到右各显示0-5


芯片PIC18F452
编译器PICC-18


XT:4MHZ
***************************************************************/
#include "pic18.h"
const unsigned char display_numb[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};
unsigned char display_data[6];//0:L 5:R
/**************************************************************
端口初始化
LATC作为数码管段驱动(低有效)
LATA作为数码管位选择驱动(低有效)
***************************************************************/
void init_port(void)
{
  LATC=0xff;   //
  TRISC=0;   //C口当作数码管段,设置成输出
  ADCON1=0x07;
  TRISA=0;   //A口当作数码管位选择控制脚,设置成输出  
  LATA=0xff;
}
/**************************************************************
延迟程序
***************************************************************/
void delay_1ms(void)
{
  unsigned int n;
  for(n=0;n<50;n++)
   {
    NOP();
   }
}
void delay_ms(unsigned int time)
{
  for(;time>0;time--)
   {
    delay_1ms();
   }
}
/**************************************************************
主程序
从左到右显示0-5
***************************************************************/
void main(void)
{
  unsigned char n;
  init_port();
  display_data[0]=display_numb[1];//2
  display_data[1]=display_numb[0];//1
  display_data[2]=display_numb[3];//4
  display_data[3]=display_numb[2];//3
  display_data[4]=display_numb[5];//6
  display_data[5]=display_numb[4];//5
  while(1)
   {
    LATA=0xfe;  
    for(n=0;n<6;n++)
     {
      LATC=display_data[n];
      delay_ms(1);
      LATA=(LATA<<1)+1;
     }
   }
}

阅读:
录入:东哥

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
站长推荐