stc51单片机_stc51单片机转stc15芯片 - CSDN
  • MCS-51单片机的定时器/计数器概念 非常好的寄存器关系图 C52单片机定时器2介绍 嵌入式小项目练习-光电设计竞赛-寻迹小车-01-赛题与流程图 嵌入式小项目练习-光电设计竞赛-寻迹小车-02-模块分析 嵌入式小项...
    1. 上拉电阻与下拉电阻用途
    2. 单片机特殊功能寄存器表(AT89C51)
    3. C51单片机定时器/计数器中断功能详细分析(一)
    4. C51单片机定时器/计数器中断功能详细分析(二)
    5. MCS-51单片机的定时器/计数器概念 非常好的寄存器关系图
    6. C52单片机定时器2介绍
    7. 嵌入式小项目练习-光电设计竞赛-寻迹小车-01-赛题与流程图
    8. 嵌入式小项目练习-光电设计竞赛-寻迹小车-02-模块分析
    9. 嵌入式小项目练习-光电设计竞赛-寻迹小车-03-寻迹算法分析与源代码
    10. SPI协议
    11. 嵌入式-iic通信的一些概念
    12. (转)嵌入式-IIC总线协议
    13. 仅三行代码的按键扫描程序,绝对够经典(转载学习)

    蓝桥杯省赛专题(自己搞完就是省一)

    1. 单片机比赛准备01-蓝桥杯-CT107D硬件开发平台熟悉
    2. 单片机比赛准备02-蓝桥杯-模块练习
    3. 单片机比赛准备03-蓝桥杯-客观题及温度芯片的使用
    4. 单片机比赛准备04-蓝桥杯-eeprom、时钟芯片、AD芯片的使用
    5. 单片机比赛准备05-蓝桥杯-第三届初赛模拟题(模拟传送装置)
    6. 单片机比赛准备06-蓝桥杯-第四届初赛模拟题(自动售水机)
    7. 单片机比赛准备07-蓝桥杯-第五届初赛模拟题(模拟智能灌溉装置)
    8. 单片机比赛准备08-蓝桥杯-第六届初赛模拟题(温度采集和控制装置)
    9. 第十届-蓝桥杯-单片机组比赛总结(电压频率测试器)

    电赛

    电赛校赛-单相逆变电源设计(单片机部分--C52仿真测频+串口发送机与串口接收机)

    展开全文
  • 时间:2015-10-10 原作者:朱志伟 文章来源:http://www.360doc.com/content/15/1103/16/9200790_510464992.shtml 关键字   &...amp

    时间:2015-10-10 原作者:朱志伟
    文章来源:http://www.360doc.com/content/15/1103/16/9200790_510464992.shtml

    • 关键字

             IAP15F2K61S2    STC Monitor-51    在线仿真    监控程序

    • 摘要

            51内核单片机在线仿真调试是一种取代专业仿真器的有效手段。利用ISP/IAP方法和STC Monitor-51监控程序,以及单片机集成开发环境Keil C51的在线仿真功能的支持,STC公司的IAP15F2K61S2单片机实现了在线仿真调试功能,为单片机教学和应用开发提供了一条新的途径。

    • 引言

            当今很多院校中,单片机的教学仍以经典的51内核单片机为主。其实验与应用开发中最重要的环节是软、硬件综合调试,通常采用的方法主要有两种:一种是使用仿真器,优点是功能齐全,但是价格较高,一般厂家研发采用;另一种是使用软件仿真和芯片直接烧写验证的方法,其成本虽然低,但在程序或硬件出现疑难问题时,很难找到原因。
            实际上,还有一种成本低且具有在线仿真调试功能的技术是在线仿真调试,它特别适合初学者。“在线仿真调试”是指:通过Keil C51编译器,结合单片机中的监控程序,对系统的应用程序和硬件进行仿真调试,可以让单片机以单步、断点、全速等运行模式来执行程序。在线仿真调试是单片机应用开发过程中的高效方法,国内STC公司的51内核单片机IAP15F2K61S2便具有在线仿真调试功能。


         1、在线仿真调试概述

            Keil C51编译器开放了调试器与目标芯片的接口,只要芯片厂商提供自己特有的驱动程序(动态链接库DLL),就能使Keil调试器在不改变图形界面的情况下支持相应的硬件仿真调试。
            STC Monitor-51是STC公司开发的内嵌Keil C51编译器的目标系统调试模块,它是一个实时监控程序,可利用PC机的USB口与目标端进行通信。在线仿真调试系统的结构示意图如图1所示。

    图1 在线仿真调试系统的结构示意图

            PC机端由Keil调试器和STC Monitor-51的驱动程序stcmon51.DLL组成,stcmon51.DLL是STC公司自主开发的Keil仿真驱动协议,功能相比于 Keil自带的Mon51.DLL有较大的突破,例如:更改通信接口为真正的USB口,支持Keil Flash Download功能,支持软件复位,增加断点数量等。目标端由USB转串口芯片CH340、51内核单片机及STC Monoitor-51监控程序组成。Keil调试器将用户的调试指令通过PC机的USB口传送给目标端;目标端的USB转串口芯片将其转换为TTL电平后发送给单片机,最后由单片机中驻留的STC Monitor-51监控程序分析并执行。


         2、在线仿真调试实现

          2.1 IAP15F2K61S2的存储器结构

            STC Monitor-51具有载入并执行用户程序的功能,所以要求单片机的程序存储器为Flash ROM,并具有ISP功能。ISP(In System Programming,在系统编程)指电路板上器件不用取出,就可以写入用户代码,已经编程的芯片也可以用ISP方式擦除或再编程。
            IAP15F2K61S2单片机的程序存储器与数据存储器是独立编址的。IAP15F2K61S2单片机内部在物理上有4个相互独立的存储器空间;程序存储器(程序Flash)、片内基本RAM、片内扩展RAM与EEPROM(数据Flash)。IAP15F2K61S2单片机片内集成了61 KB的程序Flash存储器,其地址为0000H~F3FFH。用户可以使用的最大程序空间为55 KB,整个程序Flash存储器的分布图如图2所示。

    图2 IAP15F2K61S2程序FLASH存储器的分布图

            很多单片机在出厂时已经将具有Boot loader功能的程序固化在系统区中,因此无需编程器就可通过ISP下载软件将用户程序下载到Flash ROM中。STC公司的单片机可以进行ISP串行下载程序,就是因为系统区中有芯片出厂时就已经固化的ISP引导码。如果想要下载应用程序至单片机,先要在下载软件界面上进行相应选择,然后再上电,当单片机检测到上位机中有特定的下载条件时,便启用ISP下载功能将程序下载至用户程序区;否则,单片机便会从用户应用程序区中开始执行代码。
            STC公司的最新ISP下载软件stc-isp-15xx-v6.77.exe还可以将STC Monoitor-51监控程序下载到监控程序区,从而实现在线仿真调试功能。

          2.2 IAP15F2K61S2的ISP和IAP实现

            在线仿真调试功能的实现依赖于用户系统内部的监控程序和PC机上的下载程序。其具体实现主要利用IAP(In Applicatin Programming,在应用编程)技术,即在程序运行时程序存储器可由程序自身进行擦写。IAP15F2K61S2单片机的IAP功能,与以下几个特殊功能寄存器有关。
            IAP_DATA:ISP/IAP数据寄存器,从Flash读出的数据放在此处,写入Flash的数据也需放在此处。
            IAP_ADDRH:ISP/IAP地址寄存器高8位。
            IAP_ADDRL:ISP/IAP地址寄存器低8位。
            IAP_CMD:ISP/IAP命令寄存器,须IAP_TRIG触发方可生效。
            IAP_TRIG:ISP/IAP命令触发寄存器。
            IAP_CONTR:ISP/IAP控制寄存器。
            当IAPEN(IAP_CONTR.7)=1时,只有对IAP_TRIG先写入0x5A、再写入0xA5,ISP/IAP命令才会生效。
            ISP/IAP操作完成后,IAP命令寄存器、IAP地址高8位地址寄存器和低8位地址寄存器的内容都不变。如果需要对下一个地址的数据进行 ISP/IAP操作,则要手动将该地址的高8位和低8位对应写入地址寄存器中。每次进行IAP操作时,都要对IAP_TRIG先写入0x5A,再写入 0xA5,ISP/IAP命令才会生效。
            ISP/IAP命令寄存器IAP_CMD的格式如表1所列。通过对命令寄存器IAP_CMD的MS1和MS0位进行赋值,可以实现相应功能。

    表1 IAP_CMD模式选择

            IAP15F2K61S2程序在用户应用程序区时,不仅可以对数据Flash区(EEPROM)进行字节读、字节编程和扇区擦除,而且可以修改用户应用程序区。扇区擦除程序示意性代码如下所示,其他ISP/IAP操作类似。
            IAP_ADDRH=EE_address/256; //送扇区地址高字节(地址需要改变时才需重新送地址)
            IAP_ADDRL=EE_address%256; //送扇区地址低字节(512字节/扇区)
            IAP_CONTR=0xS0; //设置等待时间,允许ISP/IAP操作,送一次就够
            IAP_CMD=3; //送扇区擦除命令,命令不需改变时,不需重新送命令
            IAP_TRIG=0x5A;
            IAP_TRIG=0xA5; //ISP/IAP触发命令

          2.3 监控程序

            为配合Keil调试器的硬件仿真调试,监控程序应具备相应的单步、断点设置、ID读取等功能。仿真开始时,监控程序接收命令,判断相应的功能操作,再执行。STCMonoit or-51监控程序只能在程序中给定点处监测,调试时需要占用程序空间,属于一种侵入式的调试,其工作流程如图3所示。

    图3 STC Monoitor-51监控程序工作流程图
          2.4 IAP15F2K61S2在线仿真调试过程

            以前的51内核单片机在线仿真调试时,需要根据硬件结构,修改应用程序和Keil C51集成开发环境的参数,初学者不易掌握,从而影响普及推广。STC公司的IAP15F2K61S2是十分易用的在线仿真调试芯片,只需利用最新ISP 下载软件stc-isp-15xx-v6.77.exe,将监控程序下载到单片机中,就可轻松地实现在线仿真调试功能。IAP15F2K61S2线仿真调试过程如下。

            2.4.1 安装仿真驱动

            运行ISP下载软件stc-isp-15xx-v6.77.exe,在“Keil仿真设置”页面中单击“添加MCU型号到Keil中”按钮,在出现的目录选择窗口中,确定到Keil的安装目录(一般可能为“C:\Keil\”)。添加头文件的同时也会安装STC的STC Monitor-51仿真驱动stcmon51.DLL。

            2.4.2 创建仿真芯片

            将一颗IAP15F2KG1S2通过目标板连接到电脑的USB口,然后在“Keil仿真设置”页面中单击“将IAP15F2K61S2设置为仿真芯片”按钮,再给目标板上电,当程序下载完成后仿真器便制作完成。

            2.4.3 创建项目工程

            若上一步的驱动安装成功,则在Keil中新建项目工程、选择芯片型号时,便会有“STC MCU Database”的选择项,然后从列表中选择相应的MCU型号(目前STC支持仿真的型号只有STC15F2K60S2),单击“确定”完成选择,再按Keil的一般使用方法添加源程序到项目工程中,若编译无误,则可以进行下面的项目设置。

            2.4.4 硬件仿真驱动选择

            选择Project中的Opertions for Target’Target1’,进入“Debug”设置页,在右侧的硬件仿真驱动下拉列表中选择“STC Monitor-51 Driver”项,然后单击“Settin gs”按钮,对串口的端口号和波特率进行设置,波特率一般选择115 200或者57 600。到此设置便完成了。

            2.4.5 在线仿真调试

            在这个Keil工程下,按下“Ctrl+F5”即可开始在线仿真调试。若硬件连接无误,将会进入到类似于常用的软件调试,并在命令输出窗口显示当前的仿真驱动版本号和当运行、全速运行等进行仿真调试。调试中的注意事项主要有:断点设置的个数不要太多,否则会影响调试速度;若仿真源代码为汇编程序,则第一条语句必须是长跳转语句,不能使用其他语句;仿真中,不能使用与P3.0和P3.1引脚相关的中断和功能。

    • 结语

            结合IAP15F2K61S2单片机与监控程序STC Monoitor-51、Keil C51集成开发软件,提供了一种成本低、功能强的在线硬件仿真调试技术,降低了使用单片机开发工具的门槛,特别适用于单片机初学者以及学校的教学活动,也为选用51内核单片机进行应用开发带来了极大便利,只需下载监控代码就可以进行在线仿真调试。

    展开全文
  • stc89c51单片机

    2017-12-05 17:23:46
    从一个小白接触51单片机并不是一件容易的事,在我看来,学习51最主要的是学习其内部电路以及各个引脚功能。  51的 主要性能:  与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态...

          从一个小白接触51单片机并不是一件容易的事,在我看来,学习51最主要的是学习其内部电路以及各个引脚功能。

          51的 主要性能:

          与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器 、 32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针、掉电标识符 。

      功能特性描述::::

      STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程 Flash

           51内部电路图


     

    VCC/GND:供电电源。
    P0口:可以被定义为数据/地址的低八位,能够用于
    外部程序/数据存储器。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
    P1口:标准输入输出I/O,P1口管脚写入1后,被
    内部上拉为高,可用作输入。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:既可用于标准输入输出I/O,也可用于外部程序存储器或数据存储器访问时的高八位地址。P2口在FLASH编程和校验时接收高八位地址信号控制信号。P3口:既可以作标准输入输出I/O,也可作为AT89C51的一些特殊功能口, 管脚 备选功能
    P3.0 RXD(串行输入口)
    P3.1 TXD(串行输出口)
    P3.2 /INT0(外部中断0)
    P3.3 /INT1(外部中断1)
    P3.4 T0(记时器0外部输入)
    P3.5 T1(记时器1外部输入)
    P3.6 /WR(外部数据存储器写选通)
    P3.7 /RD(外部数据存储器读选通)
    RST:复位输入。当
    振荡器复位器件时,要保持RST脚两个机器周期高电平时间。
    ALE/PROG:当访问外部存储器时,地址锁存允许的
    输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
    /EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有
    内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
    XTAL1:反向振荡放大器的输入及内部
    时钟工作电路的输入。
    XTAL2:来自反向振荡器的输出

    展开全文
  • STC51单片机使用手册,中文版,对于初学的小伙伴们有很大帮助。
  • 51单片机的串口通信,是全双工的,就是可以同时收/发的,互相不影响的。 串口是可以同时收/发的,虽然都是用SBUF,但却是两个独立的寄存器,互不影响,只是都叫一个名,SBUF。 但是,对于接收或发送,确实是接收到一...

    首先请大家认真看下预备知识:_
    (耐心一点)
    51单片机的串口通信,是全双工的,就是可以同时收/发的,互相不影响的。
    串口是可以同时收/发的,虽然都是用SBUF,但却是两个独立的寄存器,互不影响,只是都叫一个名,SBUF。
    但是,对于接收或发送,确实是接收到一个字节以后才能接收下一个,不可能同时接收几个。对于送,也是同样的,发送一个字节数据后,要等发送完成了,才能再发下一个。
    接收和发送,可先定义一两个变量,如,接收用rec变量保存,发送数据在send变量中。
    发送时,SBUF=send;while(TI==0);TI=0;//这是用查询方式发送的。当一个字节的数据发送完成后,就会自动置TI=1,所以,可以查询TI=1时,就说明是发送结束了。如果是允许中断,就是会产生中断,判断TI=1,就是发送中断,要用指令清0,就是TI=0;
    接收时, 当收到一个数据后,也会自己置RI=1,通常,接收都是中断方式,所以, 当RI=1, 就会产生中断。而响应中断,执行中断程序,就要用指令清0,即中断中判断是RI=1,说明是接收中断,RI=0; 清除RI。
    接 收数据:rec=SBUF; 就行了。如果是接收一组数据,可以定义一个数组,用数组保存接收一组数据就行了。
    SBUF中不能存放数据,收到后必须立即读取,否则,下一个数据到了就被替代了。RI和TI置1,是硬件自动的,就是这么设计的,想改也改不了的。
    多个字节发送和接收,可以用循环控制次数。
    下面附上代码:(具体原理不再讲述可以自己搜一下学一学)

    /**************************************************************************************
    *		              串口通信实验												  *
    实现现象:下载程序后打开串口调试助手,将波特率设置为4800,选择发送的数据就可以显示
    			在串口助手上。
    注意事项:无。																				  
    ***************************************************************************************/
    
    #include "reg52.h"			 //此文件中定义了单片机的一些特殊功能寄存器
    
    typedef unsigned int u16;	  //对数据类型进行声明定义
    typedef unsigned char u8;
    
    
    /*******************************************************************************
    * 函数名         :UsartInit()
    * 函数功能		   :设置串口
    * 输入           : 无
    * 输出         	 : 无
    *******************************************************************************/
    void UsartInit()
    {
    	SCON=0X50;			//设置为工作方式1
    	TMOD=0X20;			//设置计数器工作方式2
    	PCON=0X80;			//波特率加倍
    	TH1=0XF3;				//计数器初始值设置,注意波特率是9600的
    	TL1=0XF3;
    	ES=1;						//打开接收中断
    	EA=1;						//打开总中断
    	TR1=1;					//打开计数器
    }
    
    /*******************************************************************************
    * 函 数 名       : main
    * 函数功能		 : 主函数
    * 输    入       : 无
    * 输    出    	 : 无
    *******************************************************************************/
    void main()
    {	
    	UsartInit();  //	串口初始化
    	while(1);		
    }
    
    /*******************************************************************************
    * 函数名         : Usart() interrupt 4
    * 函数功能		  : 串口通信中断函数
    * 输入           : 无
    * 输出         	 : 无
    *******************************************************************************/
    void Usart() interrupt 4
    {
    	u8 receiveData;
    
    	receiveData=SBUF;//出去接收到的数据
    	RI = 0;//清除接收中断标志位
    	SBUF=receiveData;//将接收到的数据放入到发送寄存器
    	while(!TI);			 //等待发送数据完成
    	TI=0;						 //清除发送完成标志位
    }
    
    

    我的单片机是STC90C516RD+属于51系列的,我的晶振频率是11.899MHZ。
    对于初值的计算机可以使用如下软件:
    在这里插入图片描述

    其中注意:(1)计算初值时,波特率是加倍之前(对于SMOD=1时这种情况)的波特率。
    (2)软件是51波特率初值计算,还有一个是定时器初值计算,不要下载错误
    下面就是烧录程序了,连接好USB线,打开串口助手软件,设置波特率4800
    如下图:
    在这里插入图片描述
    枣红色框框里面是波特率设置的地方,波特率为4800,绿色框框和红色框框(挨着绿色的那个)是模式的设置,文本模式如图,hex模式则是数字(16进制的)。

    展开全文
  • http://www.52solution.com/news/80029883.html七大主流单片机最全面对比:51/STM32/MSP430/STC/TMS/PIC/AVR sunny 2018-01-26单片机现在可谓是铺天盖地,种类繁多,各个厂商们也在速度、内存、功能上各有特点,...
  • STC51单片机入门_C语言

    2020-07-30 23:33:34
    STC 51单片机,C语言入门教程,入门必备,共700多页
  • 基于stc51单片机的循迹智能小车程序,车模是有四个电机,差速过弯。
  • 使用stc51单片机驱动oled显示屏的c程序,适用于keil4开发。
  • stc51单片机开发板典型电路原理图,单片机外围器件接口
  • win7下的stc51单片机开发板驱动程序和stc单片机下载下载软件,本人用的是联想ibm sl410 笔记本,系统型号,win7家庭普通版 测试过的,有学习单片机,使用开发板的朋友可以下载下来看看 有问题的可以随时评论哈
  • STC51单片机IAP15W4K58S4最小系统板-教程资料-技小新-基本例程.zip
  • stc51单片机数据手册

    2020-07-21 09:56:52
    数据手册,用于查询stc51编程的时候需要的各种指令,以及单片机stc51的各种参数
  • 熟练学会这100道51单片机的题,基本的小项目是没啥问题了,要精进,需掌握好电子基础知识.
  • STC51单片机PL2303可用驱动 STC51单片机PL2303可用驱动
  • *外中断INT0--------void intsvr0(void) interrupt 0 using 1 *定时/计数器T0-----void timer0(void) interrupt 1 using 1 *外中断INT1--------void intsvr0(void) interrupt 2 using 1 *定时/计数器T1-----void ...
  • STC51单片机与WIFI模块的通信程序,UDP通信协议,WIFI模块为TTL电平,RX、TX与51的P3.0、P3.1相联,在连接路由器的PC端用串口助手配合调试将会更加方便。
  • STC51单片机一般是通过串口线下载程序到MCU。但是,有时候单片机放在作品上,串口线不够长,不方便下载,或者频繁拔插单片机,也不方便。 本方法,通过笔记本蓝牙,蓝牙串口模块HC-05,即可实现STC51单片机无线下载...
  • #include #define uchar unsigned char unsigned char rtemp,sflag; unsigned char code Buffer[] = "Welcome To The MCU World."; //所要发送的数据 unsigned char *p; unsigned char TestBuff[3];
  • 在计算机控制系统中,经常需要进行定时控制和延时,对外部事件进行计数和检测,通常采用一下三种方法来实现定时和计数: 1) 硬件法。通过搭建硬件电路完成,优点是不占用CPU时间,但要求改变定时时间时,只能通过...
1 2 3 4 5 ... 20
收藏数 6,126
精华内容 2,450
关键字:

stc51单片机