关于数据类型的问题 单片机

请问各位:int是一个数据类型,sbit也是一个数据类型但是我放进结构体的时候如:structa{intc;};这句话能编译过但是structa{sbitc;};这句话就... 请问各位:
int 是一个数据类型,sbit也是一个数据类型 但是我放进结构体的时候如:
struct a {
int c;
};这句话能编译过
但是 struct a {
sbit c ;
};这句话就出现语法错误
问题2:比如51单片机#include<reg51.h>里面没有定义P0^0,P0^1.....这些io口,那么这些io口的物理地址又在哪定义的呢?谢谢您的回答
展开
 我来答
涩侔度9
2014-07-10 · TA获得超过188个赞
知道答主
回答量:119
采纳率:0%
帮助的人:52万
展开全部
production[0]=production_time%10000/10000;
改为
production[0]=production_time/10000;
这应该是有问题 的。

如果这样还不行,那么你就直接对production_time赋值为30001,看看能不能显示,从而判断是不是显示程序段有问题。
unsigned long int production_time=12345;

改为
//unsigned long int production_time=12345;
unsigned long int production_time=30001;
进行进一步的调试。
程序都是一点点调的,莫要着急。
追问
要是不想回答你可以选择不用回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyh001123
2014-07-10 · TA获得超过1.4万个赞
知道大有可为答主
回答量:8341
采纳率:66%
帮助的人:6243万
展开全部
1、sbit是用来定义端口位的。
和bit是不一样的。
和sfr相类似,比如。
sfr P0 = 0x80; //1111,1111 ¶Ë¿Ú0
sbit P00 = P0^0;
2、在选择单片机类型中,会提示添加对应的单片机头文件的,也可以自己手动修改,里面有对IO口的定义的。
比如Keil 中的DEVICE设置。
更多追问追答
追问
是的在头文件 *.h文件里是有对IO口的定义 但是只定义了P0 P1 口的定义没有对每一位地址的定义 所以我的意思是像 P0^0位的操作这种定义在什么地址 如果没定义的话 后面C文件里又是怎么调用的
追答

有啊。

所有用到的都会有定义,只是定义的位置可能不同。仔细找找看。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang12zhe
2014-07-10 · TA获得超过1636个赞
知道小有建树答主
回答量:676
采纳率:100%
帮助的人:286万
展开全部
第一个问题:
sbit是51单片机对C语言的扩展,只能在51上使用sbit,而标准的C语言是不支持sbit的所以C语言的结构体也不支持。
第二个问题,我还真没注意过,你很细心,我认为是KEIL软件内部的支持吧,下班后查一下
追问
谢谢您的回答 其实第二个问题 我以前用51时一直也没注意 前段时间在移植uboot的时候突然想到了 回过来查没查到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卢卿接飞扬
2019-08-23 · TA获得超过3632个赞
知道大有可为答主
回答量:3221
采纳率:34%
帮助的人:186万
展开全部
寄存器中的数值并非模拟电压的真实值,需要再乘以分辨率。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式