|
很久没接触自己的专业了,前些天把自己以前写的小程序拿到Proteus上模拟,但是结果让我很疑惑。。。
程序很简单,电路也很简单,M16做的
//ICC-AVR application builder : 2012-11-13 11:50:18
// Target : M16
// Crystal: 12.000Mhz
#include <iom16v.h>
#include <macros.h>
#include <KEY_TIMER0.h>
#define unchar unsigned char
#define unint unsigned int
unchar B[]={0x01,0x02,0x04,0x08};
unchar A[]={GD_0,GD_1,GD_2,GD_3};//GD_X在头文件KEY_TIMER0.H中定义的,表示显示的数字是X
void port_init(void)
{
PORTA = 0x00;
DDRA = 0xff;
PORTB = 0x00;
DDRB = 0x00;
PORTC = 0x00;
DDRC = 0x0f;
PORTD = 0x00;
DDRD = 0x00;
}
void watchdog_init(void)//看门狗
{
WDR();
WDTCR = 0x0E;
}
void init_devices(void)//初始化
{
CLI(); //disable all interrupts
port_init();
watchdog_init();
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x01; //timer interrupt sources
SEI(); //re-enable interrupts
}
void DISP(void)//扫描程序
{ int i=0,j;
for(;i<4;i++)
{
PORTA=A[i];
PORTC=B[i];
Delay(10);
}
}
void Delay(unint a)//延时
{unint i,i1;
for(i1=0;i1<a;i1++)
{for(i=0;i<1595;i++)
WDR();}
}
void main()
{
init_devices();
while(1)
{
DISP();
WDR();
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|