随笔分类 -  单片机

摘要:ISP:in system programming, 在系统编程IAP: in applicaTIn programming 在应用编程什么是ISP:用写入器将code烧入,不过,芯片可以在目标板上,不用取出来,在设计目标板的时候就将接口设计在上面,所以叫“在系统编程”,即不用脱离系统;什么是IAP 阅读全文
posted @ 2021-08-26 15:00 myrj 阅读(340) 评论(0) 推荐(0)
摘要:以ATMEL公司的AT89S51/AT89S52单片机为例,介绍ISP技术原理,及ISP在线编程器的实现方法。 AT89S51/AT89S52单片机的ISP引脚共有4个:RST、MOSI、MISO和SCK。 各引脚的功能如下:RST为在线编程输入控制端,仅在ISP下载过程中保持高电平,在系统正常工作 阅读全文
posted @ 2021-08-26 06:39 myrj 阅读(1408) 评论(0) 推荐(0)
摘要:从事单片机设计和开发的技术人员目前一般采用以下常用的方法开发单片机产品:首先利用单片机仿真设备进行硬件和软件的仿真调试,然后将调试通过的目标代码用程序烧写器固化到单片机的程序存储器中。在这个过程中,程序烧写器是必不可少的开发工具。程序烧写器一般价格较昂贵,对于初学者来说是一笔不小的开支,并将直接影响 阅读全文
posted @ 2021-08-26 06:26 myrj 阅读(1461) 评论(0) 推荐(0)
摘要:看门狗:watch dog timer看门狗计时器(WDT)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗置零(喂狗),重新开始计数。如果看门狗增加到设定值就认为程序没有正常工作,强制整个系统复位 阅读全文
posted @ 2021-08-24 11:41 myrj 阅读(666) 评论(0) 推荐(0)
摘要:#include<reg52.h> //包含单片机寄存器的头文件 #include<string.h> //使用字符串 #include<intrins.h> //单片机头文件 #include<lcd1602.h> //液晶显示lcd1602的头文件 //#include<24c04.h> //2 阅读全文
posted @ 2021-08-21 07:14 myrj 阅读(102) 评论(0) 推荐(0)
摘要:具体提示:11.c(15): warning C206: 'set_parameters': missing function-prototype表明函数set_parameters是在main后面定义的,主函数调用时不能识别,只是需要在main函数前声明一下即可 方法:将相应函数定义的第一行复制到 阅读全文
posted @ 2021-08-21 06:56 myrj 阅读(38605) 评论(0) 推荐(1)
摘要:STC89C52RC工作电压:5.5-3.5Vflash程序存储器:8KSRAM:512字节EEPROM:9K字节定时器:3个降低EMI:是双倍速:非I/O口:59个支持掉电唤醒外部中断:4个内置复位:有看门狗:有ISP:有IAP:有兼容传统落后型号:89C52 阅读全文
posted @ 2021-08-19 19:25 myrj 阅读(1340) 评论(0) 推荐(0)
摘要:在单片机编程中往往需要长期保存某些数据,尤其是一些配置参数,这样掉电后这些数据仍然还在。于是就开始了FLASH读写的编程,经过了一天多的努力,终于把FLASH的读写调通了。主要有三点: 一、读FLASH 要用MOVC指令才能读FLASH,这个比较简单。 二、写FLASH 严格按照下面的流程即可完成写 阅读全文
posted @ 2021-08-19 17:16 myrj 阅读(565) 评论(0) 推荐(0)
摘要:1、自定义工程名称。2、选择英文路径,否则会丢 失启动文件而无法编译通过, 需要手动添加启动文件: startup_stm32l431xx.s3、选择MDK-ARM V5开发软件, 即KEIL5软件 代码编写说明1、按键KEY1按下时,把数据写入MCU的flash2、按键KEY2按下时,把写入MCU 阅读全文
posted @ 2021-08-19 16:56 myrj 阅读(1636) 评论(0) 推荐(0)
摘要:单片机内的Flash与EEPROM作用及区别 单片机运行时的数据都存在于 RAM(随机存储器中,在掉电后RAM中的数据是无法保存的,那么怎样使数据在掉电后不丧失呢 ?这就需要使用EEPROM或 FLASHROM等存储器来实现。在STC单片机中内置了 EEPROM(其实是采用IAP技术读写内部FLAS 阅读全文
posted @ 2021-08-19 16:52 myrj 阅读(1780) 评论(0) 推荐(0)
摘要:eeprom.c #ifndef _EEPROM_H_ #define _EEPROM_H_ #include <intrins.h> #include <reg52.h> typedef unsigned int uint; typedef unsigned char uchar; /****** 阅读全文
posted @ 2021-08-19 14:59 myrj 阅读(783) 评论(0) 推荐(0)
摘要:关于STC89C52: 1、STC89C52只有512字节的的RAM,包括2部份,一是256字节的内部RAM,二是256字节的外部RAM;STC89C54以上的芯片才有1K的RAM(内256+外1024)。 2、1K的EEPROM(应为2K)出厂时内置有支持串行下载功能的代码,配合官方下载软件完成代 阅读全文
posted @ 2021-08-19 14:46 myrj 阅读(1764) 评论(0) 推荐(0)
摘要:在编译完成后观察编译结果,如果能编译成功,应该有类似下面的信息:“program size:data=9.0,xdata=1,code =2345”, 其中data的整数部份就是你实际需要的内部RAM字节数, xdata是你实际需要的外部RAM字节数, code是代码长度。 阅读全文
posted @ 2021-08-19 07:50 myrj 阅读(247) 评论(0) 推荐(0)
摘要:STC ISP 例子 https://www.stcisp.com/stcisp-demo-code.html 阅读全文
posted @ 2021-08-18 20:33 myrj 阅读(103) 评论(0) 推荐(0)
摘要:ROM,RAM和FLASH的区别,下面主要是具体到他们在单片机中的作用。 一、ROM,RAM和FLASH在单片中的作用ROM——存储固化程序的(存放指令代码和一些固定数值,程序运行后不可改动)c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件 阅读全文
posted @ 2021-08-18 18:45 myrj 阅读(1091) 评论(0) 推荐(1)
摘要:单片机从外部ROM读取的内容写入外部RAM ROM的地址范围2000H~3FFFH 而RAM地址6000H~7FFFH 现在问题是将ROM以TAB为首地址的32个单元的内容依次读出并写入外部RAM以4000H为首地址的区域去。 流程如图 代码如下 MOV P2,#40H ;开始地址为#40h MOV 阅读全文
posted @ 2021-08-18 18:13 myrj 阅读(1259) 评论(0) 推荐(0)
摘要:ROM(Read Only Memory):只读存储器内:以程序计数器PC作为16位指针,没每读一字节,(PC)+1->PC有些指令有修改PC的功能,例如转移类指令和MOVC指令 外:从PC取出当前ROM的16位地址,分别由P0口(低8位)和P2口(高8位)同时输出。当信号有效时,外ROM将相应地址 阅读全文
posted @ 2021-08-18 17:58 myrj 阅读(500) 评论(0) 推荐(0)
摘要:命令窗口:SAVE DATA.txt c:0x00,0x20 将代码区的0X00到0X20间的代码保存到当前工程目录,文件名为data.txt保存结果与实际代码的对照:data.txt文件内容: 代码区取图: 阅读全文
posted @ 2021-08-18 17:31 myrj 阅读(55) 评论(0) 推荐(0)
摘要:程序存储器向累加器A传送指令 MOVC A,@A+DPTR 本指令是将ROM中的数送入A中。本指令也被称为查表指令,常用此指令来查一个已做好在ROM中的表格(类似C语言中的指针) 说明: 此条指令引出一个新的寻址方法:变址寻址。本指令是要在ROM的一个地址单元中找出数据,显然必须知道这个单元的地址, 阅读全文
posted @ 2021-08-17 18:03 myrj 阅读(738) 评论(0) 推荐(0)
摘要:单片机具有两条查表指令,用于从 ROM 中读出预存的数据: MOVC A, @A + PC MOVC A, @A + DPTR 其中前一条指令的用法,比较难,使用的时候,需要计算一个“偏移量”。不了解“指令的字节数”的人,都不清楚应该如何计算。 第一条指令 第一条指令中,Rn代表的是R0-R7。第二 阅读全文
posted @ 2021-08-17 17:56 myrj 阅读(2783) 评论(0) 推荐(0)