找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 4267|回復(fù): 9
收起左側(cè)

[求助] 請(qǐng)教個(gè)簡單的入門問題(看內(nèi)容吧)

[復(fù)制鏈接]
ID:35461 發(fā)表于 2012-3-8 15:35 | 顯示全部樓層 |閱讀模式
#include "reg51.h" sbit P1_0 = P1^0; void main() { P1_0 = 0; } 仿真的話上面點(diǎn)亮的是第一個(gè)燈,如果將語句“sbit P1_0 = P1^0;”改為“sbit P1_0 = P1^1;” 地址wytq偏移了1個(gè)單位,那么點(diǎn)亮的便是第二個(gè)燈吧! 在reg51.h 文件里有這么兩名:sfr P0 = 0x80;sfr P1 = 0x90; P0到P1地址相差剛好是10(個(gè)單位)。 那么如果我還是要點(diǎn)亮第 一 個(gè)燈。 可不可以用這樣:sbit P1_0 = P0^10 (用P0偏移10個(gè)單位的地址得到P1) ?????
[此貼子已經(jīng)被作者于2012-3-8 15:36:13編輯過]
回復(fù)

使用道具 舉報(bào)

ID:35461 發(fā)表于 2012-3-8 15:37 | 顯示全部樓層
無法編程換行,請(qǐng)大家耐心點(diǎn)看吧。然后幫幫解答一下!
回復(fù)

使用道具 舉報(bào)

ID:27916 發(fā)表于 2012-3-8 17:48 | 顯示全部樓層

會(huì)自己來推理,確實(shí)是好事

 

但是還是建議你多看點(diǎn)書,基礎(chǔ)很重要

回復(fù)

使用道具 舉報(bào)

ID:27916 發(fā)表于 2012-3-8 17:49 | 顯示全部樓層
P1^1的意思不是什么偏移一個(gè)地址,指的是P1.1在C語言里,^就是 .  的意思
回復(fù)

使用道具 舉報(bào)

ID:27916 發(fā)表于 2012-3-8 17:51 | 顯示全部樓層

另外0X80和0X90,他們之間不是相差10哦,而是相差16

回復(fù)

使用道具 舉報(bào)

ID:27916 發(fā)表于 2012-3-8 18:00 | 顯示全部樓層
看看書吧,磨刀不誤砍柴工呀
回復(fù)

使用道具 舉報(bào)

ID:35461 發(fā)表于 2012-3-8 18:10 | 顯示全部樓層
哦,是了。0x80 到0x90 是相差16。是16進(jìn)制的。 那我把那句改成:sbit P1_0 = P0^16,編譯不過呀。為什么? 我在書上沒有看到這方面的講解,現(xiàn)在正在看《新概念51單片機(jī)C語言教程.入門、提高、開發(fā)》好像也沒有講到。
回復(fù)

使用道具 舉報(bào)

ID:27916 發(fā)表于 2012-3-8 20:32 | 顯示全部樓層
我不是說了嘛, ^ 這個(gè)符號(hào)不是代表偏移,而是代表前面一個(gè)寄存器的第幾位,一個(gè)只有八位的數(shù),你想知道它的第九位,你覺得可行嗎?
回復(fù)

使用道具 舉報(bào)

ID:35461 發(fā)表于 2012-3-8 21:21 | 顯示全部樓層
原來如此。 還以為按C語言來,可以偏移到任何地址呢!! 學(xué)習(xí)了,謝謝大師�。�
回復(fù)

使用道具 舉報(bào)

ID:35691 發(fā)表于 2012-3-8 23:42 | 顯示全部樓層

我認(rèn)為不行,樓上那位仁兄也講了^的含義,和c語言中的不同。。

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表