pic单片机4位数码管显示 1~9999循环点亮

  • 格式:docx
  • 大小:12.24 KB
  • 文档页数:2

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
a=i;
bit1000=a/1000;//提取千位
a=a%1000;
bit100=a/100;//提取百位
a=a%100;
bit10=a/10;//提取十位
bit1=a%10;//提取个位
for( j=1; j <= 20;j++)
{
DS4=0;
PORTD=str[bit1];
DS1=1; //个位的位选
DS4=1; //千位的位选
delay(2);//*延时5mS*/
}
}
}
}
#include <pic.h> //调用头文件,可以去PICC软件下去查找PIC16F87XA单片机的头文件
__CONFIG(0x1832);
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡
#define DS1 RA1
#define DS2 RA2
#define DS3 RA3
}
/************主程序**********/
uchar smg()
{
init();
unsigned char j;
unsigned int i,a,bit1000,bit100,bit10,bit1;
DS1=1;
DS2=1;
DS3=1;
DS4=1;
while(1)
{
for( i=1; i <= 99Biblioteka Baidu9;i++)
delay(2);//*延时5mS*
DS1=0;
PORTD=str1[bit10];
DS2=1; //十位的位选
delay(2);//*延时5mS
DS2=0;
PORTD=str[bit100];
DS3=1; //百位的位选
delay(2);//*延时5mS
DS3=0;
PORTD=str[bit1000];
const unsigned char str1[]={0x0bf,0x86,0x0db,0x0cf,0x0e6,0x0ed,0x0fd,0x87,0x0ff,0x0ef}; //个位带小数点字码表
//const unsigned char wei[4]={COL1+COL2+COL3+COL4};//{0x001,0x002,0x004,0x008};
/**********ds1820程序************/
void delay(unsigned int i) //延时1微秒
{
for(i=100;i--;);
}
void init(void) //主板初始化
{
TRISD=0X00;
TRISA=0X00;
PORTA=0X00;
PORTD=0X00;
#define DS4 RA5
#define B20 RA4
#define uchar unsigned char
#define uint unsigned int
unsigned char unm;
const unsigned char str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40} ; //共阴数码管字码表