ATMEGA8单片机数码管显示程序源码及仿真.zip
时间:10-30 16:36
查看:1014次
下载:162次
简介:
本资料为ATMEGA8单片机数码管显示程序源码及仿真等。
#include <iom8v.h>
#define uchar unsigned char
#define uint unsigned int
uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
//uchar wei[4]={0XFE,0XFD,0XFB,0XF7}; //位的控制端 (开发板)
uchar wei[4]={0X08,0X04,0X02,0X01}; //位的控制端 (仿真)
uint z,x,c,v, date; //定义数据类型
/******************************************************************
延时函数
******************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/**********************************************************************
数码管动态扫描
*********************************************************************/
void xianshi()
{
/*****************数据转换*****************************/
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求个位
PORTC=wei[0];
PORTB=duan[z];
delay(50);
PORTC=wei[1];
PORTB=duan[x];
delay(50);
PORTC=wei[2];
PORTB=duan[c];
delay(50);
PORTC=wei[3];
PORTB=duan[v];
delay(50);
}
/***********************************初始化*****************************/
void csh()
{
DDRB=0XFF;
DDRD=0XFF;
DDRC=0X0F;
}
/*************************************************************************
主函数
**************************************************************************/
void main()
{
csh();
while(1)
{
date=5678;
xianshi();
}
}
///////////////////////////////////////////////////////////////////