找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10186|回复: 13
收起左侧

单片机C语言编程的几个小问题

[复制链接]
ID:3751 发表于 2008-9-3 10:19 | 显示全部楼层 |阅读模式
本人有过C基础,想学习单片机C编程,有几个问题

1.定义寄存器R0,R1时候如何定义?
2.psw  tmod   sp堆栈设置等如何定义?
3.I/O口赋值定义是否只能用sbit ,直接在主程序中用P3^0=0这样可不可以?

请高手指点.谢谢
[此贴子已经被admin于2008-9-3 16:33:24编辑过]
回复

使用道具 举报

ID:4893 发表于 2008-9-3 23:25 | 显示全部楼层
单片机刚学时有点高深,我也正在摸索中希望能和你分享下
回复

使用道具 举报

ID:3751 发表于 2008-9-4 09:01 | 显示全部楼层
我想找点教程,没找到,大多是分析数组指针的
回复

使用道具 举报

ID:3050 发表于 2008-9-4 17:22 | 显示全部楼层
3.I/O口赋值定义是否只能用sbit ,直接在主程序中用P3^0=0这样可不可以?
--------
对于第三个问题,我是这样理解的:在C语言里,也没有P3^0=0这种写法啊!顶多是a+=1;或a-=1;对于变量,在C中是先定义后使用的,所以我们要先定义一下:sbit p30=P3^0;然后再使用: p30=0;
不知道我这种理解有没有错误,请各位指教.
回复

使用道具 举报

ID:3751 发表于 2008-9-5 09:47 | 显示全部楼层
那我在程序里写P3_3=0;这样可以了吧
回复

使用道具 举报

ID:3586 发表于 2008-9-5 19:27 | 显示全部楼层
我是做硬件的,正在学习c语言,希望大家以后多多指点!共同学习!
回复

使用道具 举报

ID:6343 发表于 2008-10-30 22:31 | 显示全部楼层

貌似不行
因为 sbit 是为操作那个特殊寄存器的特殊位的一个声明
没有声明,应该是不能直接用的
我是这么理解的
不知道对不对
还没试过
=会试下

回复

使用道具 举报

ID:6452 发表于 2008-11-2 09:30 | 显示全部楼层
我试了可不行啊
多指教
回复

使用道具 举报

ID:6477 发表于 2008-11-3 00:09 | 显示全部楼层
对于第三个问题
如果没有预先定义是不能使用的,
你可以打开头文件看一下,如果头文件里没有用SBIT定义P1^0就不能用
如果你想在主程序中直接用的话,你可以自己在头文件中定义,然后你就可以用了
其他问题不理解你的意思了
回复

使用道具 举报

ID:3348 发表于 2008-11-7 14:43 | 显示全部楼层
第三个问题同意楼上
C语言中直接定义变量标号就好了,一般不用考虑变量地址,至于Ri就更不用了
回复

使用道具 举报

ID:6343 发表于 2008-11-12 21:49 | 显示全部楼层
最近理解
sbit属于变量的类型声明
因为在单片机上P1口可以有不同的类型
就好像在C语言中   a = 1
a可以是char 也可以是int 因此用之前要定义一下
P1^1用sbit定义后,就只能输出高低电平
I/O口赋值,我知道的还有数据流
回复

使用道具 举报

ID:6975 发表于 2008-11-18 21:01 | 显示全部楼层
 呵呵~~
  应该多交流啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表