自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MF干活:C#點(diǎn)燈神話

開發(fā) 后端
如同學(xué)習(xí)每一門編程語言的Hello World!一樣,點(diǎn)燈自然成了單片機(jī)入門的HelloWorld。因?yàn)閱纹瑱C(jī)上的HelloWorld實(shí)在是太難了!

如同學(xué)習(xí)每一門編程語言的Hello World!一樣,點(diǎn)燈自然成了單片機(jī)入門的HelloWorld。因?yàn)閱纹瑱C(jī)上的HelloWorld實(shí)在是太難了!

在電子上只有電壓電流之類的概念,而對(duì)于單片機(jī)來說,我們可以認(rèn)為0代表低電壓(低電平、接地),1代表高電壓(高電平)。在我們學(xué)習(xí)的STM32單片機(jī)上,高電平其實(shí)就是3.3伏!今天我們要點(diǎn)亮的小燈,就是發(fā)光二極管,讓3.3V和0V分別接在發(fā)光二極管的正負(fù)(長(zhǎng)短)兩端,就可以讓其發(fā)光!

我們采用的單片機(jī)有很多針腳(ZET6是144腳,VET6是100腳),一般是PA0~PA15,PB0~PB15這樣子命名。理論上,我們可以把任何一個(gè)腳設(shè)為高電平或者低電平,通過單片機(jī)程序。

那么,接線上就有兩種了:一是二極管一頭接一個(gè)針腳Pin,另一頭接地GND腳,然后控制Pin高電平,就可以點(diǎn)亮;而是接兩個(gè)針腳,控制讓正腳(長(zhǎng))輸出高電平,負(fù)腳(短)輸出低電平,也可以點(diǎn)亮。

如果用C寫這個(gè)控制程序,會(huì)有點(diǎn)小復(fù)雜,因?yàn)槟阈枰仍O(shè)置針腳的工作模式,上拉下拉什么的,然后才可以通過01控制高低電平。我們做C#開發(fā)的同學(xué),絕大多數(shù)不懂這些。MF在這方面封裝得很好,針對(duì)指定針腳實(shí)例化一個(gè)輸出端口OutputPort,并指定初始狀態(tài)true/false,然后就可以讀寫布爾值了。當(dāng)然,這個(gè)輸出端口也可以指定上拉下拉那種模式,但是如果我們不懂,就不用那個(gè)構(gòu)造函數(shù)啦。

一般的開發(fā)板上都配有LED,就不需要我們自己去接LED啦!如果想做跑馬燈什么的,可以自己去淘寶上買,一毛錢一個(gè),10塊錢可以買一百個(gè)了,不過記得買杜邦線,哈哈!

我們來看代碼:

  1. // 紅牛二  
  2. //var pins = new Cpu.Pin[] { Pins.PF6, Pins.PF7, Pins.PF8, Pins.PF9, Pins.PF10 };  
  3. // 阿波羅一號(hào)  
  4. //var pins = new Cpu.Pin[] { Pins.PE11, Pins.PE12, Pins.PE13, Pins.PE14, Pins.PE15 };  
  5. // 探索者一號(hào)  
  6. //var pins = new Cpu.Pin[] { Pins.PB11 };  
  7. // 探索者二號(hào)  
  8. //var pins = new Cpu.Pin[] { Pins.PC6, Pins.PC7 };  
  9. // 雅典娜二號(hào)  
  10. var pins = new Cpu.Pin[] { Pins.PF8, Pins.PF9 };  
  11. // 雅典娜三號(hào)  
  12. //var pins = new Cpu.Pin[] { Pins.PF8, Pins.PF9 };  
  13. var leds = new OutputPort[pins.Length];  
  14. for (int i = 0; i < pins.Length; i++)  
  15. {  
  16.     leds[i] = new OutputPort(pins[i], i % 2 == 0);  
  17. }  
  18. //var led4 = new Led4();  
  19. for (int i = 0; i < 20000; i++)  
  20. {  
  21.     for (int j = 0; j < leds.Length; j++)  
  22.     {  
  23.         leds[j].Write(!leds[j].Read());  
  24.     }  
  25.     //led4.Display(i);  
  26.     //led4.Value = i;  
  27.  
  28.     Thread.Sleep(50);  

這個(gè)程序很簡(jiǎn)單,首先是實(shí)例化一個(gè)小燈所在的針腳數(shù)組,然后再創(chuàng)建輸出端口數(shù)組,創(chuàng)建的時(shí)候,隔個(gè)的設(shè)置不同的初始化狀態(tài),造成小燈分開來亮的效果。

每一次大循環(huán),都包含一次小循環(huán),而小循環(huán)所做的,就是讀出來針腳現(xiàn)在的值,取反后寫入。大循環(huán)需要暫停一會(huì),要不太快了也看不清楚呀,呵呵!

然后,小燈就閃動(dòng)起來了!

到這里,也許很多人會(huì)問,點(diǎn)亮小燈,頂多只能做跑馬燈之類的玩具而已。其實(shí)這個(gè)跟用C語言電燈一樣,我們只需要稍稍改變,針腳出來接的不是小燈,而是一個(gè)繼電器,那么就可以控制220v的強(qiáng)電了啦!剩下的就看自己要做什么了!

本文可能非常簡(jiǎn)單,但作為單片機(jī)的MF入門來說,并非每個(gè)人都可以做得到!

MF是微軟的開源嵌入式系統(tǒng)框架,經(jīng)過了很多年的發(fā)現(xiàn),在國(guó)內(nèi)一直很冷淡,可能是因?yàn)殚_發(fā)板極為昂貴并且移植困難吧!我們新生命團(tuán)隊(duì)經(jīng)過不懈努力,總算找到了相對(duì)比較便宜的MF開發(fā)板(淘寶200元左右),還有可以跑MF的核心板(淘寶***售價(jià)只需要46元);并且我們掌握了一些基礎(chǔ)的移植技術(shù),可以把 MF移植到比較熱門和高性價(jià)比的多款板子上去。我們歡迎更多志趣相投的朋友一起來研究MF!

.Net Micro Framework,讓我們盡可能的在不懂單片機(jī)的情況下做一些簡(jiǎn)單的單片機(jī)控制系統(tǒng)!

End

我不相信神話,我只相信汗水!我不相信命運(yùn),我只相信雙手!

原文鏈接:http://www.cnblogs.com/nnhy/archive/2012/09/06/2673228.html

責(zé)任編輯:林師授 來源: 博客園
相關(guān)推薦

2009-08-25 17:15:50

C#隱藏C#重寫C#重載

2009-09-02 17:10:45

C#語言入門

2009-08-25 17:21:31

C#索引

2009-08-25 17:59:49

C#入門

2009-08-13 17:04:09

C#語言C#程序

2009-08-27 16:11:03

C# delegateC# event

2009-08-18 10:30:30

C#枚舉

2009-08-24 11:02:52

C#接口映射

2009-08-26 10:34:15

C#類型C#變量

2009-08-19 16:50:32

Visual C#C#語言特性

2009-08-24 09:55:26

C#接口轉(zhuǎn)換

2016-10-13 13:33:41

反射特性c#

2009-08-28 10:14:45

C#內(nèi)存泄露

2009-09-02 10:58:02

C#動(dòng)態(tài)數(shù)組

2021-03-15 08:18:23

C#反射模塊

2009-08-25 16:32:24

C#語言

2009-08-10 10:04:25

C#抽象類C#接口

2009-09-01 17:51:47

C#拆箱C#裝箱

2009-08-26 09:54:45

C#打印預(yù)覽C#打印

2009-08-24 14:20:13

C# 強(qiáng)制類型轉(zhuǎn)換
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)