51单片机入门

这篇具有很好参考价值的文章主要介绍了51单片机入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、安装keil5及proteus

keil5安装 相关博客
Keil C是德国KEIL公司开发的单片机C语言编译器。μVision 4是一个窗口环境下的、集成化的C51开发环境。集成了项目管理、文件编辑、编译连接、软件仿真调试等多种功能。

proteus7安装 相关博客
proteus 8.12安装 相关博客

Proteus软件是英国ab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。

二、MCS-51单片机结构与原理

(一).8051单片机基本组成

51单片机入门

(二).8051单片机引脚

单独的单片机芯片是工作无法独立工作的,由此引出单片机最小系统。
单片机最小系统,能使单片机正常工作的最基本元件组成的系统,包括外接电源正负极(VCC40引脚、VSS20引脚),复位电路使单片机初始化,晶振电路为单片机提供时钟脉冲信号。
各种引脚等看完数电模电再来填坑,I/O等学完单片机再来填坑

51单片机入门
51单片机入门

1.电源引脚
2.时钟电路引脚
3.控制信号引脚
4.输入/输出端口

(三) 并行输入/输出端口结构

三、单片机cx51编程基础

Cx51语言所用到的数据、变量、运算符、流程控制语句等与C语言基本相同。

(一).变量定义

C51定义一个变量的格式如下 数据类型 [存储类型] 变量名表,其中数据类型与存储类型可以调换,存储类型可以缺省。

	unsigned int i;//定义无符号整数
	unsigned char bdata value;//定义无符号字符 value,定义在片内RAM位寻址区

为了提高执行效率和资源利用率,在程序运行期间根据数据的不同采用不同的方法进行处理,需要将数据定义为不同的类型。

(二).数据类型

Cx51支持的数据类型
51单片机入门
前8种在c语言中具体介绍,后四种为keil c51新增类型,不支持数组和指针操作。这四种简单了解下,在后面应用时再做详细学习。

  • bit用来定义位变量,位于8051单片机内部RAM位寻址区(20H~2FH)。如果指定bit存储类型只能使用data或者idata
  • sfr用于定义特殊功能寄存器变量,例如对P0口。该变量存储在片内的特殊功能寄存器存储区中,用来对特殊功能寄存器进行读写操作。
  • sbit用于定义特殊功能寄存器位变量,用来对特殊功能寄存器的可位寻址位进行读写操作。
  • sfr16也用于定义特殊功能寄存器,所不同的是它用于操作占两个字节的特殊功能寄存器
	unsigned char bdata value;//定义无符号字符 value,定义在片内RAM位寻址区
	bit value_0 = value^0;
	
	sfr P0 = 0x90;定义P0端口在片内寄存器,通过改变P0值对该端口寄存器(地址0x90)进行操作
	
	sfr16 DPTR = 0x82;// DPTR低8位地址为 0x82 高地址为0x83
	
	sbit P0_0 = P0^0;// 对P0第0位操作可以用P0_0代替

(三).存储类型

在Keil中,片内存储目标代码对变量访问速度快,存储空间有限,片外存储虽然访问速度慢但容量大。
51单片机有片内数据存储区程序存储区,在片内存储区空间不足时需要扩展片外存储区
51单片机入门

  • data区访问速度最快,不过DATA区存储空间有限,除了包含程序变量外,还包含堆栈和寄存器组,因此不可定义过多,以避免影响中断等正常功能。
  • bdata允许位与字节混合访问。
  • idata使用指针来进行寻址和访问。
  • pdata存储在片外存储器的第一页,寻址时只需装入8位地址,相对于xdata要快。
  • xdata寻址需要完整的16位地址。
  • code 将变量存储在程序存储器中,不占用RAM空间。缺点变量只读不能写,因此适合存储常量或者查表类数组数据

(四).Cx51语言程序结构

Cx51语言程序由编写者组织和定义的一个或者多个函数构成,通过函数的有序调用完成预期功能。
函数分为主函数,标准函数库,自定义函数。
51单片机入门

四、简单实现案例

在8051单片机上的P1.0端口接上LED,实现LED周期闪烁。

一些器件名称 CAP 电容;CAP-ELEC电解电容;CRYSTAL 晶振;RES电阻;

原理图
51单片机入门

代码实现

#include<reg51.h> //包含单片机定义寄存器的头文件
sbit led = P1^0; //将led定义为P1.0位
void delay(void) //延时函数
{
   unsigned int i;    //定义无符号整数,最大取值范围65535
   for(i=0;i<20000;i++);//做20000次空循环,以进行延时。                     
}
int main(void ) //主函数
{
  while(1)    //无限循环,以使LED持续闪烁。
   {
	    led =0;  // P1.0输出低电平,灯亮
	    delay(); //延时一段时间
	    led =1;  // P1.0输出高电平,灯灭
	    delay(); //延时一段时间
   }
}

其他

protues如何选择器件?

普通器件
51单片机入门
电源接地等。。。
51单片机入门

总线使用

proteus总线使用及网格标号相关博客

51单片机入门文章来源地址https://www.toymoban.com/news/detail-421660.html

到了这里,关于51单片机入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机Keil+Proteus8.9】控制步进电机+LCD1602显示状态

    步进电机控制 设计思路 电路设计: 选用AT89C51单片机作为电路核心部件,外加LM016L液晶显示屏作为显示,显示步进电机的Fast,Slow,Stop的三个状态 将AT89C51单片机所选引脚与LM016L控制引脚相连,再将数据通过引脚与LCD接收引脚相连。 通过AT89C51单片机P0^0和P0^2两个引脚引出两个

    2024年01月20日
    浏览(55)
  • 【51单片机Keil+Proteus8.9+ADC0804】ADC实验 模拟转数字实验

    一、实验名称 ADC实验 模拟转数字实验 二、设计思路 电路设计 1.选用AT89C51单片机作为电路核心单元,外接8位单通道AD转换器ADC0804芯片和LM016L显示器以及滑动变阻器等其它常用元器件构成电路。 2.将ADC0804芯片的控制引脚RD,WR,INTR接到AT89C51芯片对应引脚,再将ADC0804电压输入引脚

    2024年01月20日
    浏览(41)
  • 51单片机实现简易计算机,Keil4代码Proteus工程一步到位

    目录  前言  Proteus硬件部分 键盘 程序部分 运算代码逻辑(代码解释) LCD屏幕显示运算结果 输入部分 键值判断部分 删除按键的实现 程序执行运算 Hello,大家好。想做关于嵌入式的一些小项目已经很久了,今天借着我们课设的机会,给大家展示我自己对代码逻辑的理解,为了方

    2024年02月08日
    浏览(42)
  • 51单片机入门(1)环境搭建(Keil+ISP)

    在学习51单片机之前,环境搭建是必不可少的一步,本文主要介绍Keil软件和STC-ISP软件的安装 本人只是一个普通的嵌入式低级(初级)玩家,文章主要针对新手,所以大佬要是发现文中有何不妥之处,还请口下留情,若能指出,我一定虚心改正 Keil C51是美国Keil Software公司出品

    2023年04月09日
    浏览(62)
  • Keil uvision5安装——51单片机篇

    目录 一、Keil uvsion5-下载安装 二、Keil uvsion5-软件破解 三、STC官方库添加 四、Keil相关配置 1.中文显示配置 2.消除定义但未被使用函数的警告配置(针对51单片机) 五、程序烧入软件的使用 步骤1:点击下方链接,将文件下载到电脑上。 链接:https://pan.baidu.com/s/1HI-URr7KCL2bHxK5

    2023年04月09日
    浏览(52)
  • KEIL5编辑STC单片机程序

    1、keil5软件正常安装完成。 2、打开STC-ISP软件 3、 下载C51的芯片包(直接安装能编译stc芯片的keil软件,安装后直接把安装目录中的C51拷贝过来),放在keil_v5目录下面 4、新建工程 5、打开老已有工程需要确保C51路径正确,否则编译报错 编译还是报错,清除下,再编译

    2024年01月17日
    浏览(40)
  • keil5 烧录程序到单片机的方法

    Keil是一种常用的单片机开发工具,支持多种单片机芯片。下面详细说明Keil5如何烧录程序到单片机的方法。 编译程序 首先,在Keil5中打开编写好的程序工程,进行编译。编译生成的可执行文件是.hex或.bin格式的文件。在Keil5中,选择Project-Build Target或者按下快捷键F7,进行编译

    2023年04月08日
    浏览(47)
  • keil和proteus联手实操单片机

    学习单片机这部分实践课时,遇到代码保存和格式转换问题,下面,我们针对这个问题进行傻瓜式教学灯塔的实践操作,keil用的是Keil uVision2 软件,proteus用到是8.6版。 第一步,先打开keil,就会发现有file大图标,  打开file,单击file下的new..,出现下面的新界面 然后再这个编

    2024年02月04日
    浏览(53)
  • 【51单片机系列】proteus仿真单片机的串口通信

    本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口,利用软件【串口助手】向单片机发送数据。 proteus仿真

    2024年01月17日
    浏览(49)
  • MDK与 C51安装共存、安装pack、添加STC单片机型号和头文件到Keil中以及keil界面美化

    进入 keil官网产品下载界面 **MDK安装 ** 双击”MDK“安装包,然后按着提示,一步一步安装。 这里我们安装在“D:keil5keil5_MDK”路径 **C51安装 ** 双击**“ C51 ”**安装包,然后按着提示,一步一步安装。 这里我们安装在“D:keil5keil5_C51”路径 ** 此时已完成C51与MDK的环境共存**

    2024年02月07日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包