一、程序的書寫
編程環境基礎:下載并點擊打開keil uVision4編譯器;
1、新建工程文件
(1)創建工程組(Porject)
Step1:新建工程;
這里4中“template”為工程文件的名稱,自定義即可;
Step2:選擇CPU型號;
這里選擇AT89C52即可(國產STC89C52芯片與其架構相同)
點擊 OK 鍵后,彈出如下對話框:
翻譯:是否要將 8051 啟動文件添加到工程文件夾中;
這里選擇“否”,原因是 KEIL C51 內已經幫我們完成了啟動,即可完成工程文件的創建;
2、添加工程文件(File)
Step1:新建.c文件并命名;
點擊菜單頁面File/New,命名文件(注意必須是字母名稱);
Step2:將新建的.c文件添加到工程組中;
即可完成創建
三、配置魔術棒(文件的各種配置選項)
勾選√:輸出(Output)時,需創建HEX格式文件;
2**、C語言預編譯/程序基本結構**
頭文件的引用
(1)寫法 # include"reg52.h" ****
凡是編寫 51內核單片機程序時,我們源代碼的第一行應包含該頭文件。
寫法1: 編譯器先進入到當前工程所在文件夾處開始搜索該頭文件,如果當前工程所在文件夾下沒有該頭文件,編譯器將繼續回到軟件安裝文件夾處搜索這個頭文件,如果找不到這個頭文件,編譯器將會報錯;
#include "reg52.h"
寫法2:從軟件安裝文件夾處開始搜索這個頭文件,如果這個文件夾沒有引用的頭文件,編譯器將會報錯;
#include < reg52.h >
So,盡量使用“”的寫法來引用頭文件,能夠防止編譯器報錯;
2、reg52.h頭文件內容介紹
可以通過右鍵可以打開頭文件;
reg52.h的作用:提供引腳定義(對引腳的“寄存器地址”進行命名)
STC89C52引腳
①電源引腳:VCC、GND
②時鐘引腳:XTAL1、XTAL2
③編程控制引腳:RST、PSEN、ALE/PROG、EA/Vpp。(了解即可)
④I/O 口引腳:如 P0、P1、P2、P3(4組8位I/O口);
當我們引用過了“reg52.h”頭文件,可以使用引腳表達,例如:
sbit LED1=P2^0 //重命名P2.0引腳為LED1(注意:P2.0引腳寫成P2^0;
頭文件reg52.h的具體內容
/*--------------------------------------------------------------------------
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.波特率
波特率是指單位時間內傳送二進制數據的位數,單位用bps(位/秒)表示,記作波特。
波特率是傳輸通道頻寬的指標。
2.比特率
比特率來衡量異步串行通信的數據傳輸速率,即單位時間內傳送二進制有效數據的位數,單位用bps表示。
比特率 = 波特率 x 單個調制狀態對應的二進制位數。
比特率表示有效數據的傳輸速率。
-
軟件
+關注
關注
69文章
5009瀏覽量
88066 -
編程
+關注
關注
88文章
3637瀏覽量
93981 -
ISP
+關注
關注
6文章
478瀏覽量
52013 -
keil
+關注
關注
69文章
1214瀏覽量
167271 -
編譯器
+關注
關注
1文章
1642瀏覽量
49283
發布評論請先 登錄
相關推薦
評論