今天这文章写的很水,看官莫喷。最近写NXP的东西感觉力不从心,重新把51撸一次找找感觉。起名字好难。
就这板子
技术资料连接,敬请下载:链接:
https://pan.baidu.com/s/1esryJhne-oYHOAImTc0gvA 提取码:8888
原理图
去官网还看见了这
还有招聘
手贱搜索了一下这个东西:
提问
开始喷
这,单片机这种东西学会一个,再学一个就没有什么难度了
这里放郭老师得板子资料(我现在的一个群里就有郭老师。。。天天发视频,不知道该怎么说)
STC89C52RC+,妥了
然后添加一下头文件
C:\Keil_v5\C51\INC\STC
接着在这里就可以看到了
选择的时候就会有了
添加一下启动头在里面
STARTUP.A51 这个文件有什么用,有必要添加到工程吗?
如果不添加"startup.a51"文件,编译器就会自动加入一段初始化内存以及堆栈等的代码,这时的内存初始化部分你就无法去控制了,当然这在大部分情况下没什么关系。但是如果你想你的程序在复位后,内存里面的信息依然还保存着(所说的“热复位”),那么你就需要添加该启动文件,并且去里面修改内存初始化部分,不要初始化你需要保留的部分内存。
启动文件. 清理RAM.设置堆栈等.即执行完start.a51后跳转到.c文件的main函数。这些初始化完毕后,还会设置SP指针。对非变量区域,如堆栈区,将不会有赋值或清零动作。
有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。比如掉电保护的时候想保存一些变量,但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现。为什么还要去改? 可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性。
Startup code:启动代码。
在Keil中,启动代码在复位目标系统后立即被执行。启动代码主要实现以下功能:
(1) 清除内部数据存储器
(2) 清除外部数据存储器
(3) 清除外部页存储器
(4) 初始化small模式下的可重入栈和指针
(5) 初始化large模式下的可重入栈和指针
(6) 初始化compact模式下的可重入栈和指针
(7) 初始化8051硬件栈指针
(8) 传递初始化全局变量的控制命令或者在没有初始化全局变量时给main函数传递命令。
关于书籍我推荐一本:
微信可读。
ISP功能是串口传输程序的功能
看TX,RX
ISP就是检测P3.0这个口子是不是有合法的下载命令流
接的晶振
(小声bb,我不是学这东西出身的。。。)
数据类型 | 位数 | 取值范围 | 释义 |
bit | 1 | 0~1 | 位 |
sbit | 1 | 0~1 | 位寻址 |
sfr | 8 | 0~255 | 字节寻址 |
sfr16 | 16 | 0~65535 | 字寻址 |
寻址的意思就是定位一个要操作的地址。
位类型是定义位变量,就0,1.,可以坐函数的入口参数和返回值。
sfr,8个字节位一位,定义内部的所有的8位特殊功能寄存器,占用一个内存单元。
取值为0~255.
sfr16的占用两个内存单元。
sbit的三种用法:
位地址,绝对地址
特殊功能寄存器^位地址(第几位0~7之间的常数)
字节地址(常数作为基地址),在这个基础上定义一个位变量
DATA区,数据段使用,直接寻址,访问速度快,但是哇有点小
SMELL模式,都在内部存储区,速度快,地方小。二是紧凑模式,变量都在XDATA内,大大模式,访问有点慢。
内部有4个不同的工作寄存器组,每组里面8个(R0~R7),运行的时候只有一组寄存器在用,发生中断的时候,切换寄存器的组,然后为了当前的寄存器组不发生数据覆盖。相当于我6个电脑,一个软件开一个电脑。实现了现场保护和恢复断点的功能。
记得添加
#include "STC89C5xRC.H"
void main()
{
P0 = 0xFE;
while (1)
;
}
写自己的晶振数
HEX打勾
STC官方的烧录工具
是我土狗了,需要开关电源才可以下载。
#include "STC89C5xRC.H"
void delay(unsigned int t);
void main()
{
while (1)
{
P2 = 0xFC;
// p2.0~p2.1
delay(500);
P2 = 0xFF;
// p2口全低电平
delay(500);
};
}
void delay(unsigned int t)
{
unsigned int x, y;
for (x = t; x > 0; x--)
{
for (y = 110; y > 0; y--)
{
}
}
}
可以调试,哪些看不起51的人,我也不知道咋想的。。。
本文的参考资料:
https://www.stcmcudata.com/
https://blog.csdn.net/dldw8816/article/details/42266193
http://www.stcmcudata.com/datasheet/stc/STC-AD-PDF/STC89C51RC-RD.pdf
http://www.stcmcudata.com/STCISP/stc-isp-15xx-v6.88L.zip
https://github.com/wongsyrone/STC89C52RC
联系客服