这个实验利用mega16实现数码管的动态扫描显示,详情见附件.
平台:FDRAVR开发板
代码:
#include <mega16.h>
#include <delay.h>
//num,要显示的数据(0~9);pos,要显示的位置(从右到左)
void display(uchar num,uchar pos)
{
DDRA="0XFF";//定义PORTA口输出
PORTA="0XFF";//输出高电平
switch(pos)
{
case 3:PORTA=0X01;break;
case 2:PORTA=0X02;break;
case 1:PORTA=0X04;break;
case 0:PORTA=0X08;break;
default:PORTA=0X00;
}
num<<=4;//取数字,送CD4511
PORTA|=num;
}
void main()
{
uint t="0";
while(1)
{
display(t%10,0);delay_ms(5);
display((t/10)%10,1);delay_ms(5);
display((t/100)%10,2);delay_ms(5);
display((t/1000),3);delay_ms(5);
if(t>9999)t=0;
t++;
}
}
文章评论(0条评论)
登录后参与讨论