一、程序的书写
编程环境基础:下载并点击打开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”头文件,可以使用引脚表达,例如:
sbitLED1=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 onlysbit 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 onlysbit 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)波特率选择;
波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特。
波特率是传输通道频宽的指标。
比特率来衡量异步串行通信的数据传输速率,即单位时间内传送二进制有效数据的位数,单位用bps表示。
比特率 = 波特率 x 单个调制状态对应的二进制位数。
比特率表示有效数据的传输速率。
全部0条评论
快来发表一下你的评论吧 !