1.單片機編程的一般步驟
1.1奶陈、目標分析
我們的目標是點亮開發(fā)板上的LED燈
1.2、原理圖分析
(1)目標器件(LED)工作原理
(2)相關(guān)模塊電路連接
(3)控制線路分析:相關(guān)IO端口是哪些?
1.3纲爸、代碼編寫
1.4、下載與調(diào)試
2.原理圖與控制方法分析
2.1、原理圖概況瀏覽
(1)目的1:把原理圖相關(guān)部分摘錄出來重點看
(2)目的2:把相關(guān)部分的原理圖關(guān)鍵部分重點看
2.2状飞、74HC573芯片介紹
(1)要知道這個芯片怎么工作,就要看他的數(shù)據(jù)手冊
(2)第一步:找到它的數(shù)據(jù)手冊
(3)OE(output enable)书斜,LE(latch enable)
(4)74HC573芯片是一個鎖存器诬辈,簡單來說就是由輸入引腳Dx來控制輸出引腳Qx(x等于0-7)。OE和LE影響Dx控制Qx的結(jié)果荐吉。
(5)當OE為L焙糟,LE為L時,74HC573工作在鎖存模式样屠,此時Qx的輸出被鎖存(進入鎖存狀態(tài)之前是高就一直是高穿撮,是低就一直是低,這就叫鎖存)痪欲。這就是鎖存器的作用悦穿。
(6)當OE為L,LE為H時74HC573工作在跟隨模式勤揩,此時Qx的輸出跟隨Dx的輸入變化而變化咧党。此時邏輯上可以認為74HC573是透明的。
2.3陨亡、硬件原理圖分析結(jié)論
(1)原理圖及開發(fā)板默認跳線帽方式為:OE=L傍衡,LE=H深员,此時74HC573工作在跟隨模式下,相當于是透明的蛙埂。當我們接線(接線方式為P0端口和J12用杜邦線連接起來倦畅,當然其實也可以和P1或者其他端口連接起來)后,其實相當于P0端口和LED的正極直接相連了绣的,而LED的負極接地叠赐。
(2)結(jié)論:P0端口的8個引腳輸出高電平時,則LED亮屡江,輸出低電平時則LED滅芭概。
3.第一個實驗:點亮LED
3.1、創(chuàng)建工程與文件
(1)創(chuàng)建空工程
(2)創(chuàng)建led.c并關(guān)聯(lián)到工程
(3)模式書寫:頭文件包含和main函數(shù)外殼
3.2惩嘉、如何用C語言進行IO端口控制
(1)P0這個符號在C語言代碼中的特殊含義
(2)十六進制數(shù)
(3)位罢洲、字節(jié)、IO端口文黎、IO口(即IO端口的每一個)
(4)硬件接線方式對編程的影響
3.3惹苗、點亮LED
(1)點亮8顆LED燈
(2)點亮4顆LED燈
(3)隔一顆亮隔一顆滅
(4)全滅
#include <reg51.h>
void main(void)
{
// 點亮8顆LED燈
// p0 = 0xff; // P0端口的8個引腳都輸出高電平
// 點亮4顆LED燈
// p0 = 0xf0;
// p0 = 0x0f;
// 隔一顆亮隔一顆滅
// p0 = 0xAA;
// 全滅
p0 = 0x0;
}
4.如何讓LED閃爍
4.1、閃爍的本質(zhì)含義:亮-延時-滅-延時
(1)由于人的眼睛有視覺暫留耸峭,所以亮和滅之間的延時時間選擇非常重要桩蓉。
(2)如果延時時間太短(比如20ms),這時候上一次滅眼睛還沒反應(yīng)過來就到了下一次亮劳闹。此時你會覺得燈是一直亮著的院究。和一直亮著的區(qū)別是亮度低一點。但是是看不到閃爍的玷或。
(3)延時時間逐漸增大慢慢就能看到閃爍的儡首,大到一定程度就能看到明顯的一亮一滅了。
4.2偏友、單片機如何實現(xiàn)延時
(1)單片機執(zhí)行每一條指令需要一定的時間
(2)單片機開機后不能休息
(3)單片機可以“空轉(zhuǎn)”或“浪費時間”
4.3蔬胯、C語言實現(xiàn)延時
使用C語言循環(huán)語句實現(xiàn)延時
#include <reg51.h>
void delay(void)
{
unsigned char i = 100;
unsigned char i = 100;
while (i--)
{
while (j--);
}
}
void main(void)
{
p0 = 0xff;
delay();
p0 = 0x0;
delay();
}