基于51单片机的四位数字频率计数码管显示设计

2023-02-09  

仿真原理图:


程序运行图:


部分程序:


#include

#define uchar unsigned char

#define uint unsigned int

uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码

//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端 (开发板)

uchar wei[4]={0X80,0X40,0X20,0X10}; //位的控制端 (仿真)

uint z,x,c,v, date; //定义数据类型

uint dispcount=0;

uint lck=0;

uint disp=0;

/******************************************************************


P2=wei[3];

P0=duan[v];

delay(50);


}


/*************************************************************************

定时器初值1ms

**************************************************************************/

void initTimer(void)

{

TMOD=0x0;

TH0=0xe3;

TL0=0xc;

}


/*************************************************************************

定时器函数

**************************************************************************/

void timer0(void) interrupt 1

{

TH0=0xe3;

TL0=0xc;

lck++;

if(lck==1000)

{

disp=dispcount;

lck=0;

dispcount=0;

}


}


/*************************************************************************

中断函数

**************************************************************************/

void int0(void) interrupt 0

{


dispcount++; //每一次中断,计数加一


}


/*************************************************************************

主函数

**************************************************************************/

void main(void)

{


IT0=1; //INT0下降沿中断

EX0=1; //允许INT1中断

initTimer(); //装入初值

TR0=1;

ET0=1;

EA=1;

while(1)


{

date=disp;

xianshi();

}

}


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。