性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

單片機(jī)新手入門的指路小燈

  首先呢,點(diǎn)進(jìn)來(lái)的一定有像我一樣是個(gè)單片機(jī)新手,也一定有高手們來(lái)看看這里面這有什么花樣,嘻嘻,不管怎么樣,同志們來(lái)看帖子的不會(huì)失望的,因?yàn)槲冶緛?lái)是個(gè)新手,所以寫的東西也一定是好理解的,這里呢,鄙人還有一個(gè)不情之請(qǐng),就是請(qǐng)大家?guī)兔貜?fù)幾條唄,畢竟拿獎(jiǎng)品實(shí)在誘人,而我最近有在物色開(kāi)發(fā)板,每每看到一個(gè)相中的,心里就抽搐一下,畢竟作為學(xué)生經(jīng)濟(jì)來(lái)源靠父母,所以想買開(kāi)發(fā)板,只有勒緊褲腰帶過(guò)日子了。再次謝謝各位了。

  好了言歸正傳,關(guān)于單片機(jī)大家多多少少有些理解,還有結(jié)構(gòu)什么的大家只要問(wèn)一下度娘,各種資料就都有了,而我如果只是copy一下也沒(méi)什么意思,所以我就說(shuō)點(diǎn)別的。大家都知道單片機(jī)一般來(lái)說(shuō)包括以下幾個(gè)部分,中央處理器,就是CPU,他就像人的大腦一樣控制著整個(gè)系統(tǒng)的運(yùn)行,還有存儲(chǔ)器,存儲(chǔ)器包括ROM和RAM,所謂ROM學(xué)名只讀存儲(chǔ)器,他通常用來(lái)存儲(chǔ)永久性的數(shù)據(jù),所以又被叫做,程序存儲(chǔ)器。而RAM是用來(lái)存放程序執(zhí)行時(shí)產(chǎn)生的數(shù)據(jù)的,成為數(shù)據(jù)存儲(chǔ)器。但是這兩者有什么區(qū)別呢?一般的ROM就像你電腦的硬盤一樣,用來(lái)存放文件等,存儲(chǔ)量較大,而RAM就像你電腦的內(nèi)存一樣,存儲(chǔ)量較小。CPU讀取數(shù)據(jù)并不是直接從硬盤讀取的,而是從內(nèi)存中讀取的,因?yàn)閮?nèi)存的讀寫速度比硬盤要快。這樣就可以理解為什么電腦有硬盤,單片機(jī)有ROM和RAM 了吧,另外ROM在斷電后數(shù)據(jù)并不會(huì)消失,而RAM的數(shù)據(jù)則會(huì)隨著斷電而消失。單片機(jī)還有輸入輸出單元就是高手們口中的I/O接口,可以類比的想象成你電腦的外接?xùn)|西,比如鍵盤鼠標(biāo)顯示器等等,而單片機(jī)的外接只要是,電子元器件,比如開(kāi)關(guān),LED等,數(shù)碼管等等。所以說(shuō)單片機(jī)相當(dāng)于一種小小小電腦,雖然可以處理的數(shù)據(jù)很小,但是在許多領(lǐng)域已經(jīng)夠用了。

好了,我們開(kāi)始做點(diǎn)小東西吧,流水燈,雖然簡(jiǎn)單,但是卻是許多人入門單片機(jī)行業(yè)的第一個(gè)小制作,我們的也不例外,從小的東西一點(diǎn)點(diǎn)擴(kuò)展到大的復(fù)雜的東西。

這次我們需要兩大軟件, proteus和 Keil uVision4。前者主要是做仿真用的,就是在沒(méi)向單片機(jī)燒寫程序之前,先用這個(gè)軟件進(jìn)行仿真操作,如果仿真成功那么在板子上的實(shí)驗(yàn)也多半會(huì)成功,如果在仿真上都通不過(guò)的話,那么即使把程序燒寫進(jìn)單片機(jī)也一定不會(huì)成功,這就是為什么電子開(kāi)發(fā)者都喜歡這款軟件的原因了。后者是單片機(jī)開(kāi)發(fā)的集成環(huán)境,目前用的最多性能最穩(wěn)定的是uVision2,我們學(xué)校實(shí)驗(yàn)室用的也是2,但是我的電腦里用的是4,但這不是主要問(wèn)題,因?yàn)榇篌w上他們的操作是一樣的。終于可以開(kāi)始操作了!

首先呢,我們?cè)?span> proteus中制作實(shí)驗(yàn)流水燈用的原理圖

打開(kāi)軟甲后,點(diǎn)一下我用紅圈圈住的P,這時(shí)候會(huì)彈出一個(gè)對(duì)話框,這里面可以選擇你所需要的元器件,雙擊,他就會(huì)存在于你的調(diào)用區(qū)內(nèi),把所有的原件選進(jìn)調(diào)用區(qū)內(nèi),到時(shí)候便于畫電路圖,調(diào)用區(qū),就是那個(gè)P下面的框框,你可以看到我的調(diào)用區(qū)里已經(jīng)有了幾個(gè)原件了,我們用的單片機(jī)是AT89C51,按圖選擇就行了,這些都是實(shí)驗(yàn)要用的原件,一一加載完。

AT89C51

開(kāi)始畫圖,學(xué)過(guò)Altium Designer的人對(duì)于畫電路圖應(yīng)該并不陌生,就是布原件,連線,按照合理的位置布好原件之后就是連線,看上一個(gè)圖吧,在最左邊有各種快捷工具箱,從上往下數(shù)第六個(gè)就是劃線用的,點(diǎn)一下后就可以連接各個(gè)元器件了。這里我們用到了總線,就是那根很粗的藍(lán)色線,這樣,在空白處單擊右鍵,選擇place->bus就可以了,總線的畫法,在起點(diǎn)處單擊,在終點(diǎn)處單擊,在按esc鍵退出劃線狀態(tài),連完線之后我們還需要給這塊單片機(jī)加載程序,這里我們就要用到下一個(gè)軟件了,keil。



單片機(jī)

下面就是keil的主界面,選擇project->new,新建一個(gè)工程,命好名就行了,然后,再點(diǎn)文件,也就是file,new,寫代碼,然后保存,保存時(shí)注意,要自己加上后綴名,就是(.c)


這樣系統(tǒng)會(huì)自動(dòng)保存為C程序文件,然后需要點(diǎn)擊我圈住的幾個(gè)圖標(biāo),來(lái)編譯生成可執(zhí)行的文件,這里需要注意的是,要點(diǎn)擊我圈住的想魔術(shù)棒一樣的東西,然后選擇output選項(xiàng),勾選,created?。龋牛亍。妫椋欤?,這個(gè)HEX文件就是待會(huì)能夠加載進(jìn),剛剛我們畫好的單片機(jī)里面進(jìn)行仿真。

執(zhí)行

這里點(diǎn)擊我畫的三個(gè)圖標(biāo)中間那個(gè),然后看看沒(méi)錯(cuò),說(shuō)明成功了,然后再切換至protues里,雙擊單片機(jī),看第二欄,選擇文件,把剛才生成的HEX文件加進(jìn)去,OK,可以執(zhí)行了,



編譯

在protues的左下角有控制開(kāi)關(guān),點(diǎn)擊小三角就可以看到你的燈在像流水一樣,亮起!效果就像圖一樣,但是圖不會(huì)動(dòng),大家就想像著吧!

流水燈4

如果你有單片機(jī),想在板子上看效果就要在keil中點(diǎn)一下這個(gè)圖標(biāo),把程序燒寫進(jìn)單片機(jī)里就行了,執(zhí)行起來(lái),非常有成就感,因?yàn)槲覜](méi)有板子,而我在實(shí)驗(yàn)室做的效果也忘記拍照片了,實(shí)在是不好意思了。



代碼

下面我們來(lái)分析下代碼,

#include //調(diào)用51 單片機(jī)的頭文件

//定義一個(gè)數(shù)據(jù)表格unsigned char code TAB[16]=

{ //定義表格一定要使用code,這樣會(huì)做到程序存儲(chǔ)區(qū)中

0xFE, //表格第1 步數(shù)據(jù)0b111111100

xFD,//表格第2 步數(shù)據(jù)0b11111101

0xFB, //表格第3 步數(shù)據(jù)0b11111010

0xF7, //表格第4 步數(shù)據(jù)0b11110111

0xEF, //表格第5 步數(shù)據(jù)0b11101111

0xDF, //表格第6 步數(shù)據(jù)0b11011111

0xBF, //表格第7 步數(shù)據(jù)0b10111111

0x7F, //表格第8 步數(shù)據(jù)0b01111111

0x3F, //表格第9 步數(shù)據(jù)0b00111111

0x1F, //表格第10 步數(shù)據(jù)0b00011111

0x0F, //表格第11 步數(shù)據(jù)0b00001111

0x07, //表格第12 步數(shù)據(jù)0b00000111

0x03, //表格第13 步數(shù)據(jù)0b00000011  

0x01, //表格第14 步數(shù)據(jù)0b00000001

0x00, //表格第15 步數(shù)據(jù)0b00000000

0xFF, //表格第16 步數(shù)據(jù)0b11111111};

//---------------------------------------//名稱: 主函數(shù)//---------------------------------------

void main(void) //主函數(shù),單片機(jī)開(kāi)機(jī)后就是從這個(gè)函數(shù)開(kāi)始運(yùn)行

{   unsigned int a=0; //定義一個(gè)int 型變量,做延時(shí)用   

unsigned char b=15; //定義一個(gè)char 型變量,顯示內(nèi)容用   

while(1)   //死循環(huán),單片機(jī)初始化后,將一直運(yùn)行這個(gè)死循環(huán)  

 {    for(a=0;a<20000;a++);   //延時(shí)若干時(shí)間   

 if(++b>15) b=0;   //b 做加1 操作,并限制在0-15 以內(nèi)   

 P0=TAB[b]; //將TAB[b]的值送入PO 口輸出   

}

}

稍微有點(diǎn)C語(yǔ)言基礎(chǔ)的人應(yīng)該都能看懂,如果看不懂,就應(yīng)該惡補(bǔ)一下嘍!

看剛開(kāi)始我們定義了一串?dāng)?shù)組,他們?nèi)怯茫保哆M(jìn)制表示的,這個(gè)可以表示燈的狀態(tài),看2進(jìn)制,1代表燈亮,0代表燈滅,所以我們只要改變下1和0,就可以實(shí)現(xiàn)不同的亮的狀態(tài)了,下面有幾張圖,實(shí)際上是我們的作業(yè),看黑的代表亮,白的代表滅,所以我們只要在相應(yīng)的位置上把1,0換一換就行了,然后再把它們換成十六進(jìn)制寫進(jìn)代碼里,在執(zhí)行上面的步驟,就可以實(shí)現(xiàn)不同的燈亮法了,

流水燈2

流水燈3

流水燈圖1

大概就是這樣,作為入門我們先從左東西開(kāi)始,慢慢的在把相應(yīng)的單片機(jī)的知識(shí)補(bǔ)上來(lái),要不直接 學(xué)什么引腳什么的一來(lái)枯燥,二來(lái)容易忘記,因?yàn)椴⒉皇敲總€(gè)引腳都會(huì)經(jīng)常用的,既然是做工程的,就沒(méi)必要做那么多的無(wú)用功,只學(xué)對(duì)自己有用的,慢慢的自己的知識(shí)就積累起來(lái)了。各位加油!



全部回復(fù)(17)
正序查看
倒序查看
2014-04-11 09:38

原創(chuàng) 關(guān)注!感謝sherlocked的帖子,另外標(biāo)題我給你加了【原創(chuàng)】加油!~

0
回復(fù)
2014-04-11 15:04
樓主v5~
0
回復(fù)
2014-04-11 18:40
@電源網(wǎng)-娜娜姐
原創(chuàng)關(guān)注!感謝sherlocked的帖子,另外標(biāo)題我給你加了【原創(chuàng)】加油!~
謝謝嘍,,我會(huì)把我在單片機(jī)上的進(jìn)展,心得都寫進(jìn)帖子,跟大家分享的
0
回復(fù)
2014-04-11 18:41
@電源網(wǎng)-儷儷
樓主v5~
3Q了,,我會(huì)繼續(xù)努力的
0
回復(fù)
2014-04-14 13:53
@sherlocked
[圖片]3Q了,,我會(huì)繼續(xù)努力的

樓主要更新的節(jié)奏嚒

0
回復(fù)
2014-04-15 13:46
@電源網(wǎng)-娜娜姐
樓主要更新的節(jié)奏嚒
對(duì)啊,,因?yàn)樽銎饋?lái)是一個(gè)不間斷的過(guò)程,正好把他們?nèi)加涗浵聛?lái),,共享
0
回復(fù)
2014-04-16 09:47
@sherlocked
對(duì)啊,,因?yàn)樽銎饋?lái)是一個(gè)不間斷的過(guò)程,正好把他們?nèi)加涗浵聛?lái),,共享
支持,搬板凳坐等~
0
回復(fù)
2014-04-16 12:58

今天說(shuō)點(diǎn)Keil C語(yǔ)言的特點(diǎn)吧,總的看起來(lái),和我們平常學(xué)的C語(yǔ)言是差不多的,因?yàn)榇蟾诺目蚣苁且粯拥摹?

  總的來(lái)說(shuō)C語(yǔ)言是由一堆函數(shù)所構(gòu)成的,其中主程序也是一個(gè)main 函數(shù),而每個(gè)函數(shù)可以看做獨(dú)立的個(gè)體,就像是模塊一樣。

在開(kāi)頭,大家都知道的,就是調(diào)用頭文件(*.h),這是一種事先定義好的基本數(shù)據(jù),在8051程序里,必要的頭文件是定義8051,內(nèi)部寄存器地址的數(shù)據(jù),至于寄存器的種種復(fù)雜的東西,我會(huì)在下節(jié)更新中給大家做一個(gè)詳細(xì)的解釋。

接下來(lái)就是聲明區(qū),在選擇頭文件之后,可以在這里聲明程序中所用到的各種變量,函數(shù),甚至常數(shù)等。起作用范圍將是整個(gè)程序,包括主函數(shù),和所有子函數(shù)。但是如果在某個(gè)函數(shù)內(nèi)部定義變量或者常數(shù),那么這種變量的作用范圍僅僅是這個(gè)函數(shù),一旦函數(shù)執(zhí)行到最后一個(gè)大括號(hào),那么,這個(gè)變量便失去了作用。我在此建議,最好把函數(shù)調(diào)用語(yǔ)句寫在這里,如果沒(méi)有聲明的話,在使用一個(gè)函數(shù)之前必須對(duì)他進(jìn)行定義。

主程序,就是以mian()開(kāi)頭,直到他的下大括號(hào)結(jié)束,如果能夠很好的利用函數(shù)調(diào)用,那么主函數(shù)將會(huì)非常的簡(jiǎn)單,僅僅是幾句調(diào)用函數(shù)的語(yǔ)句。

子函數(shù),就是C語(yǔ)言比較好的一方面,因?yàn)樗梢宰屇愕某绦驅(qū)崿F(xiàn)模塊化,即用每個(gè)函數(shù)來(lái)執(zhí)行每種特定的功能,然后再主函數(shù)中調(diào)用,這樣不僅便于代碼的閱讀,而且便于改錯(cuò),在程序比較大時(shí),大家應(yīng)該盡量利用函數(shù)讓自己的函數(shù)模塊化。

然后就是變量,和數(shù)據(jù)類型。在C語(yǔ)言中不管是變量還是常量,都在內(nèi)存中占一定的空間,至于占多少空間,在于你給他分配了多少,我們給變量和常量分配孔家就是通過(guò)對(duì)他進(jìn)行數(shù)據(jù)類型的限制。比如常用的 int型表示整數(shù),在內(nèi)存中占四個(gè)字節(jié),16位。float型占8個(gè)字節(jié)32位。char型,占兩個(gè)字節(jié)8位。等等可以通過(guò)網(wǎng)絡(luò)來(lái)查閱。

8051有自己特殊的數(shù)據(jù)類型:bit,1位,范圍是0~1。sbit  1位,范圍也是0~1;sfr 8位,范圍0~255;sfr16 16位,范圍,0~65535。bit會(huì)被存放在0x20~0x2f之間的存儲(chǔ)區(qū)域。其他的東西可以自己上網(wǎng)查,這種東西也沒(méi)必要記在腦子里,因?yàn)榫W(wǎng)絡(luò)的發(fā)達(dá),所以我們完全可以把對(duì)這些東西外包給網(wǎng)絡(luò)。

這里哈設(shè)計(jì)到了間接尋址之類的東西,等我下節(jié)介紹了寄存器什么的之后再聯(lián)系在一起,到時(shí)候就是一張知識(shí)網(wǎng)絡(luò)了。

0
回復(fù)
sherlocked
LV.4
10
2014-04-16 12:58
@電源網(wǎng)-娜娜姐
支持,搬板凳坐等~
0
回復(fù)
shenx123
LV.10
11
2014-04-24 14:06

要做到這樣的設(shè)計(jì),需要哪些材料呢, 給指點(diǎn)下啊

0
回復(fù)
sherlocked
LV.4
12
2014-04-24 21:15
@shenx123
要做到這樣的設(shè)計(jì),需要哪些材料呢,給指點(diǎn)下啊
首先你需要兩大軟件,protues和keil,前者是用來(lái)做仿真用的,如果你沒(méi)有一塊自己的51開(kāi)發(fā)板的話,這款軟件可謂是成本超低呀,,另外有塊板子最好,即使有板子也要這個(gè)來(lái)仿真,在把程序燒寫進(jìn)單片機(jī)里之前可以用它來(lái)找錯(cuò),如果仿真都通不過(guò),那么在板子上一定出錯(cuò),,后者呢就是專門的51c語(yǔ)言的環(huán)境,寫51程序都是用這個(gè),uvision,,有了這些,就要在來(lái)個(gè)教材了,,別人會(huì)推薦那個(gè)郭天祥的書,,我在這里給你推薦一本別的,真的很不錯(cuò)哦,,叫《例說(shuō)51單片機(jī)》,,看完前三章,就可以自己設(shè)計(jì)初步的電路,至于代碼,你可以跟著咱論壇里的  @吳堅(jiān)鴻 和@高山云兩個(gè)大神學(xué),他們的思想,尤其是鴻哥的,真心不錯(cuò),最后算是一點(diǎn)建議,工程,或者說(shuō)技術(shù)這東西,是要靠實(shí)踐來(lái)學(xué)的,不要等到理論什么的都學(xué)好了再來(lái)學(xué),那么你已經(jīng)落后很多了,,做工程時(shí)用到什么知識(shí),現(xiàn)在的網(wǎng)絡(luò)這么發(fā)達(dá),,不怕找不到想要的,,對(duì)吧,
0
回復(fù)
joyban
LV.3
13
2014-04-25 16:15
@sherlocked
首先你需要兩大軟件,protues和keil,前者是用來(lái)做仿真用的,如果你沒(méi)有一塊自己的51開(kāi)發(fā)板的話,這款軟件可謂是成本超低呀,,另外有塊板子最好,即使有板子也要這個(gè)來(lái)仿真,在把程序燒寫進(jìn)單片機(jī)里之前可以用它來(lái)找錯(cuò),如果仿真都通不過(guò),那么在板子上一定出錯(cuò),,后者呢就是專門的51c語(yǔ)言的環(huán)境,寫51程序都是用這個(gè),uvision,,有了這些,就要在來(lái)個(gè)教材了,,別人會(huì)推薦那個(gè)郭天祥的書,,我在這里給你推薦一本別的,真的很不錯(cuò)哦,,叫《例說(shuō)51單片機(jī)》,,看完前三章,就可以自己設(shè)計(jì)初步的電路,至于代碼,你可以跟著咱論壇里的 @吳堅(jiān)鴻和@高山云兩個(gè)大神學(xué),他們的思想,尤其是鴻哥的,真心不錯(cuò),最后算是一點(diǎn)建議,工程,或者說(shuō)技術(shù)這東西,是要靠實(shí)踐來(lái)學(xué)的,不要等到理論什么的都學(xué)好了再來(lái)學(xué),那么你已經(jīng)落后很多了,,做工程時(shí)用到什么知識(shí),現(xiàn)在的網(wǎng)絡(luò)這么發(fā)達(dá),,不怕找不到想要的,,對(duì)吧,
指路小燈有視頻教我們?cè)趺醋鰡?
0
回復(fù)
sherlocked
LV.4
14
2014-04-25 20:26
@joyban
指路小燈有視頻教我們?cè)趺醋鰡?
沒(méi)有哎,,因?yàn)槲业臅r(shí)間被實(shí)驗(yàn)室和課程安排的滿滿的,,錄制視頻可能有點(diǎn)困難,,所以我盡量敘述的很清楚,,你有什么不懂的可以問(wèn)哦,,先裝好軟件,操作之前總覺(jué)得難,,真正做起來(lái)會(huì)感覺(jué)很好的,,加油!
0
回復(fù)
山東大漢
LV.10
15
2014-04-27 23:57
@sherlocked
沒(méi)有哎,,因?yàn)槲业臅r(shí)間被實(shí)驗(yàn)室和課程安排的滿滿的,,錄制視頻可能有點(diǎn)困難,,所以我盡量敘述的很清楚,,你有什么不懂的可以問(wèn)哦,,先裝好軟件,操作之前總覺(jué)得難,,真正做起來(lái)會(huì)感覺(jué)很好的,,加油!
目前單片機(jī)的軟件哪個(gè)比較流行呢
0
回復(fù)
sherlocked
LV.4
16
2014-04-28 16:15
@山東大漢
目前單片機(jī)的軟件哪個(gè)比較流行呢
至于流行,,我不太清楚,,但是我學(xué)習(xí)用的是protues和keil uVison4這兩個(gè)已經(jīng)非常好用了,,要說(shuō)流行的話,,應(yīng)該就是他們的最高版本 了吧
0
回復(fù)
2014-04-28 16:34
@sherlocked
至于流行,,我不太清楚,,但是我學(xué)習(xí)用的是protues和keiluVison4這兩個(gè)已經(jīng)非常好用了,,要說(shuō)流行的話,,應(yīng)該就是他們的最高版本了吧

向樓主學(xué)習(xí),支持一個(gè)!

0
回復(fù)
sherlocked
LV.4
18
2014-04-28 16:37
@yueyunno1
向樓主學(xué)習(xí),支持一個(gè)!
是向您學(xué)習(xí)才對(duì)啊,,大師您的LED帖子幫了我個(gè)大忙啊
0
回復(fù)
發(fā)