实验(一):开发环境的安装及基本操作

news2025/8/3 8:37:37

一、实验目的与任务

        实验目的:

                1. 掌握KeilC集成开发环境的安装及基本操作;

                2. 掌握Protues仿真软件的安装及基本操作。

        任务:

                1.完成KeilC集成开发环境的安装,建立工程;

                2. 完成Protues仿真软件的安装,建立工程;

                3. 完成所建工程的仿真及调试。

二、实验内容

        安装KeilC集成开发软件,建立工程,配置编译环境参数并调试。

        安装Protues仿真软件,建立工程,熟悉基本操作,查看元器件库,完成原理图并载入程序进行调试。

三、实验步骤

(1)示例程序

示例程序:

#include <reg52.h>

#define uchar unsigned char

void delay( )

{

uchar i,j;

for(i=0;i<255;i++)

for(j=0;j<255;j++);

}

void main( )

{

       while(1)

{

uchar temp;

P1=0xff;

temp=P1&0xf0;

temp=temp>>4;

P1=temp;

delay( );

}

}

实验步骤:

  1. 运行Keil uVision4 开发环境,按照“模块化单片机教学实验平台配套的实验指导书1.2.3 节”介绍的方法建立程esimlab1. uvproj,CPU 为AT89C51,包含启动文件STARTUP.A51。
  2. 输入源程序,在Keil uVision4 开发环境中,建立源程序esimlab1.c,将上述程序加入该程序文件。并将该文件加入工程esimlab1.uvproj。
  3. 设置工程esimlab1. uvproj 属性,将其晶振频率设置为12MHz,选择输出可执行文件(HEX 文件),仿真方式为“Use Simulator”。
  4. 构造(Build)工程esimlab1.uvproj。如果输入有误进行修改,直至构造正确,生成可执行程序 esimlab1.hex 为止。
  5. 单步调试运行程序,观察相应的反汇编指令窗口,寄存器A、PC、以及P1口的内容随着指令的执行的变化情况。

(2)原理图绘制:

实验步骤:

        1.运行Proteus 开发环境,建立工程,新建原理图设计文件esimlab2.DSN。

        2.查找元件库,将元件调入元件列表。

元器件名称

型号

数量

Proteus关键字

单片机

AT89C51

1

AT89C51

晶振

12MHz

1

CRYSTAL

二极管

黄色

4

LED-YELLOW

电容

30pF

2

CAP

电解电容

1μF

1

ELEC-CAP

电阻

470R

8

MINRES470R

电阻

10K和1K

2

MINRES10K

按钮

1

BUTTON

开关

4

SWITCH

        3.设置单片机属性,将其晶振频率设置为12MHz,载入KEIL生成的文件esimlab1.hex。

        4.运行仿真并观察结果。

4、实验小结

#include <reg52.h>//调用51单片机头文件
#define uchar unsigned char//定义uchar 即unsigned char
	
//延迟函数	
void delay( )
{
	uchar i,j;//定义变量i,j
	for(i=0;i<255;i++)//循环嵌套,达到延迟目的
	for(j=0;j<255;j++);
}

void main( )
{
	while(1)
{
	uchar temp;//定义变量temp
	
	P1=0xff;//给P1所有端口赋初值
	temp=P1&0xf0;//进行与计算,获得开关的信息
	temp=temp>>4;//向右移4位,将开关的信息移位给LED灯
	P1=temp;//将temp的值赋给P1
	
	delay( );
}
}

        通过本次实验,掌握了掌握KeilC集成开发环境的安装及基本操作和Protues仿真软件的安装及基本操作。

        在使用KeilC建立工程的过程中,熟悉了编译环境的配置,掌握了基本的调试方法。通过写源码注释,深入了解了c51编程的基本方法,对于与或运算等其他位运算方面的知识漏洞进行了填补。

        在使用Protues建立过程中,熟悉了基本操作,掌握了原器件库的使用,以及如何将程序载入Protues进行调试的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计票务销售网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Gartner发布首份中国RPA魔力象限报告,弘玑Cyclone被重点推荐

11月17日&#xff0c;国际权威研究机构Gartner重磅发布首份中国RPA魔力象限报告&#xff1a;《China Context: Magic Quadrant for Robotic Process Automation》。 毫无悬念&#xff0c;在2022全球RPA魔力象限报告&#xff08;Gartner RPA MQ&#xff09;中表现优异的弘玑Cyc…

魔百和CM311-1A_YST、(YM)_安卓9_S905L3A_默认开启ADB_纯净精简语音_完美线刷包

魔百和CM311-1A_YST、(YM)_安卓9_S905L3A_默认开启ADB_纯净精简语音_完美线刷包 固件特点&#xff1a; 1、修改dns&#xff0c;三网通用&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、无开机广告&#xff0c;无系统更新&#xff0c;不在被强制升…

什么是云原生的应用?

云原生应用的三个核心概念 链接&#xff1a;https://pan.baidu.com/s/10ocbDCGsdS3i7hEzvUlatA?pwdm9nr 提取码&#xff1a;m9nr –来自百度网盘超级会员V5的分享 脑图大家可以下载使用并补充 微服务 什么是单体应用&#xff1f; 传统的单体应用架构都是三层模式&#xff1…

分治策略与递归

目录分治策略分治概念递归概念分治策略的特征分治法步骤举例阶乘斐波那契数列打印数组数组中查找元素分治策略 分治概念 任何可以用计算机求解的问题所需要的时间都与其规模有关。问题规模越小&#xff0c;所解题所需要的时间就越小&#xff0c;从而也较容易处理。例如&#…

11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装

11.9 至 11.17 四道典型题记录&#xff1a; Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装 昨天休息的时候一直在想应该学习哪种语言&#xff0c;我想这也是好多人发愁无法下手的原因之一&#xff0c;今年找工作的时候发现更多的研究岗位需要的是 C 语言 或 C 语言&…

RocketMQ的事务消息和改造

什么是 rmq分布式事务消息&#xff1f; Apache RocketMQ在4.3.0版中已经支持分布式事务消息&#xff0c;这里RocketMQ采用了2PC的思想来实现了提交事务消息&#xff0c;同时增加一个补偿逻辑来处理二阶段超时或者失败的消息&#xff0c;如下图所示。 事务消息解决什么问题&…

Java学习笔记 --- 多线程

一、线程相关概念 程序 程序是为完成特定任务&#xff0c;用某种语言编写的一组指令的集合。简单的说就是我们写的代码 进程 1、进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存空间。当我们使用迅雷&…

程序控制结构

程序控制结构程序流程控制介绍顺序控制分支控制if-else单分支案例&#xff1a;编写一个程序&#xff0c;可以输入人的年龄&#xff0c;如果该同志的年龄大于等于 18 岁, 则输出 "你年龄大于 18,要对自己的行为负责,送入监狱"。双分支案例&#xff1a;编写一个程序&am…

关于Python函数的几点说明

关于Python函数的几点说明 本文介绍Python函数返回值、调用函数加括号和不加括号有什么区别、冒号后面省略号&#xff08;...&#xff09;和 pass等说明。 一、为什么函数意外返回“None” 初学者可能遇到这种情况&#xff0c;定义的函数意外返回“None”&#xff0c;例如&a…

Qt error: fatal error: Killed signal terminated program cc1plus

Qt error: fatal error: Killed signal terminated program cc1plus 文章目录Qt error: fatal error: Killed signal terminated program cc1plus摘要1 出现问题原因2 解决方法虚拟机物理机增加SWAP交换空间关键字&#xff1a; qt、 fatal、 error、 cc1plus、 Killed signal …

K8S实战 - 如何在kubernetes中安装软件

如何在kubernetes中安装软件 1、编写脚本安装 通过编写yaml文件&#xff0c;执行kubectl apply -f 可以安装软件 编写yaml的时候注意事项&#xff1a; pod的类型&#xff08;deployment、statefulset等&#xff09;端口的定义&#xff08;service&#xff09;配置文件的定义…

艾美捷Cholesterol胆固醇功效和参数说明

胆固醇又称胆甾醇。一种环戊烷多氢菲的衍生物。其溶解性与脂肪类似&#xff0c;不溶于水&#xff0c;易溶于乙-醚、氯-仿等溶剂。胆固醇是动物组织细胞所不可缺少的重要物质&#xff0c;它不仅参与形成细胞膜&#xff0c;而且是合成胆汁酸&#xff0c;维生素D以及甾体激素的原料…

[附源码]计算机毕业设计JAVA公益劳动招募管理系统

[附源码]计算机毕业设计JAVA公益劳动招募管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM my…

漏洞深度分析|Apache MINA SSHD反序列化漏洞

项目介绍 Apache MINA SSHD 是一个 100% 纯 java 库&#xff0c;支持客户端和服务器端的 SSH 协议。它的目的不是要替代 Unix 操作系统中的 SSH 客户端或 SSH 服务器&#xff0c;而是为需要 SSH 支持的基于 Java 的应用程序提供支持。 该库可以利用多个 I/O 后端&#xff1a; …

最小二乘法在ISP CCM标定中的简介

一、基础知识 假设我们有16幅名人脸部灰度图像&#xff0c;我们是否可以找到16幅脸部图像的线性组合&#xff0c;使得其线性组合最接近于目标脸部图像呢&#xff1f; 名人库我们知道灰度图像可以用矩阵表示。假设有如下灰度图。 我们可以用矩阵表示为&#xff1a; 我们也可以用…

Python机器学习16——相关向量机(RVM)

本系列基本不讲数学原理&#xff0c;只从代码角度去让读者们利用最简洁的Python代码实现机器学习方法。 背景介绍 学机器学习的应该都知道支持向量机&#xff08;SVM&#xff09;&#xff0c;这个方法在深度学习兴起之前算是很热门的分类方法&#xff0c;在机器学习里面&#…

Go: 通过Fiber构建微服务

文章目录简介1. 微服务2. Fiber&#xff1f;Fiber集成及使用1.安装fiber2. 简单使用3.简单实例小结简介 1. 微服务 微服务或微服务架构是一种体系结构风格&#xff0c;可以将应用程序构建成一个服务的集合&#xff1a; Maintainable 可维修Testable 可测试的Loosely coupled…

毫米波雷达基础知识系列——FFT

毫米波雷达基础知识系列——FFT及DSP优化实现FFT来源FFT为什么快FFT的种类基2FFT推导FFT来源 FFT来源于DFT离散傅里叶变换&#xff0c;DFT的计算公式为&#xff1a; X(k)∑n0N−1x(n)WNknX(k) \sum_{n0}^{N-1} x(n)W_{N}^{kn} X(k)n0∑N−1​x(n)WNkn​ 为什么不直接用DFT计算…

【 java 常用类】日期相关 API 操作

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…