这个51单片机程序这样写为什么会错呢,

如题所述

sbit 定义的是硬件引脚,不是普通的变量,所以只能放在最前面,使其为全局变量,放在main里面成了局部变量,显然是不对的。追问

呃呃,谢谢,我用keil写的,之前都是89c51的STC的单片机,这个是atmel89c2051的20管脚的那中,用这个keil写他的程序应该是可以的,但是烧录到mcu里面能用原来的那个吗(软件是STC-ISP,硬件是USB转TTL,电脑上插usb的)

追答

不一定能行,关键看你用没有用到P0和P2口,2051没有这两个口

追问

是的,我用的资源很少的,就产生一列方波,但是烧录的时候,在STC-ISP里面单片机选项只能选择stc的单片机没atmel的丫

追答

atmel单片机没有ISP功能

温馨提示:内容为网友见解,仅供参考
无其他回答

这个51单片机程序这样写为什么会错呢,
sbit 定义的是硬件引脚,不是普通的变量,所以只能放在最前面,使其为全局变量,放在main里面成了局部变量,显然是不对的。

...如开头不写ORG 0000h,而写ORG 0010h,为什么会出错
你的程序本身并不一定要从0000H开始,但硬件复位后是从0000H开始的,当你下一次写入程序时,前面地址的程序不为空就会出错.

51单片机编程让新手最容易出错的几点总结
新手容易出错的地方可能有:1、数据类型,unsigned char在单片机中是最常用的数据类型,不是C语言中的自字符串或字符类型,新手很容易搞错。2、关键字的使用,单片机中有很多内部关键字,比如特殊功能寄存器、中断等等,如:P0,SBUF、interrupt、using等等,这些都不能作为用户的变量用,新手常常不太注意。...

我模仿STM32做了个STC51单片机的程序,为什么一运行就有问题?
假如你要修改1,2,3引脚,那么,除了1,2,3引脚可以得到正确的配置外,其他的引脚,本来不需要动的,也可能被你修改了,导致你的程序出错。第二,不知道你是不是用的大内存容量模式,就是默认把变量放到xdata里,如果是那样的话,你在声明IO结构体类型的变量的时候,要注明,是data类型的,51不支...

51 单片机 程序出错 不执行定时器中断1 同时delay函数也有错 求高手...
1.独立按键的判断在程序中如果没有用sbit定义过不能写为 P2^n 的形式,在程序体内这种写法表示的是异或 2.中断程序里,进入中断程序以后如果不是特殊需要,先关断自身的中断控制位,退出中断的时候再打开 3.在单片机里写程序的时候能省资源就省,52单片机是8位的,如果变量范围不超过255就不要用int...

关于51单片机实现数字秒表程序算法出错的问题
你想表达的是不是: 你的程序中每次进入for循环都有这样一条指令sec=sec\/10,而且执行了4次,所以每次for循环出来都有sec=0,因为计时开始,sec < 10,sec的前3位还总是0,进入for因为连续4次除10再重新赋值,导致每次出来sec都为0,而出来后累加得1后再进入循环,那每次进入循环都应该有sec=1,...

51单片机 电子时钟程序(共阳)。为何老是乱码,求大神指点
首先,像楼上说的,P0送显示数据前应该关一下显示。考虑到你是共阳显示,mov P1,#0才对。像这样 mov P1, #0 \/\/ 关显示。mov P0, 显示数据 mov P1, 显示哪一位。acall delay \/\/ 延时一小段时间,调试的时候可以适当延时长一点。djnz 。。。\/\/ 显示下一位。关显示的位置应该在MOV...

51单片机,p2^3=~p2^3这样写为什么错?而sbit data1=p2^3,再data1=~dar...
sbit data1=p2^3是定义了一个IO口,编译时确定。在表达式中p2^3不可用,否则^也作为异或运算符,没办法区分。

51单片机这两个代码实现功能是一样的吗?为啥我用第一种就错了呢?求告 ...
就会出错,因为它们的功能实现是不一样的,所以应该使用第二种代码才能正确实现要求的功能。总之,51单片机的这两个代码的功能是不一样的,所以使用不当可能会导致错误,建议大家在使用时一定要仔细检查代码是否正确,才能够得到期望的结果。希望对您有所帮助,祝您编程顺利!

51单片机,这个程序错在哪里呢?编译器总提示C(32): error C141: syntax...
main函数的while循环里面,调用函数你还给参数加个类型,这是语法错误。

相似回答
大家正在搜