找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11804|回復: 13
打印 上一主題 下一主題
收起左側

單片機C語言編程的幾個小問題

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:3751 發(fā)表于 2008-9-3 10:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本人有過C基礎,想學習單片機C編程,有幾個問題

1.定義寄存器R0,R1時候如何定義?
2.psw  tmod   sp堆棧設置等如何定義?
3.I/O口賦值定義是否只能用sbit ,直接在主程序中用P3^0=0這樣可不可以?

請高手指點.謝謝
[此貼子已經(jīng)被admin于2008-9-3 16:33:24編輯過]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:4893 發(fā)表于 2008-9-3 23:25 | 只看該作者
單片機剛學時有點高深,我也正在摸索中希望能和你分享下
回復

使用道具 舉報

板凳
ID:3751 發(fā)表于 2008-9-4 09:01 | 只看該作者
我想找點教程,沒找到,大多是分析數(shù)組指針的
回復

使用道具 舉報

地板
ID:3050 發(fā)表于 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;
不知道我這種理解有沒有錯誤,請各位指教.
回復

使用道具 舉報

5#
ID:3751 發(fā)表于 2008-9-5 09:47 | 只看該作者
那我在程序里寫P3_3=0;這樣可以了吧
回復

使用道具 舉報

6#
ID:3586 發(fā)表于 2008-9-5 19:27 | 只看該作者
我是做硬件的,正在學習c語言,希望大家以后多多指點!共同學習!
回復

使用道具 舉報

7#
ID:6343 發(fā)表于 2008-10-30 22:31 | 只看該作者

貌似不行
因為 sbit 是為操作那個特殊寄存器的特殊位的一個聲明
沒有聲明,應該是不能直接用的
我是這么理解的
不知道對不對
還沒試過
=會試下

回復

使用道具 舉報

8#
ID:6452 發(fā)表于 2008-11-2 09:30 | 只看該作者
我試了可不行啊
多指教
回復

使用道具 舉報

9#
ID:6477 發(fā)表于 2008-11-3 00:09 | 只看該作者
對于第三個問題
如果沒有預先定義是不能使用的,
你可以打開頭文件看一下,如果頭文件里沒有用SBIT定義P1^0就不能用
如果你想在主程序中直接用的話,你可以自己在頭文件中定義,然后你就可以用了
其他問題不理解你的意思了
回復

使用道具 舉報

10#
ID:3348 發(fā)表于 2008-11-7 14:43 | 只看該作者
第三個問題同意樓上
C語言中直接定義變量標號就好了,一般不用考慮變量地址,至于Ri就更不用了
回復

使用道具 舉報

11#
ID:6343 發(fā)表于 2008-11-12 21:49 | 只看該作者
最近理解
sbit屬于變量的類型聲明
因為在單片機上P1口可以有不同的類型
就好像在C語言中   a = 1
a可以是char 也可以是int 因此用之前要定義一下
P1^1用sbit定義后,就只能輸出高低電平
I/O口賦值,我知道的還有數(shù)據(jù)流
回復

使用道具 舉報

12#
ID:6975 發(fā)表于 2008-11-18 21:01 | 只看該作者
 呵呵~~
  應該多交流啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表