//秒表的设定
#include
#define uint unsigned int
#define uchar unsigned char
#define display_data PORTC //数码管数据口
#define display_contrl PORTD //数码管控制口
uchar x[10]={0xc0,0xf9,0xa4,0xb0,0x99, //共阳数码管段码值
0x92,0x82,0xf8,0x80,0x90};
uint m=0,n=0,k=0;
//延时子程序
void delay(uint m)
{
for(;m>0;m--);
}
//中断服务子程序
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0=0xf1; //重新加载计数初值
k++;
}
//主程序
void main()
{
PORTA=0xff; //端口初始化
PORTB=0xff;
PORTC=0xff;
PORTD=0xff;
DDRA=0xff;
DDRB=0xff;
DDRC=0xff;
DDRD=0xff;
TCNT0=0xf1; //计数初值(计数溢出时为1ms并产生中断)
TCCR0=0x03; //选择64分频
TIMSK=0x01; //开timer0中断允许
SREG=0x80; //开总中断允许
while(1)
{
display_contrl=0x01;
display_data=x[m];
delay(50);
display_contrl=0x02;
display_data=x[n];
delay(50);
if(k==1000) //循环中断1000次,1s=1ms*1000
{
n++;
k=0;
if(n>9)
{
m++;
n=0;
if(m>5)
m=0;
}
}
}
}
这完全出自本人手笔,介绍的还算详尽吧,可能是60秒的计时,你看懂了自己改成99的吧,这样你才能学到东西!加油哥们!这点小东西还要上网... 对了这个用的是内部晶振1MHz
柳州电脑网
A请各位大侠,帮我看一段单片机程序,怎么不能进入调试状态,一进入就提0x00436e8a引用的内容为不可读。
这个 应该是你电脑内存问题
是不是启动了看门狗定时器?调试模式绝对不能开着看门狗定时器。
从你的不完整程序无法判断问题所在