一、程序的書寫
編程環(huán)境基礎(chǔ):下載并點(diǎn)擊打開keil uVision4編譯器;
1、新建工程文件
(1)創(chuàng)建工程組(Porject)
Step1:新建工程;
這里4中“template”為工程文件的名稱,自定義即可;
Step2:選擇CPU型號;
這里選擇AT89C52即可(國產(chǎn)STC89C52芯片與其架構(gòu)相同)
點(diǎn)擊 OK 鍵后,彈出如下對話框:
翻譯:是否要將 8051 啟動文件添加到工程文件夾中;
這里選擇“否”,原因是 KEIL C51 內(nèi)已經(jīng)幫我們完成了啟動,即可完成工程文件的創(chuàng)建;
2、添加工程文件(File)
Step1:新建.c文件并命名;
點(diǎn)擊菜單頁面File/New,命名文件(注意必須是字母名稱);
Step2:將新建的.c文件添加到工程組中;
即可完成創(chuàng)建
三、配置魔術(shù)棒(文件的各種配置選項(xiàng))
勾選√:輸出(Output)時(shí),需創(chuàng)建HEX格式文件;
2**、C語言預(yù)編譯/程序基本結(jié)構(gòu)**
頭文件的引用
(1)寫法 # include"reg52.h" ****
凡是編寫 51內(nèi)核單片機(jī)程序時(shí),我們源代碼的第一行應(yīng)包含該頭文件。
寫法1: 編譯器先進(jìn)入到當(dāng)前工程所在文件夾處開始搜索該頭文件,如果當(dāng)前工程所在文件夾下沒有該頭文件,編譯器將繼續(xù)回到軟件安裝文件夾處搜索這個(gè)頭文件,如果找不到這個(gè)頭文件,編譯器將會報(bào)錯(cuò);
#include "reg52.h"
寫法2:從軟件安裝文件夾處開始搜索這個(gè)頭文件,如果這個(gè)文件夾沒有引用的頭文件,編譯器將會報(bào)錯(cuò);
#include < reg52.h >
So,盡量使用“”的寫法來引用頭文件,能夠防止編譯器報(bào)錯(cuò);
2、reg52.h頭文件內(nèi)容介紹
可以通過右鍵可以打開頭文件;
reg52.h的作用:提供引腳定義(對引腳的“寄存器地址”進(jìn)行命名)
STC89C52引腳
①電源引腳:VCC、GND
②時(shí)鐘引腳:XTAL1、XTAL2
③編程控制引腳:RST、PSEN、ALE/PROG、EA/Vpp。(了解即可)
④I/O 口引腳:如 P0、P1、P2、P3(4組8位I/O口);
當(dāng)我們引用過了“reg52.h”頭文件,可以使用引腳表達(dá),例如:
sbit LED1=P2^0 //重命名P2.0引腳為LED1(注意:P2.0引腳寫成P2^0;
頭文件reg52.h的具體內(nèi)容
/*--------------------------------------------------------------------------
REG52.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __REG52_H__
#define __REG52_H__
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
/* 8052 Extensions */
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
/* BIT Registers */
/* PSW */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0; //8052 only
/* TCON */
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
/* IE */
sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
/* IP */
sbit PT2 = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;
/* P3 */
sbit RD = P3^7;
sbit WR = P3^6;
sbit T1 = P3^5;
sbit T0 = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD = P3^1;
sbit RXD = P3^0;
/* SCON */
sbit SM0 = SCON^7;
sbit SM1 = SCON^6;
sbit SM2 = SCON^5;
sbit REN = SCON^4;
sbit TB8 = SCON^3;
sbit RB8 = SCON^2;
sbit TI = SCON^1;
sbit RI = SCON^0;
/* P1 */
sbit T2EX = P1^1; // 8052 only
sbit T2 = P1^0; // 8052 only
/* T2CON */
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2 = T2CON^0;
#endif
二、程序的燒錄/下載
(1)芯片類型選擇;
(2)串口號選擇;
(3)波特率選擇;
1.波特率
波特率是指單位時(shí)間內(nèi)傳送二進(jìn)制數(shù)據(jù)的位數(shù),單位用bps(位/秒)表示,記作波特。
波特率是傳輸通道頻寬的指標(biāo)。
2.比特率
比特率來衡量異步串行通信的數(shù)據(jù)傳輸速率,即單位時(shí)間內(nèi)傳送二進(jìn)制有效數(shù)據(jù)的位數(shù),單位用bps表示。
比特率 = 波特率 x 單個(gè)調(diào)制狀態(tài)對應(yīng)的二進(jìn)制位數(shù)。
比特率表示有效數(shù)據(jù)的傳輸速率。
-
軟件
+關(guān)注
關(guān)注
69文章
4944瀏覽量
87500 -
編程
+關(guān)注
關(guān)注
88文章
3616瀏覽量
93738 -
ISP
+關(guān)注
關(guān)注
6文章
477瀏覽量
51839 -
keil
+關(guān)注
關(guān)注
68文章
1213瀏覽量
166885 -
編譯器
+關(guān)注
關(guān)注
1文章
1634瀏覽量
49133
發(fā)布評論請先 登錄
相關(guān)推薦
評論