用Keil uVision3软件进行51单片机c语言编程,定义变量a为无符号整形出错了?具体如下

作者&投稿:廖复 (若有异议请与网页底部的电邮联系)
这个程序是用Keil uVision3软件运行的51单片机。里面有多处语法错误,求高手帮忙改一下啊!~

多了很多分号和逗号啊。给你改好了,这样的:
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN
MOV P0,#0FFH
MOV P2,#0FFH
CLR P0.0
LCALLDELAY1
SETB P0.0
CLR P0.1
LCALLDELAY1
SETB P0.1
CLR P0.2
LCALLDELAY1
SETB P0.2
CLR P0.3
LCALLDELAY1
SETB P0.3
CLR P0.4
LCALLDELAY1
SETB P0.4
CLR P0.5
LCALLDELAY1
SETB P0.5
CLR P0.6
LCALLDELAY1
SETB P0.6
CLR P0.7
LCALLDELAY1
SETB P0.7
CLR P2.0
LCALLDELAY1
SETB P2.0
MOV P0,#OFFH
CLR P0.0
CLR P0.3
CLR P0.6
LCALLDELAY2
SETB P0.0
SETB P0.3
SETB P0.6
CLR P0.1
CLR P0.4
CLR P0.7
LCALLDELAY2
SETB P0.1
SETB P0.4
SETB P0.7
CLR P0.2
CLR P0.5
CLR P2.0
LCALLDELAY2
SETB P0.2
SETB P0.5
SETB P2.0
AJMP MAIN
DELAY1:
time800ms: mov r5,#04h
time800ms_1 :mov r6,#0f4h
time800ms_2 :mov r7,#0ffh
djnz r7,$
djnz r6,time800ms_2
djnz r5,time800ms_1
ret
DELAY2:
time1.6s : mov r5,#04h
time1 .6s_1 :mov r6,#0f4h
time1 .6s_2 :mov r7,#0ffh
djnz r7,$
djnz r6,time1.6s_2
djnz r5,time1.6s_1
ret
END

你装的是试用版,只能编译出不超过2K的代码,去装个正版,或去网上找个算号器破解就可以了

这个是因为你的单词unsigned写错了。unsigned int就是定义无符号整型数,它不会对编译造成任何影响的。

你最好宏定义先,这样就省了很多语句和减少出错的机会。
譬如在头文件下方写:
#define uint unsigned int
这句话的意思是把无符号整型变量用uint符号代替,以后要定义无符号整形就直接用uint就行了

这和Keil和51都没什么关系,就是C的语法问题。
int a;或者unsigned a;
当然你也可以加上unsigned long a;或者unsigned char a;因为默认的就是int形式的,所以当你需要long型或者char的话,需要定义,若不需要,直接写就行。
不过这也不应该报错啊...

你写的unsigned int a;有错误,应该是unsigned,改了试试还有错误么

unsinged? unsigned?