久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 49617|回復: 22
打印 上一主題 下一主題
收起左側

第1章 單片機高效入門

  [復制鏈接]
跳轉到指定樓層
樓主
ID:111078 發表于 2016-3-28 00:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機輕松入門—基于STC15W4K系列(C語言版)
李友全
編著:http://www.zg4o1577.cn/bbs/dpj-37954-1.html


1章 單片機高效入門

1 認識單片機

2 制作一個最簡單的單片機實驗電路

3 使用Keil軟件編寫最簡單的程序(點亮一個發光二極管)

4 計算機程序下載到單片機

5 I/O口4種工作模式

6 流水燈實例

7 I/O口輸入測試

8 軟件仿真

9 硬件仿真

10 延時軟件使用方法

11 main()、void main()和int main()的區別

12 printf 格式化輸出函數(單片機與計算機通信)

13 學習用實驗板介紹


1 認識單片機



單片機全稱是單片微型計算機(與計算機原理相同),外 形與普通集成電路相同,但普通集成電路功能是固定死 的,使用者無法更改,單片機的功能是可以通過編寫程序 進行更改的。

51單片機主要發展歷程:

AT89C51(已停產)——AS89S51(已淘汰)—— STC89C52(2004年,已落后)——STC12系列 (2007年)——STC15F系列(2011年)—— STC15W系列(2014年,最新運用主流)。

本書主講單片機型號:STC15W系列中的典型型 號:IAP15W4K58S4 ,輔助性的介紹STC15F2K60S2與STC15W408S

編程語言與開發環境:當今最流行的具有跨平臺 優勢的C語言與keil編譯軟件

C語言跨平臺優勢

不同的CPU使用不同的匯編指令,不通用,但C語言有優越的跨平臺能力
2 制作一個最簡單的單片機實驗電路



5V供電電路

計算機串口外形

連接到計算機串口

3 使用Keil軟件編寫最簡單的程序
(點亮一個發光二極管)
1、安裝Keil軟件

2、安裝漢子補丁

3、 新建工程:工程名與C文件名可隨便輸入,但不能有漢字,更不能與C

語言的關鍵字或函數名稱相同,否則會發生沖突(編譯出現很多錯誤或警告)
Keil中輸入程序代碼

#include "STC15W4K.H"

sbit P0_0 = P0^0; // sbit是位定義

void main ()

{
P0_0=0; // 點亮LED
while(1); // 讓程序停在這里

}

4 計算機程序下載到單片機

5 I/O口4種工作模式

例1.5 最精簡的流水燈實例(A)

6 流水燈實例
#include "STC15W4K.H" // 注意宏定義語句后面無分號

void delay100ms()

{
unsigned char i,j,k; // i,j,k由由軟件計算出并驗證正確。
for(i=157;i>0;i--) // 注意后面沒分號
for(j=9;j>0;j--) // 注意后面沒分號
for(k=194;k>0;k--); // 注意后面有分號
}
void port_mode() // 端口模式(準雙向、弱上拉)
{

P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00;P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00; P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00;

}

void main()

{

unsigned char a;

port_mode(); // 將單片機所有端口配置為準雙向弱上拉方式

while(1)

{
P0 =~(1<<a++); 第一次運行時="" 0000="" 0001<<="" 0="0000" 0001[="" size][="" font][="" color][="" align][p="17," null,="" left]delay100ms();
[color=rgb(0," (a="=0x08)" 允許左移8次。[="" align]P0M1=0x00; P0M0=0x00;P1M1=0x00; P1M0=0x00; P2M1=0x00; P2M0=0x00;P3M1=0x00; P3M0=0x00;
P4M1=0x00; P4M0=0x00;P5M1=0x00; P5M0=0x00;P6M1=0x00; P6M0=0x00;P7M1=0x00; P7M0=0x00;
}
void main()
{
unsigned char a;
port_mode(); // 將單片機所有端口配置為準雙向弱上拉方式 P2 = 0xFF; // P2口置弱上拉高電平輸出
while(1)
{
P0 = P2; // 循環檢測P2口輸入電平高低。
}
}
8 軟件仿真

9 硬件仿真

n 在STC程序下載軟件中首先選擇“Keil仿真設置”頁面,點擊“添加型號和頭文件到Keil 中”,在出現的目錄選擇窗口中,定位到Keil的安裝目錄(比如“C:Keil818”),“確 定”后出現“STC MCU型號添加成功”的提示信息,點“確定”。

n 保持IAP15W4K58S4實驗電路仍然與電腦串口相連,如上圖所示,先選擇仿真芯片運 行時的R/C時鐘頻率或使用外部晶振,然后點擊“將IAP15W4K58S4設置為仿真芯片”按 鈕,給電路板上電,此時就將會有程序向芯片中下載,下載完成后仿真器便制作完成 了,IAP15W4K58S4設置成仿真芯片后,要想再變成一般的單片機無需任何操作,直接 將它當作單片機下載程序使用就可以了。

n 在Keil中新建項目,出現下圖 對話框,選擇“STC MCU Database”項,然后從列表 中選擇相應的MCU型號,在此選擇“STC15W4K32S4”,點擊“OK”完成選擇。

然后按下圖設置硬件仿真
確認前面我們所創建的項目編譯沒有錯誤后,按“Ctrl+F5”或工具欄圖標 開始調 試,若硬件連接無誤的話,將會進入到與軟件仿真類似的調試界面,只是現在可以一步一步 執行程序并控制硬件動作了)。
有時進入調試環境可能會失敗,首先檢查仿真串口號選擇是否有誤,另外可將單片機斷電 后重新上電試試,若使用的USB轉串口,可將USB頭斷開幾秒再插上,如果仍然不行,請檢查
程序代碼是否占用了仿真調試接口(P3.0與P3.1 )。
10 延時軟件使用方法

長時間延時,函數固定格式:

void delay500ms() // 大范圍精確延時函數
{
unsigned char i,j,k; // i,j,k由軟件計算出確定。
for(i=41;i>0;i--) // 注意后面沒分號
for(j=133;j>0;j--) // 注意后面沒分號
for(k=252;k>0;k--); // 注意后面有分號
}
短暫延時,函數固定格式:
void delay (unsigned char t) // 小范圍精確延時函數
{

while(--t);

}
根據不同的延時時間修改函數中的變量 i,j,kt 即可, i,j,kt 由筆者編寫的 軟件直接計算得出

11 main()、void main()和int main()的區別

在C語言中main()和void main()區別:一個有返回值(沒聲明類型的 默認是返回值int型),一個無返回值,特別在單片機運用中由于主函數 沒有其它函數調用它,所以返回的值也就沒什么用。所以一般都寫的 void main(),這時程序中不需要return語句,如果main()函數前沒有void

(默認為int),或者寫為int main()程序中就必須有return語句,比如:

int main()

{
return 0; // 表示程序正常退出
}
在單片機程序中一般寫作void min()最方便,但在其它一些C編譯器中,寫
作void main()編譯是不能通過的,需要寫成int main(),int main()是C語言
的標準格式。
12 printf 格式化輸出函數(單片機與計算機通信)

例1.8 計算機串口助手顯示單片機內部簡單信息

#include "STC15W4K.H"

#include  // 為使用KEIL自帶的庫函數printf而加入
void printstar()
{
printf("********************************");
}
void print_message()
{
printf("hello world"); // 最簡單輸出 printf("How do you do!"); // 輸出換行符 printf("歡迎學習STC51單片機"); // 中文輸出
}
void UART_init(void)
{
// 下面代碼設置定時器1
TMOD = 0x20; // 0010 0000 定時器1工作于方式2(8位自動重裝方式) TH1 = 0xFD; // 波特率:9600 /11.0592MHZ
TL1 = 0xFD; // 波特率:9600 /11.0592MHZ TR1 = 1;
// 下面代碼設置定串口
AUXR = 0x00; // 很關鍵,使用定時器1作為波特率發生器,S1ST2=0
SCON = 0x50; // 0101 0000 SM0.SM1=01(最普遍的8位通信),REN=1(允許接受) TI=1; // 很關鍵,使用printf函數時必須有此命令
}

void main()

{

}

UART_init(); // 初始化串口 printstar(); // 輸出************** print_message(); // 輸出說明文字 printstar(); // 輸出************** while(1) ; // 停在這里

我們把例1.8程序下載到單片機中,打開程序下載軟件的串口助手,接收緩沖區選擇文本模式,波特率

9600,打開串口,給實驗板斷電后上電,可以看到單片機發給計算機的信息如圖1-67所示,如果顯示 的個別字符出現亂碼或連續接收大量數據顯示不正常,可換用其它串口助手軟件,比如“丁丁串口調試 助手SSCOM 3.3”即可解決。實驗結果如下:

實 驗 主 板


13 學習用實驗板介紹

由于后續章節實驗很多,制作實驗電路比較耗費時間,可以購買實驗板產品。

SD卡與MP3實驗板


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:154576 發表于 2017-3-21 10:47 | 只看該作者
謝謝!比較適合我這樣的初學者,非常感謝!!
回復

使用道具 舉報

板凳
ID:192534 發表于 2017-5-18 08:25 | 只看該作者
很適合我這樣的初學者,非常感謝!!!!
回復

使用道具 舉報

地板
ID:280642 發表于 2018-1-30 08:54 | 只看該作者
看起來很基礎非常適合初學,就感謝樓主分享,謝謝!
回復

使用道具 舉報

5#
ID:401610 發表于 2018-9-23 16:40 | 只看該作者
學習了。。
很適合我這樣的初學者,非常感謝!!!!
回復

使用道具 舉報

6#
ID:401610 發表于 2018-9-23 17:11 | 只看該作者
謝謝,學習了。。。
回復

使用道具 舉報

7#
ID:409837 發表于 2018-10-23 14:51 | 只看該作者
很好,謝謝,支持!
回復

使用道具 舉報

8#
ID:421786 發表于 2018-11-8 11:23 | 只看該作者
謝謝!比較適合我這樣的初學者,非常感謝!!
回復

使用道具 舉報

9#
ID:427487 發表于 2018-11-16 08:17 | 只看該作者
Hello World
回復

使用道具 舉報

10#
ID:452731 發表于 2018-12-27 20:58 | 只看該作者
這個單片機和STC的51還有89C51    有什么優點?
回復

使用道具 舉報

11#
ID:420519 發表于 2019-1-21 19:35 | 只看該作者
看了一會兒  長路漫漫啊
回復

使用道具 舉報

12#
ID:452731 發表于 2019-1-27 23:58 | 只看該作者
具有參考價值
回復

使用道具 舉報

13#
ID:299054 發表于 2019-2-16 15:49 | 只看該作者
謝謝樓主分享的好資料!
回復

使用道具 舉報

14#
ID:384315 發表于 2019-7-3 23:37 來自手機 | 只看該作者
怎么還是有點看不懂?
回復

使用道具 舉報

15#
ID:341311 發表于 2019-9-27 09:34 | 只看該作者
謝謝樓主的分享
回復

使用道具 舉報

16#
ID:607546 發表于 2019-10-6 14:46 | 只看該作者
謝謝分享,入門學習很好,適用!
回復

使用道具 舉報

17#
ID:253767 發表于 2020-4-23 07:30 | 只看該作者
謝謝分享!!!
回復

使用道具 舉報

18#
ID:816011 發表于 2020-8-28 11:44 | 只看該作者
學習了。。 很適合我這樣的初學者,感謝
回復

使用道具 舉報

19#
ID:847123 發表于 2020-11-22 04:28 | 只看該作者
想入門,看了一會,覺得stc15f104系列8腳的單片機適合我容易玩
回復

使用道具 舉報

20#
ID:968083 發表于 2021-9-26 05:03 | 只看該作者
這樣圖文并茂的教程對新手很有幫助,感謝樓主
回復

使用道具 舉報

21#
ID:985401 發表于 2022-1-3 22:30 | 只看該作者

謝謝!比較適合我這樣的初學者,非常感謝!
回復

使用道具 舉報

22#
ID:1024753 發表于 2022-5-19 16:40 | 只看該作者
很實用,謝謝大佬分享,開始學習
回復

使用道具 舉報

23#
ID:742312 發表于 2022-11-25 21:57 | 只看該作者
很實用,謝謝大佬分享 非常感謝!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久国产精品入口麻豆 | 亚洲一区二区在线免费观看 | 国产日韩欧美一区二区 | 国产精品欧美一区二区 | 国产精品久久久久久久久动漫 | 羞羞视频免费在线 | 国产伦精品一区二区三区照片91 | 黑人巨大精品欧美一区二区一视频 | 精品国产欧美一区二区 | 黄网站涩免费蜜桃网站 | 精品99在线 | 成人在线视频观看 | 色香婷婷| 新91 | 午夜精品影院 | 国产精品精品久久久 | 精品不卡| 久操福利 | 欧美亚洲国产精品 | www.97zyz.com | 青青草一区二区 | 欧美成人一级 | 99久久99| 日本午夜精品 | 亚洲国产情侣 | 久久久久欧美 | 一区二区高清 | 欧美在线不卡 | 香蕉国产在线视频 | 日韩免费福利视频 | www.久久国产精品 | 一区二区在线免费观看视频 | 亚洲欧美日韩精品久久亚洲区 | 亚洲欧洲精品在线 | 精品成人在线观看 | 国产精品视频在线观看 | 亚洲欧美在线视频 | 日韩精品一区二区三区四区视频 | 嫩草懂你的影院入口 | 亚洲五码在线 | 涩涩视频在线看 |