请各位大侠,帮我看一段单片机程序,怎么不能进入调试状态,一进入就提0x00436e8a引用的内容为不可读。 5

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint//以下是C调低音的音频宏定义#define... # include <reg52.h>
# define uchar unsigned char
# define uint unsigned int
//以下是C调低音的音频宏定义
#define l_dao 262 //将“l_dao”宏定义为低音“1”的频率262Hz
#define l_re 286 //将“l_re”宏定义为低音“2”的频率286Hz
#define l_mi 311 //将“l_mi”宏定义为低音“3”的频率311Hz
#define l_fa 349 //将“l_fa”宏定义为低音“4”的频率349Hz
#define l_sao 392 //将“l_sao”宏定义为低音“5”的频率392Hz
#define l_la 440 //将“l_a”宏定义为低音“6”的频率440Hz
#define l_xi 494 //将“l_xi”宏定义为低音“7”的频率494Hz

//以下是C调中音的音频宏定义
#define dao 523 //将“dao”宏定义为中音“1”的频率523Hz
#define re 587 //将“re”宏定义为中音“2”的频率587Hz

#define mi 659 //将“mi”宏定义为中音“3”的频率659Hz
#define fa 698 //将“fa”宏定义为中音“4”的频率698Hz
#define sao 784 //将“sao”宏定义为中音“5”的频率784Hz
#define la 880 //将“la”宏定义为中音“6”的频率880Hz
#define xi 987 //将“xi”宏定义为中音“7”的频率53

//以下是C调高音的音频宏定义
#define h_dao 1046 //将“h_dao”宏定义为高音“1”的频率1046Hz
#define h_re 1174 //将“h_re”宏定义为高音“2”的频率1174Hz
#define h_mi 1318 //将“h_mi”宏定义为高音“3”的频率1318Hz
#define h_fa 1396 //将“h_fa”宏定义为高音“4”的频率1396Hz
#define h_sao 1567 //将“h_sao”宏定义为高音“5”的频率1567Hz
#define h_la 1760 //将“h_la”宏定义为高音“6”的频率1760Hz
#define h_xi 1975 //将“h_xi”宏定义为高音“7”的频率1975Hz
unsigned char code dis_code[16]={0x3f,0x06,0x5b,0x4f, // 0, 1, 2, 3
0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//5,6,7,8,9
uchar code key_code[]={
0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77 }; //对应键值
sbit beep=P3^2;
uint key;
uint f;//音频
uint k;

void scankey() ;

void delay(uchar t);

/*延时子函数*/
void delay(uchar t)
{uchar i;
while(t--)
{for(i=0;i<150;i++)
;
}
}

/*声频输出函数*/
void OutSound()
{
k=(50000/f )*10;
TH0=(65535-k)/256;
TL0=(65535-k)%256;
TR0=1;
delay(600);
TR0=0;
P1=0xff;//关短按键,防止干扰误动作
}

void scankey1 ()
{
P1=0xf0;
if((P1&0xf0)!=0xf0)
{scankey();
}
}
展开
 我来答
匿名用户
2011-09-14
展开全部
//秒表的设定
#include<iom16v.h>
#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引用的内容为不可读。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
视角与时间
2011-09-05 · 时光冉冉,知易行难。
视角与时间
采纳数:29 获赞数:90

向TA提问 私信TA
展开全部
这个 应该是你电脑内存问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a_crystal
2011-09-07 · TA获得超过519个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:96.2万
展开全部
是不是启动了看门狗定时器?调试模式绝对不能开着看门狗定时器。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liytch520
2011-09-05
知道答主
回答量:34
采纳率:0%
帮助的人:14.2万
展开全部
从你的不完整程序无法判断问题所在
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式