经过查阅,可以用wiz和typora联动的方式记录笔记,这样一个文件夹里既可以用typora也可以用内置编辑器(一种富文本编辑器),注意同一个文件不能用不同的编辑器,否则会错乱。以下,我列举了用typora的几点原因:
-
我经常用typora记一些需要给别人看的,也就是说在别人电脑上显示时排版和自己编辑时一样的文档,他里面的大纲能自动生成,方便别人阅读,排版看着确实比较舒服。比如我经常用来用typora来记录一些论文文献信息(大纲比较多,用typora比较方便)。
-
同时,我也经常用typora记一些需要用到latex公式的地方,否则用wiz的内置编辑器时,只能保存公式的图片,不方便下次拷贝公式,用这种方式排版也比较好看,比如:
-
行公式: e i π + 1 = 0 e^{i\pi}+1=0 eiπ+1=0
-
行间公式(可以设置自动编号):
-
e i π + 1 = 0 e^{i\pi}+1=0 eiπ+1=0
-
-
另外,我可以用typora实现类上面这种引用功能,这会让文档看上去的渲染效果更好一点。
-
其余的功能,比如加粗、斜体、高亮、下标H2O、上标28、
删除线,他们的用处相对于wiz的内置编辑器没有突出优点。
当然,typora很大程度上也比不上wiz的内置编辑器,我列举了几种不得不使用wiz内置编辑器的情况:
- 我不知道typora如何让文本居中显示,所以有时候插入图片就很鸡肋,而且不能随意拖动鼠标修改图片大小。typora中单张图片独居一行时是可以自动居中的,多张图片并列一行时,默认是居左显示的。如果希望多张图片并列居中,那么就需要给它们俩打上css标签,如下:
<center class="half"> //居中时,你要添加的条件
<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1ggnfolw5kxj30u00u0qe5.jpg" width="300"/>
<img src="https://tva1.sinaimg.cn/large/007S8ZIlgy1ggnfolw5kxj30u00u0qe5.jpg" width="300"/>
</center> //居中时,你要添加的条件
- typora的代码块功能背景色不能调节,白花花的一片,高亮显示少得可怜(只有行代码可以用
这种方式
来显示),但是轻量级的使用还是可以的。此外,typora渲染实际上就是用css来实现的,所以你不嫌麻烦的话可以去网上下载css文件,然后在typora的偏好设置中添加主题(打开主题文件夹),来渲染代码高亮。
#include "reg52.h"
sbit led1 = P3^7;
sbit led2 = P3^6;
void main()
{
led1 = 0;
led2 = 0;
while(1);
}
- typora的表格功能也十分鸡肋,完全比不上word或者wiz内置编辑器,而且表格中不能插入图片。不能设置单元格单独的对齐方式,只能将其整列用一个对齐方式。但是我们用来记一些不复杂的内容也足够用了。
表头 | 表头 | 表头 |
---|---|---|
单元格左对齐 | 单元格右对齐 | 单元格居中对齐 |
对齐 | 对齐 | 对齐 |
- typora没法调整字体大小,没法调整字体颜色,没法调整字体背景色。
关于链接和书签(很有用):超链接可以链接到本文档中的书签、标题、本地的文件夹、本地的其他文件、本地的软件、互联网上的网址等等,建立完毕后,在指定位置只要按住ctrl并点击这个链接,就能自动跳转到本地书签所在位置、标题所在位置、打开本地文件夹窗口、打开本地其他文件、打开本地软件、通过浏览器打开互联网网页等等。
-
对于word来说,建立超链接和书签十分简单:
- 新建超链接:选中word中某段话,然后只需要ctrl + K即可,接着按照提示建立超链接,即可
- 给本地文档的某段话打上书签也十分简单,只需要选择这段话后,在工具栏 / 插入 / 点击链接一栏中的书签,即可
- 超链接是绝对地址的好处:word建立超链接后,假设你不考虑把这个word文档打包到新的电脑,那么你在这台电脑上随意怎么移动文档的位置,由于超链接是绝对地址,那么这个超链接是一直有效的(前提是你不把被链接的文件移到别的路径中去)。
- 超链接是绝对地址存在的问题:
- 问题1:word建立超链接后,如果你被链接的文件夹的位置需要改变,也就是将其移动到别的路径中去,那么很显然,你在word中的链接肯定会失效,会显示“无法打开指定的文件”。
- 问题2:word建立超链接后,如果你需要考虑这篇文档是否要在别的电脑上使用,以超链接打开本地文件夹窗口为例,如果你的文档需要在别的电脑上使用,那么你极有可能是无法通过超链接打开这个文件夹的,原因有两点:1、你的文件夹并没有和word文档一起被打包到新的电脑,2、你的文件夹即使和文档一同打包到新的电脑,但是文档中那个超链接的地址(绝对地址)在新电脑中没法识别。
- 上述问题的解决方法:
- 问题1的解决方法:将被链接文件夹和word文档一同放在同一个目录(这个目录只要求包括这两个文件),然后将这个目录一起移动到别的路径,也就是说保证被链接文件夹和word的相对路径没有改变。
- 问题2的解决方法:将被链接文件夹和word文档一同放在同一个目录(这个目录只要求包括这两个文件),然后将这个目录一起打包到新的电脑中去,也就是说保证被链接文件夹和word的相对路径没有改变。
- 上述问题解决方法背后的原理(适用于所有东西,word、wiz、typora):有些人在插入完毕超链接后,鼠标悬停在上面查看路径,肯定有疑问:怎么都是绝对路径的,我该怎么设置相对路径呢?答案是:不需要你设置相对路径,你只要按照上面的方法移动被链接文件和word文档,那么它们的相对路径总是不变的,反应出来就是当你移动这个目录后,重新打开word文档,word中超链接的绝对地址会被自动修改。当然前提是你移动文件时保证两者相对路径不变,如果改变,移动后重新打开word文档,里面的超链接地址不会被改变的,也就是超链接失效了。
-
对于wiz来说,我们在编辑富文本文档时,因为我们在wiz中出现的所有文档都在同一个文件夹中,于是我们只要下载了云笔记,原先所有的文件都会被下载下来,所以我们不管是在自己的电脑上还是其他电脑上,只要我们在给一片文档中给某块内容打上书签,其他文档都可以通过这个超链接直接定位到指定文档,或指定文档中的书签。
-
对于typora来说:
-
超链接的建立比较简单,我们通常用
[自定义链接介绍](链接的绝对路径)
来实现跳转(实际上用到了css的a标签的href属性)。注意事项1:绝对路径中的盘符必须是大写字母,否则识别出错 注意事项2: typora中对本地文件夹的超链接的绝对路径与word不太相同,对于本地文件: F:\51priject\Template 来说,word中的超链接绝对路径是: file:///f:\51project\Template 但是在typora中你必须写成:F:\51project\Template 注意事项3: typora中其实是可以设置相对路径的,比如.\或者..\ 但是推荐用绝对路径 注意事项4: 斜杠/和反斜杠\可以通用,不会出错 举例: [项目位置](F:\51project\Template)
-
书签的建立比较麻烦,需要用css的a标签中的id属性来完成,首先设置跳转位置的书签
<a id="idName">被打书签的一段文字</a>
,完事之后,在文档别的位置对其进行引用,引用的方式其实就是超链接:[引用书签的一段文字](#idName)
举例:### 定性实验 <a id="label1">实验结果表1</a> 假设此处有个表格 ### 定量实验 在[实验结果表1](#label1)中,我们发现...
-
针对typora中插入的图片是绝对路径,不方便在别的地方展示的问题:我引用了CSDN博主丶Done的博客
- 思路是将图片文件转化为网页照片即可,那么它的链接就不是本地的了
- 方法是使用码云(gitee),将本地的图片上传到码云仓库里的Issue中,插入图片后,复制后面的图片的网页链接,最后将这个网页链接复制回到typora替换掉原先的图片的src属性即可。
- 其实这种方法对于typora和wiz联动使用的情况比较友好,因为wiz好像没法显示本地图片(不知道为什么)
开发环境安装
Keil安装
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C
语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
- 打开KEIL_C51_952文件夹
- 双击运行c51v952.exe,进入安装
- 安装在D:/Program Files(x86)/keil文件夹中
- 完成安装后去掉勾选,桌面上生成Keil 4
Keil 破解
- 以管理员身份运行Keil 4
- 点击进入:File / License Mangement
- 拷贝CID
- 打开注册机文件 / 以管理员身份运行KEIL_Lic.exe,粘贴CID,点击Generate,复制License
- 回到第2步界面,粘贴,点击Add LIC
建立第一个C51 project
我的项目管理思路
- 将所有51项目按照习惯放在固定的代码位置,比如说我将未来所有新建的项目文件夹,放在了F:/51project/ 文件夹中。今后,每做一个项目,我们都在上述文件夹中新建对应的项目文件夹。
- 为了方便管理项目和梳理头绪,每建立一个项目文件夹后,我们对应的就在wiz中建立一个与之对应的文件夹。
- 有时候,每个项目文件夹下面可能还有子项目文件夹,类似于程序中的子函数(子功能),我们在wiz中新建与之对应的文档(.md文件或者.ziw文件),方便管理。其中包括的内容不限于:项目建立的流程、项目代码详解、项目文件夹的路径,方便后期查看和修改。
第一个Keil项目工程(项目地址)
-
创建项目工程文件夹,就叫做Template:按照习惯放在固定的磁盘位置,比如说我放在了F:/51project/Template 文件夹中。
-
在文件夹Template 中创建文件(可以使用Vscode或者手动在文件夹中创建),取名main.c (要打开拓展名,在文件夹窗口上找 “查看”,勾选“文件拓展名”)
-
用Keil在项目文件夹中新建工程:进入keil主页面,工具栏 / project / new uVision project / 进入第1步的工程文件夹位置(Template) / 输入工程名字(英文,不加扩展名,比如moban) / 点击保存
-
选择适合的目标芯片创建工程目录:第3步结束后,Keil会弹出芯片选择的页面(Keil能开发各种系列的芯片,比如C51、C52、32等等)。对于STC公司的51单片机来说,我们在该页面选择:Atmel / 选择硬件架构:AT89c52或者AT89c51。点击OK后会提示是否拷贝"STARTUP.A51"(启动代码的意思)到项目文件夹中,我们选择是,随后就生成了工程目录
-
启动代码的含义:单片机上电后会执行一段汇编语言,我们可以不用自己写
-
-
给工程目录添加第2步新建的main.c文件:在工程目录Source Group1上右键鼠标 / add Exiting file to Source Group1… / 选择第2步建立的代码文件main.c / Add
-
-
工程创建完毕,开始写代码:在Keil界面双击main.c,可以直接在Keil中写或者在其他代码编辑器中编写代码。
编辑和编译
-
编程,举例:(如果是在Vscode中编写,不需要重新选择编码模式,二者通用是UTF-8)
#include "reg52.h" sbit led1 = P3^7;//根据原理图(电路图),设备变量led1指向P3组IO口的第7口 sbit led2 = P3^6;//根据原理图(电路图),设备变量led2指向P3组IO口的第6口 void main() { led1 = 0;//根据电路图,低电平点亮led led2 = 0; while(1); }
-
编译:如下图,Keil中点击Target Options / Output / 选择输出文件有hex,即勾选Create HEX File。布置完成后,点击Build,但是最好点击Rebuild。
-
原因:C语言属于高级语言,而单片机只认识序列化的2进制,它只认识HEX文件。这与我们在电脑上写代码编辑后需要编译生成二进制文件是一个道理。
-
<
-
-
编译结束后会生成各种文件:
- main.c:程序编辑位置
- moban.hex:将来烧录到单片机中的可执行的二进制文件
- moban.uvproj:工程文件,双击它后,能够自动在Keil中打开并加载整个工程(即工程文件夹Template中的所有文件)
4.
总结(建立Keil工程的要点)
- Keil前完成:
- 项目文件夹:Template
- main.c:先在项目文件夹中新建,再添加到工程目录中
- Keil中完成:
- 工程文件moban.uvproj:在项目文件夹中
- 建立工程目录:新建工程后自动提示你去选芯片
- moban.hex:在项目文件夹中,编译Rebuld后生成,最后我们要用烧录工具给这个hex文件下载到单片机中
用Vscode开发的方法(推荐用VScode编辑后拷贝到Keil中)
原因:在我们用vscode写51代码时,发现51单片机的头文件无法被vscode识别
引用自CSDN的YY博客这位博主
- 为Vscode安装Embedded IDE扩展
- 点击进入EIDE扩展,点击设置工具链
- 点击Keil C51(cx51)(ide path)
- 接下来选择自己当初Keil安装目录下的UV4文件夹中的UV4.exe文件
- 点击进入EIDE扩展,点击新建项目 / 空项目 / 8位MCU项目 按下回车键,跟着提示走,会要求你建立一个项目文件夹,然后就会在资源管理器中生成一个工作区
- 再次点击进入EIDE扩展,会发现多了一个EIDE项目,点击构建配置: SDCC右侧的转换按钮(切换编译器) / 选择Keil C51 Compiler Keil_C51,完成编译器的修改
- 在项目资源下新建一个名为src的普通文件夹
- 在项目属性下,将src文件夹添加到包含目录里面
- 最后,在src文件夹中新建一个main.c文件,开始代码编写,此时就不会出现无法识别51单片机头文件的问题。
- 右上角的构建按钮就是Keil中的Rebuild按钮,用来将C程序编译成HEX文件(用不到)
存在的问题:不会报错了???