历史上的今天
返回首页

历史上的今天

今天是:2024年11月25日(星期一)

正在发生

2020年11月25日 | 51单片机Keil C51的使用(C语言)

2020-11-25 来源:51hei

  • 实验目的:

初步掌握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秒的周期闪烁。


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



推荐阅读

史海拾趣

Agilent Technologies公司的发展小趣事
  1. 公司成立与拆分:Agilent Technologies是一家跨国科技公司,成立于1999年。它是惠普公司(Hewlett-Packard,HP)的分拆部门,旨在将惠普的测试与测量、半导体业务分离出来,形成独立的实体。这一举措旨在使惠普更专注于其核心业务,同时为Agilent提供更大的发展空间。

  2. 产品创新与多元化:Agilent Technologies以其广泛的产品组合而闻名,涵盖了测试与测量、生命科学、化学分析和电子产品等多个领域。该公司不断推出创新的产品和解决方案,满足客户在科研、制造和市场应用中的需求。例如,Agilent的测试与测量仪器被广泛应用于电子、通信、航空航天等行业,为客户提供精准的测试和分析。

  3. 全球化布局与市场拓展:作为一家全球性企业,Agilent Technologies在全球范围内设有研发、生产和销售网络。公司在美国、欧洲、亚洲等地都设有重要的研发中心和生产基地,以满足不同地区客户的需求。此外,Agilent通过收购和合作等方式扩大了其产品线和市场份额,进一步加强了其在全球电子行业的地位。

  4. 科研与创新投入:Agilent Technologies将大量资源投入到科研与创新领域,不断推动技术的发展和应用。公司与学术界、行业组织以及其他企业建立了紧密的合作关系,共同开展前沿技术研究和开发。Agilent的研究团队不断探索新的领域和解决方案,推动了科学技术的进步,为客户提供了更加先进和可靠的产品和服务。

  5. 社会责任与可持续发展:作为一家全球企业,Agilent Technologies注重社会责任和可持续发展。公司积极参与慈善事业和社区服务,支持教育、环保、健康等多个领域的项目和活动。此外,Agilent致力于推动绿色技术和环保生产,采取了一系列措施减少对环境的影响,提高资源利用效率,助力实现可持续发展目标。

Central Semiconductor公司的发展小趣事

随着全球电子市场的不断扩大和竞争的加剧,Central Semiconductor积极实施全球化战略,拓展国际市场。公司在全球范围内建立了完善的销售网络和供应链体系,以确保产品能够及时、准确地到达客户手中。

同时,Central还不断开拓新的业务领域,如汽车电子、工业控制、医疗电子等。通过不断的技术创新和市场拓展,Central逐渐在多个领域取得了显著的业绩和市场份额。

这五个故事分别从不同的角度展示了Central Semiconductor在电子行业中的发展历程和成就。无论是坚守与转型、创新开发、对停产产品的支持、裸片产品的开发还是全球化布局与业务拓展,Central都展现出了其敏锐的市场洞察力和强大的市场竞争力。这些故事不仅是对Central发展历史的回顾,也是对其未来发展的展望和期许。

DSP Group Inc公司的发展小趣事

在智能语音领域,DSP Group凭借其深厚的技术积累和创新能力,取得了显著的突破。公司推出了一系列智能语音处理技术和产品,如SmartVoice系列语音处理芯片和算法套件等。这些技术和产品不仅为用户提供了更加自然、智能的语音交互体验,还为智能家居、汽车电子等领域的发展提供了有力支持。

ABECO公司的发展小趣事

品质是ABECO的生命线。公司始终坚持严格的质量管理体系,从原材料的采购到生产过程的控制,再到产品的检测和包装,每一个环节都严格把关。此外,公司还定期举行质量培训活动,提高员工的质量意识。这种对品质的执着追求,使得ABECO的产品在市场上始终保持着良好的口碑和竞争力。

CommScope Inc公司的发展小趣事

尽管康普在通信行业取得了显著的成就,但它也面临着诸多挑战。其中最大的挑战之一来自网络安全和数据保护。近年来,随着网络安全事件的频发,康普也遭受了数据泄露等网络安全事件的冲击。然而,康普积极应对挑战,加强了网络安全和数据保护的投入,提升了公司的网络安全防护能力。同时,康普也积极寻找新的增长点,拓展5G、物联网等新兴市场及成长型市场的渠道,为公司的未来发展奠定了坚实的基础。

以上五个故事仅是CommScope Inc公司电子行业发展的部分缩影,实际上,公司的发展历程远比这些故事更为丰富和复杂。但通过这些故事,我们可以看到CommScope Inc公司在技术创新、市场开拓、产品升级以及应对挑战等方面所做出的努力和取得的成就。

DECON公司的发展小趣事

企业文化是企业的灵魂,DECON公司注重企业文化的建设和传承。公司倡导“诚信、创新、卓越”的企业精神,鼓励员工勇于创新、追求卓越。同时,公司还注重团队建设和人才培养,为员工提供广阔的发展空间和良好的职业前景。这些举措不仅增强了员工的凝聚力和归属感,也为企业的发展注入了源源不断的动力。

问答坊 | AI 解惑

实现STC单片机内部EEPROM编程资料大放送

自己改了个n年前用的小工具,用来实现PC机读取和编程STC单片机内部的EEPROM(数据Flash),软件冗余做得不完善,基本上能用。 下面是PC机运行软件的界面 …

查看全部问答>

矩阵键盘

我想了解关于4*4矩阵键盘的详细资料…

查看全部问答>

一个带CY进位的C语言写法!

unsigned char temp   temp=0xaa;    //假设一个数据0xaa,让P0_0口输出,就可以看到结果了 for(i=0;i…

查看全部问答>

请教一个TFT LCD控制器的问题

第二版示波器中要设计TFT LCD控制器,我负责软件编写,我想请问一下是不是对于320X240点的液晶,我得有320X240X3字节的显存?这个数目就很大了.…

查看全部问答>

270平台,调试wifi(型号marvell 8686) ,在makeimg时候遇到Error!请高手指点~

小弟刚接触wince的开发不久,老大让调试一下wifi,型号为marvell 8686。我们用的是270平台。调试步骤依次是: 1.找硬件飞上线,占用sd卡上的sdio 2.在...drivers目录下添加wifi模块,包括source code、makefile文件,*.def文件、source文件等,还 ...…

查看全部问答>

STM32F101RC代码超过32K怎么办?

                                 用什么编译器? 打算用这个芯片,还没开始,。。。。…

查看全部问答>

扩展RAM问题

F28335的开发板, 扩展ram使用zone6,初始化完毕后定义变量数据Tem[40],完成如下填充 for(i=0;i<40;i++) Tem=i; 查看存储器的ox1ofcoo空间,发现Tem数据里面全是    1.#qnan   存储空间的值全是  OXFFFF&nb ...…

查看全部问答>

新生报到

大家好,我是新来的,希望大家往后多多指教!…

查看全部问答>

超萌PCB板

在淘寶看到有人賣這樣的PCB,萌會不會增加銷售量呢? 現在市場上除了功能性外,似乎視覺也很重要。…

查看全部问答>