第二課
這一節主要講通過各種函式來實現對流水燈的控制,比如延時,流水亮滅等,還有學習如何在軟體上除錯(有學c語言的話應該都已經學過了)
直接上例子,讓第乙個燈一間隔500ms閃爍
#include
#define uint unsigned int
sbit d1=p1
^0;void
delay()
;void
main()
;}void
delay()
幾點注意,define巨集定義,使**更加簡潔;自己定義的函式使用前要宣告原函式;delay中for語句的巢狀不是必要的。如果要使亮和滅持續時間不同,可以用如下帶引數的delay函式,更加靈活。
void
delay
(uint x)
例二,流水燈控制
#include
#include
unsigned int x,y;
unsigned char tempt;
void
delay
(unsigned int y)
;void
main()
}void
delay
(unsigned int y)
這個例子可以看出上乙個例子中巨集定義的方便性,因為多次使用到unsigned int,故可將它定義為更加簡單的形式。
_crol_是unsigned char型資料的迴圈左移,如一開始tempt=0xfe(即1111 1110),左移一次後為(1111 1101)即第二個燈亮,以此類推。
下面用定義位的方式來實現,要麻煩很多
#include
sbit d1=p1
^0;sbit d2=p1
^1;sbit d3=p1
^2;sbit d4=p1
^3;sbit d5=p1
^4;sbit d6=p1
^5;sbit d7=p1
^6;sbit d8=p1
^7;unsigned int x,y;
void
delay
(unsigned int)
;void
main()
}void
delay
(unsigned int y)
}
作業:
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit fm=p2
^3;void
delay
(uint)
;uchar tempt;
uint x,y,z;
void
main()
}void
delay
(uint z)
x--;}
}
提醒一下自己用到函式的時候不要老是忘了include函式庫啊
4.用減法實現加法,tempt=0xfe時第乙個燈亮代表一,tempt=tempt-1,第二個燈亮代表二,以此類推。
5.這個需要比較細心,有點麻煩,不過除錯出來成功了還是挺開心的,耶~
#include
#include
#define uint unsigned int
#define uchar unsigned char
uint x,y,z,t;
uchar tempt;
void
delay
(uint)
;void
main()
;while
(tempt<
0xfe);
while
(t<=7)
}}}void
delay
(uint z)
這裡函式宣告時原本用了delay(uint),這樣沒有確定返回型別,則使用預設定義,後面對函式進行定義時有void返回型別,編譯器會以為你對同個函式進行不同定義,會出現函式redefinition報錯;
#include
#include
#define uint unsigned int
#define uchar unsigned char
uint x,y,z,t;
uchar tempt;
void
delay
(uint)
;void
main()
; tempt=
0xfc
;while
(t<16)
; tempt=
0xf8
;while
(t<24)
; tempt=
0xf0
;while
(t<32)
; tempt=
0xe0
;while
(t<40)
; tempt=
0xc0
;while
(t<48)
; tempt=
0x80
;while
(t<56)
; tempt=
0x00;p1
=tempt;}}
void
delay
(uint z)
7,這裡只實現兩個燈從兩端往中間流動部分
#include
#include
#define uint unsigned int
sbit d1=p1
^0;sbit d2=p1
^1;sbit d3=p1
^2;sbit d4=p1
^3;sbit d5=p1
^4;sbit d6=p1
^5;sbit d7=p1
^6;sbit d8=p1
^7;uint x,y,z,t;
void
delay
(uint)
;void
main()
;}void
delay
(uint z)
okay,今天先學到這裡啦~ 郭天祥10天微控制器學習筆記(1 1)
program 1.1 commit include 包含52標頭檔案,對應的是微控制器型號,其中含各io陣腳的命名定義 sbit d2 p3 0 位定義 p3 0這個陣腳的名字叫d2 unsigned int a 無符號整型,65536到65535 2的16次方 void main 無參主函式入口...
郭天祥 10天學會51微控制器 1預備知識
一.知識點整理 計算機與微控制器之間通訊時需要加電平轉換晶元。c 51的基本資料型別 c 51的資料型別擴充定義 1 str 特殊功能暫存器宣告 2 str16 str的十六位資料宣告 3 sbit 特殊功能位宣告 4 bit 位變數宣告 eg str scon 0x98 定義了乙個暫存器,位址序號...
《十天學會微控制器和C語言程式設計》
十天學會微控制器和c語言程式設計 ed2k file 十天學會微控制器和c語言程式設計 lesson1.rar 449712628 262b8896ad6828cd33ed7189fe94cb2d h 76mxif34bfv3vupllbn3asnovcachto3 ed2k file 十天學會微控...