请问我这单片机c语言程序错哪了?定时器1定时50ms,中断20次,p2.7亮灭一次,中断60次,p2.0亮灭一次。

#include"AT89X51.H"voidmain(){P2_0=0;P2_7=0;TMOD=0x10;TH1=0x3C;TL1=0xB0;EA=1;ET1=1;TR... #include "AT89X51.H"
void main()
{
P2_0=0;
P2_7=0;
TMOD=0x10;
TH1=0x3C;
TL1=0xB0;
EA=1;
ET1=1;
TR1=1;
while(1);
unsigned int n=0,m=0;

}
ipt1() interupt 3
{
n++;

if(n==20)
{
P2_7=!P2_7;
TH1=0x3C;
TL1=0xB0;
m++;
if(m==3)
{
P2_0=!P2_0;
m=0;
}
n=0;
}
}
错误:

nev.c(14): error C141: syntax error near 'unsigned'
nev.c(14): error C202: 'n': undefined identifier
nev.c(17): error C132: 'interupt': not in formal parameter list
nev.c(17): error C141: syntax error near '3'
nev.c(19): error C132: 'n': not in formal parameter list
nev.c(23): error C244: 'P2_7': can't initialize, bad type or class
nev.c(23): error C132: 'P2_7': not in formal parameter list
nev.c(24): error C244: 'TH1': can't initialize, bad type or class
nev.c(24): error C132: 'TH1': not in formal parameter list
nev.c(25): error C244: 'TL1': can't initialize, bad type or class
nev.c(25): error C132: 'TL1': not in formal parameter list
nev.c(26): error C132: 'm': not in formal parameter list
nev.c(26): error C141: syntax error near '++'
nev.c(29): error C244: 'P2_0': can't initialize, bad type or class
nev.c(29): error C132: 'P2_0': not in formal parameter list
nev.c(30): error C244: 'm': can't initialize, bad type or class
nev.c(30): error C132: 'm': not in formal parameter list
nev.c(31): error C141: syntax error near '}'
nev.c(33): error C141: syntax error near '}'
展开
 我来答
linnjing
2014-04-08 · TA获得超过2632个赞
知道大有可为答主
回答量:1230
采纳率:91%
帮助的人:522万
展开全部
1、interrupt 拼写不对,
2、unsigned int n=0,m=0 一句应该放在main的外面。
暂时这两个问题,你先试试,然后追问吧。
追问
为什么m和n的定义要放在main外面呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5922771321
2014-04-08 · TA获得超过1438个赞
知道小有建树答主
回答量:1410
采纳率:100%
帮助的人:372万
展开全部
#include "AT89X51.h"
unsigned int n=0;
unsigned int m=0;
sbit P20 = P2^0;
sbit P27 = P2^7;
void main()
{

P20=0;
P27=0;
TMOD=0x10;
TH1=0x3C;
TL1=0xB0;
EA=1;
ET1=1;
TR1=1;
while(1);

}
void timer1() interrupt 3
{
n++;
TH1=0x3C;
TL1=0xB0;
if(n==20)
{
P27=!P27;
m++;
if(m==3)
{
P20=!P20;
m=0;
}
n=0;
}
}
这个编译通过了,没问题了!!你试试!
更多追问追答
追问
m和n的定义为什么要放到外面?
追答
全局变量要放外面,如果放到main函数里面就是局部变量了,在中断函数里面就调用不了了,
你看看全局变量和局部变量的区别吧!!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我会变乖192
2014-04-08
知道答主
回答量:33
采纳率:0%
帮助的人:20.4万
展开全部
unsigned 未定义是不能直接使用这个类型的 需要定义一下 你一步一步改吧 我也没办法一下子全部帮你找到
追问
需要定义一下是什么意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式