資源下載收集
影視
http://vtwtv.info/forum.php
http://note.sdo.com/u/share8/n/1cj1y~jZ00FFnM1_E000eQ
2012年10月14日 星期日
2012年10月13日 星期六
Deskpins教學應用,將視窗釘在最上層
最近為了教學的需要,想將軟體教學的畫面用打字的方式錄製,也是為了不想用聲音(不會有人想聽聲音的,而且看過很多大陸駭客教學內容大都以這種方式),所以想把word使用最上層顯示,找了一個工具,Deskpins,這個工具的中文化有點問題,很多防毒軟的都的報毒,所以還是使用英文的,下載位置在這
DeskPins 1.30 setup.exe:
https://gofile.me/25iiS/mURMkYsm
DeskPins 1.30 setup.exe:
https://gofile.me/25iiS/mURMkYsm
2012年10月12日 星期五
PhoneGap安裝教學
最近看一本PhoneGap教學的書,里面寫的真是…讓人看不懂,只好自己慢慢試,這本書藏的東西真多,留很多手,有很多並沒有寫出來,所以自己把安裝過程寫一下囉!
我的環境在Mac OSX mountain lion
sh-3.2# git clone git://github.com/phonegap/phonegap.git
Cloning into 'phonegap'...
remote: Counting objects: 14017, done.
remote: Compressing objects: 100% (5051/5051), done.
remote: Total 14017 (delta 8566), reused 13077 (delta 7728)
Receiving objects: 100% (14017/14017), 256.00 MiB | 1.13 MiB/s, done.
Resolving deltas: 100% (8566/8566), done.
sh-3.2# make
Xcode.app: '/Applications/Xcode.app'
Using Developer folder: '/Applications/Xcode.app/Contents/Developer'
我的環境在Mac OSX mountain lion
- 首先當然先安裝Xcode,直接進App Store安裝就可以了,安裝過程會有點久。
- 執行Xcode,點選上方功能選單Xcode→preferences看到這個畫面,選Downloads,記得選Components,有個Command Line Tools,選取後install安裝。
- 接下來執行終端機,這時鍵入git,應該能看到以下畫面
- 進入你可以完全控制權限的目錄,執行以下指令
- 執行結果如下:
sh-3.2# git clone git://github.com/phonegap/phonegap.git
Cloning into 'phonegap'...
remote: Counting objects: 14017, done.
remote: Compressing objects: 100% (5051/5051), done.
remote: Total 14017 (delta 8566), reused 13077 (delta 7728)
Receiving objects: 100% (14017/14017), 256.00 MiB | 1.13 MiB/s, done.
Resolving deltas: 100% (8566/8566), done.
- 再來執行 cd ./phonegap/lib/ios
- 執行make,畫面如下
sh-3.2# make
Xcode.app: '/Applications/Xcode.app'
Using Developer folder: '/Applications/Xcode.app/Contents/Developer'
- 這時執行xcode後,執行file→new→project,會有下面畫面,多了一個Cordova-base Application的icon,這時就代表已經安裝完了
- 想試試看是否成功,可以選下一步建立一個專案,記得不要勾選Use Automatic Reference Counting
- 執行Product→Build,這時xcode左邊會顯示一個三角形的警告,顯示www目錄找不到,依照它說的解決方式,先點左邊顯示專案資料夾(左邊像資料夾的圖案show the project navigator),將所建立的專案目錄下的www目錄自finder拉過來到專案名稱放開即可
- 執行左上角的run(像play的東西)就會看到模擬器執行的結果了
其他的平台安裝方式可參考以下網站
http://www.netmagazine.com/tutorials/getting-started-phonegap
http://www.netmagazine.com/tutorials/getting-started-phonegap
2012年9月25日 星期二
如何更改Synology Station php 上傳檔案大小
先以root登入synology,不然無法修改
vi修改 usr/syno/etc/php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 210M
upload_max_filesize = 200M
伺服器重開機
已可以上傳大檔
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 210M
upload_max_filesize = 200M
伺服器重開機
已可以上傳大檔
2012年9月24日 星期一
在synology nas中定期執行moodle crontab
1. Edit /etc/crontab (nano /etc/crontab)
2. 10 * * * * root wget -q -O /dev/null http://moodleIP address/moodle/admin/cron.php //含義是每10分鐘執行一次cron
3. Restart crond service (synoservice --restart crond)
4. DONE!
2. 10 * * * * root wget -q -O /dev/null http://moodleIP address/moodle/admin/cron.php //含義是每10分鐘執行一次cron
3. Restart crond service (synoservice --restart crond)
4. DONE!
2012年8月19日 星期日
OpenCV設定及測試
#include <stdio.h>
#include <cv.h>
#include <highgui.h>
int main()
{
char filename[]="0.jpg"; // 想要取得的圖檔名稱,將其放在和專案同一資料夾中
IplImage *image; // IplImage利用 cvLoadImage()圖檔中的資料結構
image = cvLoadImage(filename,CV_LOAD_IMAGE_UNCHANGED); // 讀取影像的資料結構
if(!image){
printf("Error: Couldn't open the image file.\n");
}
cvShowImage("HelloWorld",image); // 函式使影像在視窗中顯示
cvWaitKey(0); // 函式使影像視窗停留
cvDestroyWindow("HelloWorld"); // 函式用來銷毀一個視窗
cvReleaseImage(&image); // 釋放IplImage資料結構
return EXIT_SUCCESS;
}
使用OpenCV, C語言存取檔案的格式範例,在安裝OpenCV時要注意的是devc++要設定編譯器環境:(1)下載 OpenCV-2.0.0a-win32.exe
(2)安裝OpenCV2.0在C:\OpenCV2.0
(3)在DEV 工具/編譯器選項/編譯器/編譯器設定組態
新增編譯器設定(綠色加號按鈕)並命名為"OpenCV2.0″
(4)在連結器命令列中加入以下命令(前面框號記得打勾)
-llibcxcore200 -llibcv200 -llibcvaux200 -llibhighgui200 -llibml200
(5)在DEV 工具/編譯器選項/目錄/二進位檔 加入:
C:\OpenCV2.0\bin
C:\Dev-Cpp\Bin
C:\Dev-Cpp\libexec\gcc\mingw32\3.4.2
(6)在DEV 工具/編譯器選項/目錄/函式庫 加入:
C:\OpenCV2.0\lib
C:\Dev-Cpp\lib
(7)在DEV 工具/編譯器選項/目錄/C引入檔 加入:
C:\OpenCV2.0\include\opencv
C:\Dev-Cpp\include
(8)在DEV 工具/編譯器選項/目錄/C++引入檔 加入:
C:\OpenCV2.0\include\opencv
C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include
C:\Dev-Cpp\include\c++\3.4.2\backward
C:\Dev-Cpp\include\c++\3.4.2\mingw32
C:\Dev-Cpp\include\c++\3.4.2
C:\Dev-Cpp\include
(9)在C:\OpenCV2.0\include\opencv中找到cxoperations.h檔
(10)找到檔中第66行部分程式碼如下
#else
#include
#if __GNUC__ >= 4
(11)將它改成如下程式碼並儲存
#else
#include
#if __GNUC__ >= 4 || __MINGW32__
2012年8月18日 星期六
linux embedded嵌入式系統初學
不是電子相關科系的,突然就鑽進了單晶片的世界,第一堂課老師就叫大家畫一個USB電子電路圖,要學的可多了,找到了一個講PIC單晶片的初學資料,怕忘了在那找的,就放這了。
剛才看到一個PIC的板子 不知道它跟51的區別 特此 去相關論壇上找到這篇文章,以求給跟我類似的人掃掃盲 高球可以飄過 (*^__^*) 嘻嘻……
這個8條腿的小螃蟹就是我們的第一頓飯,只要把它吃下去,以後的大餐就好辦了。
第1、8條腿接電源 +5V 和 地線。頭兩條腿是螃蟹鉗子,好吃的很。 現在剩下了 6 條腿
第2、3條腿 使用時外接一個晶振的東西 我們接一個 4 MHz的。
第4條腿是復位腳,是一個信號輸入腳。單片機正常運行時接高電平。當有一個低電平脈衝輸入到這個腳時單片機就復位。所謂復位就是單片機內部所有的工作部件統統回到規定的狀態,程序也復位到頭一句上開始逐條運行。例如,你設計的一個報警鎖定的 LED紅燈亮後,當需要解除報警時,用一個按鈕給這個腳瞬時接地一下,相當於給它一個夫脈衝,系統就復位了,led燈就熄滅了,程序從頭開始。
以上5個腳,幾乎所有單片機都有,包括世界上最複雜的,和世界比較簡單的單片機-----PIC12CE519
輪到底幾條腿啦?奧是第5條腿,這條叫單片機的 I/O 腳。就是輸入輸出腳。你可通過程序動態地控制它作為輸入或輸出,作為輸出時可以程序控制它的輸出電平為高1或低0。所以,他的工作狀態有四種:輸入0,輸入1,輸出0,輸出1
剩下的兩條腿和第5腳功能一個樣。
剛才看到一個PIC的板子 不知道它跟51的區別 特此 去相關論壇上找到這篇文章,以求給跟我類似的人掃掃盲 高球可以飄過 (*^__^*) 嘻嘻……
前段時間,小弟閒逛,偶發現一論壇,一前輩講pic系列,講得那個通俗啊!估計識字的都能看的懂,好東西不敢獨享,拿出來與大家分享,未經作者同意擅自轉載,請作者諒解,不過既然前輩那能這麼無私,我這樣也不為過吧,呵呵!
閒話少說,上菜了!
單片機入門不難------談PIC系列(轉自礦石收音機論壇---嶗山)
罈子裡的老兄小弟,如果你已經多次想進單片機之門而未入,如果你有很多空閒時間想打發,如果你玩收音機感到疲勞想換個口味,如果。。。
那就聽小弟我白話白話,反正我們這些老大難也沒有什麼重要的事情做。。。。
閒言少許,話說人間事物的學習,不外兩類:一類入門易,精通難比如礦石機,再比如練書法誰都會寫兩下,可寫好卻不是一朝一夕的事兒。另一類則入門難精通易,比如超外差收音機,學會需要各種放大、振蕩、反饋、混頻、中頻、統調等等,但是一旦你學會,做出一個高質量的收音機,確也不是難事。單片機屬於後者,所以無論如何,你得用些時間,學習一些新名詞並理解,甚至還得花一些小錢。但是,一旦你掌握,其樂趣也像收音機一樣,很有吸引力的。本故事說給一點也不懂計算機,甚至數字電路的引引道。一般入門應該有保障。
改為: 本故事說給懂電工、電子、邏輯電路的老傢伙和半老傢伙,如果對電子一竅不通人講那我勸你也別瞎子點燈了,要是邊講基礎邊講pic這書就不知唱到何年何月啦。
單片機不同於收音機,收音機的任務最終就是聽好聲音一個,單片機可以做很多事情,要你來安排它的工作。安排它就先的認識它,熟悉它
請看圖1
閒話少說,上菜了!
單片機入門不難------談PIC系列(轉自礦石收音機論壇---嶗山)
罈子裡的老兄小弟,如果你已經多次想進單片機之門而未入,如果你有很多空閒時間想打發,如果你玩收音機感到疲勞想換個口味,如果。。。
那就聽小弟我白話白話,反正我們這些老大難也沒有什麼重要的事情做。。。。
閒言少許,話說人間事物的學習,不外兩類:一類入門易,精通難比如礦石機,再比如練書法誰都會寫兩下,可寫好卻不是一朝一夕的事兒。另一類則入門難精通易,比如超外差收音機,學會需要各種放大、振蕩、反饋、混頻、中頻、統調等等,但是一旦你學會,做出一個高質量的收音機,確也不是難事。單片機屬於後者,所以無論如何,你得用些時間,學習一些新名詞並理解,甚至還得花一些小錢。但是,一旦你掌握,其樂趣也像收音機一樣,很有吸引力的。本故事說給一點也不懂計算機,甚至數字電路的引引道。一般入門應該有保障。
改為: 本故事說給懂電工、電子、邏輯電路的老傢伙和半老傢伙,如果對電子一竅不通人講那我勸你也別瞎子點燈了,要是邊講基礎邊講pic這書就不知唱到何年何月啦。
單片機不同於收音機,收音機的任務最終就是聽好聲音一個,單片機可以做很多事情,要你來安排它的工作。安排它就先的認識它,熟悉它
請看圖1
這個8條腿的小螃蟹就是我們的第一頓飯,只要把它吃下去,以後的大餐就好辦了。
第1、8條腿接電源 +5V 和 地線。頭兩條腿是螃蟹鉗子,好吃的很。 現在剩下了 6 條腿
第2、3條腿 使用時外接一個晶振的東西 我們接一個 4 MHz的。
第4條腿是復位腳,是一個信號輸入腳。單片機正常運行時接高電平。當有一個低電平脈衝輸入到這個腳時單片機就復位。所謂復位就是單片機內部所有的工作部件統統回到規定的狀態,程序也復位到頭一句上開始逐條運行。例如,你設計的一個報警鎖定的 LED紅燈亮後,當需要解除報警時,用一個按鈕給這個腳瞬時接地一下,相當於給它一個夫脈衝,系統就復位了,led燈就熄滅了,程序從頭開始。
以上5個腳,幾乎所有單片機都有,包括世界上最複雜的,和世界比較簡單的單片機-----PIC12CE519
輪到底幾條腿啦?奧是第5條腿,這條叫單片機的 I/O 腳。就是輸入輸出腳。你可通過程序動態地控制它作為輸入或輸出,作為輸出時可以程序控制它的輸出電平為高1或低0。所以,他的工作狀態有四種:輸入0,輸入1,輸出0,輸出1
剩下的兩條腿和第5腳功能一個樣。
原來編輯帖子是有時間限制的阿。也好,俺學乖了,先在記事本上編輯,在複製粘帖。
歡迎各位捧場,在此不敢以講課回答問題的姿態出現,不過各位的問題我盡力而為。
上邊我們已經把8條腿消化掉了,其實我們要弄明白的也就3只腿,我們再簡單一些,先整明白兩條腿,即GP0,GP1.這兩條腿低級一點的用法,可以控制繼電器,LED燈,高級一些的用法可以進行I2C總線,RS232總線的通信,作為擴展輸入可以模擬出來A/D轉換器(6--7bit),可以測量一個電阻的粗略值。作為輸出也可以直接推動揚聲器奏出音樂。這是後話暫且不提。
現在要控制使用這兩隻腿,我這個三腳貓功夫的說書的不得不講一下軟件了,要想講明白軟件又不得不涉及到單片機的內部結構。那位說啦,你可別提這軟件和結構了,以前俺就是讓它們打敗的,現在聽到這個心裡就打鼓。嘿嘿,不要緊,果真如你所說,那你就不妨跟著我再失敗一次, 反正嗎多一次失敗又不納稅,嘿嘿。不過你也要有思想準備,徹底弄明白是個漸進的過程。
要說這程序和單片機內部結構,還真是老大難,不過蟹黃蟹肉都可都在裡面。我現在要是給你說PIC單片機是哈佛結構的,51系列是馮-諾伊曼結構的,恐怕你要立馬扎走人了。所以我得用點心思不讓你溜號。
好在PIC系列的製造商(microchip 微芯公司 美國)理解我等苦衷,全部只有35條指令,而且有一些指令我們一般很少使用,常用的也就十幾句,用的時候查手冊,無需記憶。就算我們兩天學習一句,也就兩三個月時間,總比到老了還怕它們強啊。廢話少說先看下面的兩個例語:
my_name006: movlw 02h '常數2進入w
movwf GPIO 'W 的數進入 寄存器GPIO
這就是我們編的程序裡的兩個句子,也叫源程序。有以下特點
每行只能寫一句話
每句話由四部分組成:
標號: 操作指令 操作數 '程序註釋
下面我結合例子把這四部分解釋一下。
第一部分 my_name006: 叫做標號,它是由字母或數字組成,由冒號結束。標號可有可無,比如第二句就沒有標號。
第二部分movlw 叫做操作指令。它是必須有的,不能省略。PIC 系列的單片機共有 35 條指令。
第三部分02h 叫做操作數。有的指令沒有操作數或者操作數是默認的,也不用寫。
第四部分是程序註釋,必須以單引號開頭,主要作用是提醒和備忘。註釋也是可有可無。
第二個例句中,省略了標號,當然註釋也可以省略。他的指令是movwf, 操作數是GPIO。操作數不一定是數字,也可能是一個由字母組成的字符串。
知道了語句格式以後,我們下面就學習一些常用語句。我們先把這兩個例句弄清楚。
這兩句話的作用是把 2 這個常數寫入到 GPIO 這個寄存器裡。
單片機裡有一些部件需要我們使用和操作,都是通過讀寫寄存器來實現的。每個部件都對應有操控它的寄存器,例如我們要控制使用的管腳GP0,GP1 這兩個管腳對應的寄存器就叫做GPIO。對GPIO寄存器讀操作,實際等效察看管腳電平的高低;對GPIO寄存器相應的位寫1操作,實際等校讓管腳輸出高電平。寫0,輸出低電平。
每個寄存器可以儲存一個八位的二進制數。這八個位的每個位都有名稱,從左向右的名稱是:
左端第首位名稱叫D7,
左端第二位名稱叫D6,
左端第三位名稱叫D5,
左端第四位名稱叫D4,
左端第五位名稱叫D3,
左端第六位名稱叫D2,
左端第七位名稱叫D1,
最後一位叫D0,
而每一個位對應一個管腳的電平,例如當GPIO寄存器的D0位等於1時表示管腳GP0 的電平是高電平。D0位等於0時表示管腳GP0 的電平是低電平。常數2的八位二進製表示是「00000010」 所以,GPIO寄存器存放的8位2進制數的每個位的值以及管腳電平是:
D7對 應於內部總線管腳的電平 D7=0 內部總線管腳輸出低電平
D6對應於內部總線管腳的電平 D6=0 內部總線管腳輸出低電平
D5對應於GP5 管腳的電平 D5=0 GP5 管腳輸出低電平
D4對應於GP4 管腳的電平 D4=0 GP4 管腳輸出低電平
D3對應於GP3 管腳的電平 D3=0 GP3 管腳輸出低電平
D2對應於GP2 管腳的電平 D2=0 GP2 管腳輸出低電平
D1對應於GP1 管腳的電平 D1=1 GP1 管腳輸出低電平
D0對應於GP0 管腳的電平 D0=0 GP0 管腳輸出低電平
GP0---GP5管腳我們可以從上一講的圖1硬件中查出所對應的管腳。d7 d6 對應的內部時鐘和數據總線我們現在暫且不要管它。以後本事大了在調_教它們。在我們的例句中,向GPIO寄存器寫入了2,常數2的八位二進製表示是「00000010」 因此如果此時GP0, Gp1等都已經被定義成輸出的話,那麼GP1輸出高電平(接LED燈亮),GP0 輸出低電平(所接led燈熄) 。
截止到現在,你已經學會如何控制管腳的電平高低了。儘管還有一些疑問,比如怎樣定義管腳為輸出腳(以後會說),我得說如果事先gp1,gp0這兩個管腳處於輸入狀態,這兩個例句無效,是控制不了電平的。
無論如何,這一會兒,你就學會了兩個指令,35條我看也沒啥難的。
'------------------------------------------------------------------------------
再加深一下對寄存器的認識:
要把一個常數存儲到,或者說寫到一個寄存器中,僅用一條指令是辦不到的,必須通過一個特殊的寄存器W,把數據倒過去. 這就應該使用到兩個語句。
movlw 02H 指令的意思是把一個常數存入特殊寄存器W, 這個常數是3,後面的H是表示十六進制
movwf GPIO 指令的意思是把特殊寄存器W的數值存入寄存器. 這個寄存器的名稱是 GPIO
這裡涉及到兩個概念,常數和寄存器.
常數好說,比如說十進制數 35, 26 但要注意,在單片機系統裡我們一般不用十進制,而使用十六進制. 有關數制轉換方面的知識,是計算機的基礎,必須會熟練地在二進制、十六進制、十進制之間轉換,我就不羅索了.
寄存器也叫單片機的內存。
一個寄存器可以存儲的數值範圍是0--255,用十六進製表示就是 0---FFH.用二進製表示就是00000000----11111111.
以後要養成習慣用十六進製表示數.
那麼,一個單片機裡有多少個這樣的寄存器哩,pic12ce512里面有1024個這樣的寄存器可以供你使用,為了使用方便生產商已經給它們編上了號碼,第一號碼是000H,往下依照次序為 001H,002H........3FFH.(怎麼樣,開始用十六進制說事了吧,如果你不熟悉熟制轉換趕緊補課來得及)
有了編號就像我們居住的房間有了房間號碼,使用就方便的多了.房間號碼在郵政行業叫地址,因此我們稱這些號碼叫做寄存器地址,或稱地址數 例如 名稱為 GPIO 的寄存器,他的地址,或地址數是 06H 。所以我們的兩個例句完全等同於:
my_name006: movlw 02h '常數2進入w
movwf 06H 'W 的數進入 寄存器GPIO
'-----------------------------------------
有兩個寄存器比較特殊,它們沒有地址,一個名字叫做 W, 另一個叫做 TRIS. 所以他們兩個在存儲數據的時候比較快,一個指令就可以解決問題,例如: movlw 03H 一條指令就把常數3寫入到W寄存器了。關於TRIS寄存器,我們以後用到它再說.
除了他們兩個以外的其他所有寄存器,在寫入數據時一般都要用兩條指令進行。
今天就扯到這裡,雖然只有兩個指令,但主要目的是要同學們接觸一下指令,建立寄存器的概念以及他們同硬件部件的聯繫。增強學習的信心。能有這些體會,這一節就算過關了。
隨著以後的深入,你會發現小小單片機裡面是一個大世界,興趣也由此而生。
歡迎各位捧場,在此不敢以講課回答問題的姿態出現,不過各位的問題我盡力而為。
上邊我們已經把8條腿消化掉了,其實我們要弄明白的也就3只腿,我們再簡單一些,先整明白兩條腿,即GP0,GP1.這兩條腿低級一點的用法,可以控制繼電器,LED燈,高級一些的用法可以進行I2C總線,RS232總線的通信,作為擴展輸入可以模擬出來A/D轉換器(6--7bit),可以測量一個電阻的粗略值。作為輸出也可以直接推動揚聲器奏出音樂。這是後話暫且不提。
現在要控制使用這兩隻腿,我這個三腳貓功夫的說書的不得不講一下軟件了,要想講明白軟件又不得不涉及到單片機的內部結構。那位說啦,你可別提這軟件和結構了,以前俺就是讓它們打敗的,現在聽到這個心裡就打鼓。嘿嘿,不要緊,果真如你所說,那你就不妨跟著我再失敗一次, 反正嗎多一次失敗又不納稅,嘿嘿。不過你也要有思想準備,徹底弄明白是個漸進的過程。
要說這程序和單片機內部結構,還真是老大難,不過蟹黃蟹肉都可都在裡面。我現在要是給你說PIC單片機是哈佛結構的,51系列是馮-諾伊曼結構的,恐怕你要立馬扎走人了。所以我得用點心思不讓你溜號。
好在PIC系列的製造商(microchip 微芯公司 美國)理解我等苦衷,全部只有35條指令,而且有一些指令我們一般很少使用,常用的也就十幾句,用的時候查手冊,無需記憶。就算我們兩天學習一句,也就兩三個月時間,總比到老了還怕它們強啊。廢話少說先看下面的兩個例語:
my_name006: movlw 02h '常數2進入w
movwf GPIO 'W 的數進入 寄存器GPIO
這就是我們編的程序裡的兩個句子,也叫源程序。有以下特點
每行只能寫一句話
每句話由四部分組成:
標號: 操作指令 操作數 '程序註釋
下面我結合例子把這四部分解釋一下。
第一部分 my_name006: 叫做標號,它是由字母或數字組成,由冒號結束。標號可有可無,比如第二句就沒有標號。
第二部分movlw 叫做操作指令。它是必須有的,不能省略。PIC 系列的單片機共有 35 條指令。
第三部分02h 叫做操作數。有的指令沒有操作數或者操作數是默認的,也不用寫。
第四部分是程序註釋,必須以單引號開頭,主要作用是提醒和備忘。註釋也是可有可無。
第二個例句中,省略了標號,當然註釋也可以省略。他的指令是movwf, 操作數是GPIO。操作數不一定是數字,也可能是一個由字母組成的字符串。
知道了語句格式以後,我們下面就學習一些常用語句。我們先把這兩個例句弄清楚。
這兩句話的作用是把 2 這個常數寫入到 GPIO 這個寄存器裡。
單片機裡有一些部件需要我們使用和操作,都是通過讀寫寄存器來實現的。每個部件都對應有操控它的寄存器,例如我們要控制使用的管腳GP0,GP1 這兩個管腳對應的寄存器就叫做GPIO。對GPIO寄存器讀操作,實際等效察看管腳電平的高低;對GPIO寄存器相應的位寫1操作,實際等校讓管腳輸出高電平。寫0,輸出低電平。
每個寄存器可以儲存一個八位的二進制數。這八個位的每個位都有名稱,從左向右的名稱是:
左端第首位名稱叫D7,
左端第二位名稱叫D6,
左端第三位名稱叫D5,
左端第四位名稱叫D4,
左端第五位名稱叫D3,
左端第六位名稱叫D2,
左端第七位名稱叫D1,
最後一位叫D0,
而每一個位對應一個管腳的電平,例如當GPIO寄存器的D0位等於1時表示管腳GP0 的電平是高電平。D0位等於0時表示管腳GP0 的電平是低電平。常數2的八位二進製表示是「00000010」 所以,GPIO寄存器存放的8位2進制數的每個位的值以及管腳電平是:
D7對 應於內部總線管腳的電平 D7=0 內部總線管腳輸出低電平
D6對應於內部總線管腳的電平 D6=0 內部總線管腳輸出低電平
D5對應於GP5 管腳的電平 D5=0 GP5 管腳輸出低電平
D4對應於GP4 管腳的電平 D4=0 GP4 管腳輸出低電平
D3對應於GP3 管腳的電平 D3=0 GP3 管腳輸出低電平
D2對應於GP2 管腳的電平 D2=0 GP2 管腳輸出低電平
D1對應於GP1 管腳的電平 D1=1 GP1 管腳輸出低電平
D0對應於GP0 管腳的電平 D0=0 GP0 管腳輸出低電平
GP0---GP5管腳我們可以從上一講的圖1硬件中查出所對應的管腳。d7 d6 對應的內部時鐘和數據總線我們現在暫且不要管它。以後本事大了在調_教它們。在我們的例句中,向GPIO寄存器寫入了2,常數2的八位二進製表示是「00000010」 因此如果此時GP0, Gp1等都已經被定義成輸出的話,那麼GP1輸出高電平(接LED燈亮),GP0 輸出低電平(所接led燈熄) 。
截止到現在,你已經學會如何控制管腳的電平高低了。儘管還有一些疑問,比如怎樣定義管腳為輸出腳(以後會說),我得說如果事先gp1,gp0這兩個管腳處於輸入狀態,這兩個例句無效,是控制不了電平的。
無論如何,這一會兒,你就學會了兩個指令,35條我看也沒啥難的。
'------------------------------------------------------------------------------
再加深一下對寄存器的認識:
要把一個常數存儲到,或者說寫到一個寄存器中,僅用一條指令是辦不到的,必須通過一個特殊的寄存器W,把數據倒過去. 這就應該使用到兩個語句。
movlw 02H 指令的意思是把一個常數存入特殊寄存器W, 這個常數是3,後面的H是表示十六進制
movwf GPIO 指令的意思是把特殊寄存器W的數值存入寄存器. 這個寄存器的名稱是 GPIO
這裡涉及到兩個概念,常數和寄存器.
常數好說,比如說十進制數 35, 26 但要注意,在單片機系統裡我們一般不用十進制,而使用十六進制. 有關數制轉換方面的知識,是計算機的基礎,必須會熟練地在二進制、十六進制、十進制之間轉換,我就不羅索了.
寄存器也叫單片機的內存。
一個寄存器可以存儲的數值範圍是0--255,用十六進製表示就是 0---FFH.用二進製表示就是00000000----11111111.
以後要養成習慣用十六進製表示數.
那麼,一個單片機裡有多少個這樣的寄存器哩,pic12ce512里面有1024個這樣的寄存器可以供你使用,為了使用方便生產商已經給它們編上了號碼,第一號碼是000H,往下依照次序為 001H,002H........3FFH.(怎麼樣,開始用十六進制說事了吧,如果你不熟悉熟制轉換趕緊補課來得及)
有了編號就像我們居住的房間有了房間號碼,使用就方便的多了.房間號碼在郵政行業叫地址,因此我們稱這些號碼叫做寄存器地址,或稱地址數 例如 名稱為 GPIO 的寄存器,他的地址,或地址數是 06H 。所以我們的兩個例句完全等同於:
my_name006: movlw 02h '常數2進入w
movwf 06H 'W 的數進入 寄存器GPIO
'-----------------------------------------
有兩個寄存器比較特殊,它們沒有地址,一個名字叫做 W, 另一個叫做 TRIS. 所以他們兩個在存儲數據的時候比較快,一個指令就可以解決問題,例如: movlw 03H 一條指令就把常數3寫入到W寄存器了。關於TRIS寄存器,我們以後用到它再說.
除了他們兩個以外的其他所有寄存器,在寫入數據時一般都要用兩條指令進行。
今天就扯到這裡,雖然只有兩個指令,但主要目的是要同學們接觸一下指令,建立寄存器的概念以及他們同硬件部件的聯繫。增強學習的信心。能有這些體會,這一節就算過關了。
隨著以後的深入,你會發現小小單片機裡面是一個大世界,興趣也由此而生。
2012年1月23日 星期一
B-mobile日本北海道使用經驗
2012.1.20-14使用b-mobile的SIM卡在北海道上網,速度實在慢到不行,連在市區也是一樣,最多只能用來在FB打卡,實測速度在0.6K~3K/秒,那來的300K限制,同團的今天訂了一天吃到飽的,也是一樣,慢慢慢,日本不是很進步嗎?誰說日本網路便宜又快了?
訂閱:
文章 (Atom)