代碼
在某引腳輸出方波編程方法:(比如P3.1引腳)
代碼
將某引腳的輸入電平取反后,從另一個引腳輸出:( 比如 P0.4 = NOT( P1.1) )
代碼
- #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P0.4和P1.1
- void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
- {
- P1_1 = 1; //初始化。P1.1作為輸入,必須輸出高電平
- While( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語句
- {
- if( P1_1 == 1 ) //讀取P1.1,就是認為P1.1為輸入,如果P1.1輸入高電平VCC
- { P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND
- else //否則P1.1輸入為低電平GND
- //{ P0_4 = 0; } //給P0_4賦值0,引腳P0.4就能輸出低電平GND
- { P0_4 = 1; } //給P0_4賦值1,引腳P0.4就能輸出高電平VCC
- } //由于一直為真,所以不斷根據P1.1的輸入情況,改變P0.4的輸出電平
- }
將某端口8個引腳輸入電平,低四位取反后,從另一個端口8個引腳輸出:( 比如 P2 = NOT( P3 ) )
代碼
- #include <AT89x52.h> //該頭文檔中有單片機內部資源的符號化定義,其中包含P2和P3
- void main( void ) //void 表示沒有輸入參數,也沒有函數返值,這入單片機運行的復位入口
- {
- P3 = 0xff; //初始化。P3作為輸入,必須輸出高電平,同時給P3口的8個引腳輸出高電平
- While( 1 ) //非零表示真,如果為真則執(zhí)行下面循環(huán)體的語句
- { //取反的方法是異或1,而不取反的方法則是異或0
- P2 = P3^0x0f //讀取P3,就是認為P3為輸入,低四位異或者1,即取反,然后輸出
- } //由于一直為真,所以不斷將P3取反輸出到P2
- }
注意:一個字節(jié)的8位D7、D6至D0,分別輸出到P3.7、P3.6至P3.0,比如P3=0x0f,則P3.7、P3.6、P3.5、P3.4四個引腳都輸出低電平,而P3.3、P3.2、P3.1、P3.0四個引腳都輸出高電平。同樣,輸入一個端口P2,即是將P2.7、P2.6至P2.0,讀入到一個字節(jié)的8位D7、D6至D0。





