目標:編乙個流水燈先貼上**:
這裡有乙個c語言的小技巧:程式不執行#if0至#endif之間的程式,相當於注釋掉了,執行#if1至#endif之間的。
上圖有兩種方法來弄出流水燈。
第一種是#if0裡面的:
0xfe是十六進製制數,變成二進位制是1111 1110.
~0xfe是取反的意思,二進位制是0000 0001.
~0xfe<<1 是左移一位的意思,二進位制是0000 0010
然後~0xfe再次取反 ,二進位制是1111 1101
第二種是#if1裡面的:
-crol- 是裡面包含的函式,意思是左移n位,-crol-(0xfe,n)
-cror-是裡面包含的函式,意思是右移n位,-cror-(0xfe,n)
再來看看電路原理圖:
led模組
從發光二極體就可以看出p2埠要是0才能使其發光,所以在這裡是不是豁然開朗了?這就是我們要位移的原因,
第一種就是把0不斷的往高位移使燈乙個接乙個亮。
第二種也是一樣思路.
其實我們還可以把p2的每個埠的sbit下,但太耗埠,不推薦
微控制器小白學習之路(三十五) 紅外遙控理解
目標 紅外遙控原理的理解 1.紅外遙控簡介 2.紅外遙控原理 紅外遙控通訊系統一般由紅外發射裝置和紅外置收裝置兩大部分組成。如何區分三個引腳各個作用呢?接受裝置有一條豎直的凸出槓,那條槓對應的腳是電源負 gnd 左邊是資料輸出 vout 右邊是電源正 vdd 發射端發出高電平,接受端是顯示低電平。當...
微控制器小白學習之路(四十) DAC轉換編碼
目標 da轉換編碼 狀態圖count和timer1在同乙個中斷中一起自加,數值相同。count加到100後變為0並且value自加1。timer1在自加到1000後變成0,這時候一週期已經結束了,但此時的value才10。想要value到1000,那麼timer1起碼要到1000 100才行。就是v...
暑假微控制器學習之路之一
7月20日,最後一門考試考完之後,在家休息兩天,修好電腦,就開始了計畫好的微控制器深入學習計畫。鑑於本人小白有一定的基礎,因此並沒有從入門開始,而是從這學期的微控制器課程設計入手。當時因為時間問題,計畫的功能並沒有全部實現,只是簡單的實現了課程設計的最基本的要求。因此,我打算先將已經完成的從彙編換成...