seg1.txt

来自「pic 单片机的应用子程序库」· 文本 代码 · 共 67 行

TXT
67
字号
/**************************************************************
实现的功能:在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;
     }
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?