51单片机Keil C51的使用(C语言)

发布者:灵感之翼最新更新时间:2020-11-25 来源: 51hei关键字:51单片机  Keil  C51  C语言 手机看文章 扫描二维码
随时随地手机看文章
  • 实验目的:

初步掌握Keil(C51语言)和SUN ES59PA实验仪的操作和使用,能够输入和运行简单的程序。

  • 实验设备:

SUN ES59PA实验仪一套、具有一个RS232串行口并安装Keil C51的计算机一台。

  • 实验原理及环境:

1.在计算机上已安装Keil C51软件。这个软件既可以与硬件(SUN ES59PA实验仪)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。

2. 实验的硬件环境:

A3区:CPU总线、I/O接口 片选区

JP37,JP45:地址线A0..A7;

JP48、JP50:CPU的D0..D7,它只能作地址/数据总线使用,不能做I/O口使用;

JP32、JP94:CPU的P0口;

JP51、JP55:CPU的P1口;

JP59、JP95:CPU的P2,它可作I/O、地址线A8..A15使用;

JP61、JP64:CPU的P3口;

JP31:如果P0作地址/数据总线使用,请不要短接JP31;否则,请短接JP31。

    片选区

片选

地址范围

片选

地址范围

CS1

0F000H~0FFFFH

CS5

0B000H~0BFFFH

CS2

0E000H~0EFFFH

CS6

0A000H~0AFFFH

CS3

0D000H~0DFFFH

CS7

09000H~09FFFH

CS4

0C000H~0CFFFH

CS8

08000H~08FFFH


F5区:发光二极管部分

发光二极管电路原理图

3.本实验硬件要求的硬件连接:

A3区:JP51

——

F5区:JP65

注意:引脚一一对应连接,即pin1接另一个的pin1,……   

  • 实验内容:

1.掌握软件的开发过程:

1)建立一个工程项目选择芯片确定选项。

2)加入C 源程序文件或汇编源程序文件。

3)用项目管理器生成各种应用文件。

4)检查并修改源文件中的错误。

5)编译连接通过后进行软件模拟仿真。

6)编译连接通过后进行硬件仿真。

2.在本实验的硬件环境下,编程:实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波

  • 实验步骤和实验结果:

A、实现内容1的实验步骤和实验结果:

1. 在E盘根目录下新建一个工程目录sy101、运行Keil并新建一个工程项目:

①执行Project→New Project...命令。

②保证工程文件保存的文件夹为“E:sy101”,输入工程名sy101。

③点击保存按钮,保存工程文件。

弹出下一对话框。

①选CPU厂家(Atmel)→②选CPU型号(AT89C51), ③选好后确定

接着设置晶振频率及生成HEX 文件等选项。

①Project→②Options for Target ‘Target 1’… →③在Target选项页中→④更改CPU 晶振频率为12MHz→⑤在Output选项页中→⑥选择生成HEX 文件,其它采用缺省设置→⑦选好后点击确定。

2.建立C源程序文件

①执行File→New命令,弹出源文件编辑窗口。

输入以下C源程序:                           

#include "reg51.h"

main()

{

unsigned char i,j,k;

while(1)

  {

P1^=0x01;

                            for(i=10;i>0;i--)

                                for(j=100;j>0;j--)

                                                          for(k=250;k>0;k--);

              }

}

源程序编写完后,执行File→Save As...命令,将文件以“sy101.c”为文件名保存在“E:sy101 ”文件夹下,获得C语言源程序文件。

3.将源程序文件加入工程,并用项目管理器生成(构建得到)各种应用文件

①在工程窗口,点击Target 1 前之+ 号→出现②Source Group1→③点击Source Group1并按鼠标右键会生弹出下拉菜单,选择④Add Files to Group ‘ Source Group 1’ →⑤在打开的Add Files to Group ‘ Source Group 1’窗口中点击add向项目中添加sy101.c 源文件→⑥点击close关闭Add Files to Group ‘ Source Group 1’窗口→⑦在Source Group 1 前会出现一个+号→⑧点击+号,弹出sy101. c文件名,点击该文件名→⑨主编辑窗口中会出现该源程序文件的内容,执行Project→Build target 构建命令就会生成一系列文件,如OBJ 文件、LST 文件、HEX文件等。

4.检查并修改源文件中的错误

如果在源文件中存在错误,则在Output 窗口中会出现错误提示信息,可以在源程序中进行修改,然后存盘后重新构建。

5.编译连接通过后进行软件模拟仿真

Debug→Start/Stop Debug Session进入软件模拟的仿真窗口,可使用单步、设断点来进行调试和除错。

6.编译连接通过后进行硬件仿真


保证实验仪的仿真USB口与PC机USB口连接,用8针排线连接实验仪A3区的JP51和F5区的JP65(注意引脚一一对应),给实验仪通电,设置硬件实时仿真调试选项:单击工程窗口中的Target 1,执行Project→Options for Target ‘Targetl’ ...命令,在对话框的Debug页选中“Use”单选框,在其后面的下拉式文本框中选中“SUN ES59PA”,其它采用默认选项,点击确定按钮。


执行Debug→Start/Stop Debug Session命令进入硬件实时调试窗口,执行Debug→Go命令连续运行程序,观察LED发光管DS35的显示效果为:连接到P1.0的LED发光管DS35以1秒的周期闪烁。


另外进入硬件实时调试窗口后,还可打开各种观察窗口,进行设置断点、单步运行、运行到光标处、连续执行等调试操作。


B、实现内容2的实验步骤和实验结果:

1.运行Keil并新建一个工程项目:

①执行Project→New Project...命令。

②保证工程文件保存的文件夹为“E:sy101”,输入工程名sy102。

③点击保存按钮,保存工程文件。

弹出下一对话框。

①选CPU厂家(Atmel)→②选CPU型号(AT89C51), ③选好后确定

接着设置晶振频率及生成HEX 文件等选项。

①Project→②Options for Target ‘Target 1’… →③在Target选项页中→④更改CPU 晶振频率为12MHz→⑤在Output选项页中→⑥选择生成HEX 文件,其它采用缺省设置→⑦选好后点击确定。


2.建立C源程序文件

①执行File→New命令,弹出源文件编辑窗口。

输入以下C源程序:                           

#include "reg51.h"

main()

{

unsigned char i,j,k;

P1=0xfe;

while(1)

  {

P1^=0x03;

                            for(i=10;i>0;i--)

                                for(j=100;j>0;j--)

                                                          for(k=250;k>0;k--);

              }

}

源程序编写完后,执行File→Save As...命令,将文件以“sy102.c”为文件名保存在“E:sy101 ”文件夹下,获得C语言源程序文件。


3.将源程序文件加入工程,并用项目管理器生成(构建得到)各种应用文件

①在工程窗口,点击Target 1 前之+ 号→出现②Source Group1→③点击Source Group1并按鼠标右键会生弹出下拉菜单,选择④Add Files to Group ‘ Source Group 1’ →⑤在打开的Add Files to Group ‘ Source Group 1’窗口中点击add向项目中添加sy101.c 源文件→⑥点击close关闭Add Files to Group ‘ Source Group 1’窗口→⑦在Source Group 1 前会出现一个+号→⑧点击+号,弹出sy102. c文件名,点击该文件名→⑨主编辑窗口中会出现该源程序文件的内容,执行Project→Build target 构建命令就会生成一系列文件,如OBJ 文件、LST 文件、HEX文件等。


4.检查并修改源文件中的错误

如果在源文件中存在错误,则在Output 窗口中会出现错误提示信息,可以在源程序中进行修改,然后存盘后重新构建。


5.编译连接通过后进行软件模拟仿真

Debug→Start/St

op Debug Session进入软件模拟的仿真窗口,可使用单步、设断点来进行调试和除错。


6.编译连接通过后进行硬件仿真

保证实验仪的仿真USB口与PC机USB口连接,用8针排线连接实验仪A3区的JP51和F5区的JP65(注意引脚一一对应),给实验仪通电,设置硬件实时仿真调试选项:单击工程窗口中的Target 1,执行Project→Options for Target ‘Targetl’ ...命令,在对话框的Debug页选中“Use”单选框,在其后面的下拉式文本框中选中“SUN ES59PA”,其它采用默认选项,点击确定按钮。

执行Debug→Start/Stop Debug Session命令进入硬件实时调试窗口,执行Debug→Go命令连续运行程序,观察LED发光管DS35的显示效果为:连接到P1.0和P1.1的LED发光管DS35以1秒的周期闪烁。


另外进入硬件实时调试窗口后,还可打开各种观察窗口,进行设置断点、单步运行、运行到光标处、连续执行等调试操作。



关键字:51单片机  Keil  C51  C语言 引用地址:51单片机Keil C51的使用(C语言)

上一篇:51单片机简易波形发生器(正弦波 锯齿波 三角波)
下一篇:时间继电器 倒计时控制 定时通断开关模块程序包

推荐阅读最新更新时间:2024-11-10 00:30

51单片机入门教程(1)——点亮一个LED灯
一、什么是单片机 单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。 以上是百度百科上的词条,随便看看就行了,下面说一下我对单片机的理解: 我们都知道,我们的电脑是由CPU、内存、磁盘、IO设备等组成的,而单片机简而言之,就是一个微型电脑,它在
[单片机]
<font color='red'>51单片机</font>入门教程(1)——点亮一个LED灯
基于AT89C51单片机16×16LED汉字点阵滚动显示的设计
LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于AT89C51单片机16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术 1 硬件电路组成及工作原理 本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组成,如图1
[单片机]
基于AT89C<font color='red'>51单片机</font>16×16LED汉字点阵滚动显示的设计
8051单片机基础5:数据类型占用空间大小及取值范围
参考资料: Keil Help uVision Help Cx51 Compiler User’s Guide Language Extensions Data Types Keil Help uVision Help Arm Compiler 5 User’s Guides Compiler User Guide C and C++ Implementation Details C语言中使用变量时需要先定义数据类型,定义数据类型后,编译器自动分配适当的存储空间。比如定义unsigned char型变量,分配1个字节的存储空间。 在不同MCU平台使用C语言编写代码时,需要注意基本数据类型占用字节数,比如
[单片机]
80<font color='red'>51单片机</font>基础5:数据类型占用空间大小及取值范围
关于51单片机C编程 return语句的使用
案例: 函数写法1: u8 is_timeout(tick start_time, tick interval) { return (get_diff_tick(get_tick(), start_time) interval); } 函数写法2: u8 is_timeout(tick start_time, tick interval) { u8 status; status = get_diff_tick(get_tick(), start_time) interval); return status; } 函数调用方式: if (is_ti
[单片机]
51单片机入门教程(4)——按键控制
单片机与外界的信息交互主要有两大类,输入信息和输出信息。 之前的博客介绍了通过单片机控制LED灯和数码管向外界输出信息,该教程介绍单片机常用的输入设备——独立按键和矩阵键盘。 一、独立按键 1.1 独立按键的原理 独立按键一共有四个针脚,两个短针脚之间默认不导通,两个长针脚之间默认导通。实物图如图: 1.2 独立按键的仿真电路 在Proteus中对按键进行了简化,只有两个接线针脚。按键的一端接到单片机的IO口上,另一端与GND连接。当按键按下时,单片机的IO口与GND连接,端口电平被拉低。因此通过读取端口电平即可获知按键状态。 仿真电路如图: 1.3 按键消抖 关于按键抖动: 通常的按键所用开关为机械弹性开关,
[单片机]
<font color='red'>51单片机</font>入门教程(4)——按键控制
51单片机“积木式”实验板原理
  本实验板由一块主控板和若干受控子实验板组成。主控板为一单片机最小系统,原理如图2。主控板上由三端稳压器7805和电容C4,C5组成稳压滤波电路,将外部9~l2V左右的直流电压稳压滤波后变成5V,给主控板51单片机IC芯片供电,并从主板CN2和CN5接线柱输出,给外接被控子实验板供电。主控板上按键S1、1OμF电容C1、1OKΩ电阻R1组成按键式复位电路。12MHz晶振X1和30PF电容C2、C3组成晶振电路,接在51单片机IC的18、19脚。40脚、31脚接5V电源,20脚接地。在40脚的IC插座上再加插一个双列锁紧式插座,便于芯片的卸装,同时也便于紧锁式插座损坏后更换。单片机的PO、P1、P2、P3端口通过CN1、CN3、C
[单片机]
<font color='red'>51单片机</font>“积木式”实验板原理
51单片机的控制寄存器详解
串行口控制寄存器SCON(98H) SM0和SM1是串行口4中工作方式的选择位。 00 方式0:8位移位寄存器,波特率固定为fosc/12(晶振频率的12分之1) 01 方式1:10位异步收发(1+8+1),波特率可变,按公式计算(使用频率最高的方式,起始位0+8位数据+停止位1) 10 方式2:11位异步收发(1+8+1+1),波特率固定为fosc的1/32或1/64 11 方式3:11位异步收发(1+8+1+1),波特率可变,按公式计算 SM2是串行口多机通信控制位(作为方式2、方式3的附加控制位) REN是串行口接收允许控制位,1表示允许接收,0表示禁止接收。 RB8、TB8是多机通信使用的
[单片机]
<font color='red'>51单片机</font>的控制寄存器详解
基于STM32标准库建立Keil-MDK工程模板(STM32F407ZG)
一、前言 最近由于项目需要使用标准库,标准库是很刚入门stm32那会学习的东西,忘得一干二净,所以编写一篇文章来记录一下建立工程模板的步骤,以便尽快熟悉标准库的架构和API。 我使用的开发板是正点原子探索者开发板,MCU为STM32F407ZGT6。 二、STM32标准外设库 STM32标准库( 官方网站 )是ST在早期为STM32F0到F4系列主流芯片提供的库,使开发者不需要直接操作寄存器,而是调用库提供的API即可完成对某个片内外设的操作,所以也称为标准外设库,或者固件库。 本文中我使用的是 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0,可以从官网下载( 下载地址 ): 解压之后,标准外
[单片机]
基于STM32标准库建立<font color='red'>Keil</font>-MDK工程模板(STM32F407ZG)
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved