C/51单片机
1. 串口也可以有多根线的,但是各线之间没有协调同步发送,而是各自是独自发送的。并口是同步发送,同步一次8位同时成功同时失败,类比事务。
2. ASCII码的前32位是通讯预留的编码即使现在也用途广泛,但是在高级语言里,因为不直接和二进制打交道往往都是从新定义了一个新的通讯方式,而在单片机领域则是用ascii码方便大家通讯。
3. 单片机有很多的引脚,同样笔记本的主板也有很多的插槽,这点和笔记本的主板是相同的。
4. ===================51单片机部分=====================
5. P3还具有第二个功能,用于特殊信号输入输出和控制信号。所以那些键盘输入,红外线信号等的信息应该都是从P3口输入的。
6. P0是使用最广泛的外部接口可以接外部存储器和外部设备(外部电路)
7. P1端口是单片机中唯一仅有的单功能I/O端口,并且没有特定的专用功能,成为通用静态口。与之相对P3是有很多的专用功能,需要指定的寄存器去实现功能。
8. P2是动态地址端口,P1是静态地址端口。
9. 单片机上显示文字都是根据字模来的,同java中总是把内容事先存放在一个数组里,然后根据数组的下标去取值是一样的。
10. 操作系统本身就是一个管理软硬件的程序,因为操作系统是面向硬件的,所以操作系统最多的操作就是二进制,16进制特性的显示,所以在写操作系统和对单片机开发程序的时候都是一样的,都要考虑硬件的结构,硬件原始的信号状态,操作系统操作的状态仍然是二进制的标志数据。但是当面形软件的时候,这些二进制的方式又被包装成了一些新的数据结构,只为了让软件的开发更贴近问题模型而不是更贴近硬件的状态。电脑有操作系统,电脑的各个I/O和CPU在物理上都已经是联通的了,他们的起作用需要软件的支持,如果没有软件的支持就不能统一这些物理连接的线路让他们发挥功能。所以操作系统实现逻辑上的管理,所有的外部设备都是接入到CPU接入到单片机中的,只有接入到单片机中才能受编程逻辑的控制,才能实现通过程序管理所以的IO资源。我们学习单片机就是学习通过编程管理所有的资源,管理资源管理资源,自然存在谁来管理的问题,这个谁就是CPU就是可以在CPU里面放置的程序。高级程序只是突出强调资源直接的逻辑关系,并不关心逻辑的初始值具体是什么,但是程序模拟的时候却是必须关系的,所以操作系统的作用就是把这个具体的关系添加到逻辑关系中。如果说操作系统和单片机编程编写的内容包括逻辑和初始值,那么高级程序就是指关心逻辑了。这就是完成了抽象,不必关系硬件具体是高电平还是低电平了。这种方式使编程脱离了具体值的束缚,可以在空中飞了,但是最终还是要着陆的这就是需要操作系统来让飞机着地了。计算机的发展过程再次证明聪明的人有时候不只是他注意到什么,有时候还是他忽略了什么。
11. 最初的计算机为什么提供操作系统那,就是因为需要经常性的做相似的工作(面形应用了),我们从这些重复的工作中提炼出了接口,抽象出了新的东西,这就是操作系统。
12. 很有兴趣了解操作系统是怎么从硬件抽象的。
13. 多进程是操作系统的功能是软件实现的并不是硬件直接实现的,多进程是通过抢占时间片,阻塞没有抢占到时间片的程序来实现的。进程间通信,进程间的资源抢占的管理规则也是因为操作系统实现上述软件功能导致的,所以也是通过软件来管理和实现的也是操作系统的功能。
14. 内存管理是通过CPU寻址的,单片机的选址范围为【0x00-????】而操作系统也是如此寻址的,但是电脑的寻址设备很多,有高速缓存,外接设备。文件系统就是管理存储器上文件的内容的方式。
15. 单片机对内存的管理是通过电流实现的,为了减少电路的复杂程度,很多地方都是使用了复用技术,操作系统把这些复用技术用编程语言分别表示出来,由系统本身去管理负责的复用关系。开发者只需要根据需要发送命令就可以了不必关注复用的方式。
16. 多线程同步问题是链表结构造成的,多线程的同步也是链表结构造成的。
17. 系统中锁只有能锁住所有线程的锁才有意义,所以锁本身就是全局变量或者全局静态变量。变量要么属于单个实例,要么属于全部实例,而锁就是其中的一类。
18. 硬件可以获得由规律的信息,但是这个信息却不一定能被人类理解,为了根据需要把硬件的规律信息转换为人类可以理解的必须使用编程。人类的理解和硬件的规律是一样的,但是起点不同,所以看到的东西理解的不同。
19. 驱动程序是写给也是写给CPU看的,对于控制硬件而言计算机和单片机没有区别,都是输出的二进制控制位,单片机一般是接到命令后1s就能给硬件发送命令,但是计算机需要3s因为计算机的CPU需要做的事情更多,他需要判断更多的业务逻辑之后才能确定发给硬件的二进制控制位。无论是驱动程序还是struts他们都是用到了分发函数,而分发函数本质上就是switch-case-结构。驱动程序本身也是在写这个switch-case语句。只是switch-case是比较偏向底层,而分发函数更加面向对象面向模块。Windows开发中分发函数随处可见。
20. 单片机开发之所以程序会从main函数开始执行就是因为汇编语言告诉CPU的,同样的在windows的开发中,C语言已经告诉系统所有新开发的程序的入口函数是WinMain。
21. Windows里经常出现的注册就是在switch-case语句中add一个case情况,方便等下个命令到来时候,提供这个资源。Windows的窗口资源就是调用了界面显示驱动。
22.
C/51单片机的更多相关文章
- Windows 通用应用尝试开发 “51单片机汇编”总结
一.前言 终于完成windows通用应用“51单片机汇编”,半年前开始玩WindowsPhone开发的第一个真正意义上的App(还很多缺点=_=).开发从1月中旬考完试到今天,期间实习了半个月,玩了几 ...
- 51单片机中断interrupt……using……
51单片机中断细节的一些问题. interrupt0:外部中断0interrupt1:定时器中断0interrupt2:外部中断interrupt3:定时器中断1interrupt4:串口 using ...
- Windows 通用应用尝试开发 “51单片机汇编”第二次更新总结
一.前言 昨天更新了10天前上架到windows8.1平台和windowsphone平台的通用应用“51单片机汇编”,总要是添加了动态磁贴以及ListView的Groupstyle应用.下面主要主要复 ...
- [新概念51单片机C语言教程·郭天祥] 1、 基础知识必备
目录: 单片机的大致介绍 1-1.通俗定义 1-2.51系列产品 1-3.标号意思 1-4.引脚介绍 1-5.用C语言开 ...
- [51单片机] HC-SR04超声波测距仪 基础代码
>_<:超声波测距仪模块: >_<:51单片机,11.0592MHz晶振,将采集数据发送到串口的基础例子: >_<:代码: /******************* ...
- 51单片机的堆栈指针(SP)
堆栈指针(SP,Stack Pointer),专门用于指出堆栈顶部数据的地址. 那么51单片机的堆栈在什么地方呢?由于单片机中存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM ...
- 关于51单片机P0口的结构及上拉问题
1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构.高电平时,V1打开,V2截止:低电平时,V1截止,V2打开.这种情况下不用外接上拉电阻.而且,当V1打开,V2截止,输出高电平的时候, ...
- 51单片机C语言学习笔记3: 存储器结构
MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编 ...
- 51单片机C语言学习笔记6:51单片机C语言头文件及其使用
很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这个是在头文件中用sfr定义的,现在定义好了的是这样的 sfr P1 ...
- 51单片机 Keil C 延时程序的简单研究
应用单片机的时候,经常会遇到需要短时间延时的情况.需要的延时时间很短,一般都是几十到几百微妙(us).有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很 ...
随机推荐
- ST表学习
啊谈不上学习了.复习一下原理留一下板子. $f\left[i,j \right]$表示以$i$为起点,区间长度为${2}^{j}$的区间最值.以最小值为例,即 $min\left(a\left [ k ...
- Java线程---简介
实现方式 在java中线程有两种实现方式: 1.继承thread类 2.实现runnable接口 Thread类 Thread类时在java.lang包中定义的,继承thread类必须重写run()方 ...
- 8 实现10mins用户登录与注册
1.重新认识登录 2.实现登录功能 (1)Django 自带的authenticate, login模块 from django.contrib.auth import authenticate, l ...
- 1196/P2323: [HNOI2006]公路修建问题
1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2191 Solved: 1258 Descriptio ...
- qq登录面板
- TerminateProcess
Remarks The TerminateProcess function is used to unconditionally cause a process to exit. The state ...
- Active Directory-Integrated Zones
更新时间: 2010年5月 应用到: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Window ...
- 通过广播关闭应用程序(每个Activity)和连续点击两次返回键关闭应用程序
对于一个应用程序可能有很多个Activity,可能每个人并不想一个个的去关闭Activity,也有可能忘了,那怎么关闭所有的未关闭的Activity呢,其实有很多方法,但是我最喜欢的一种就是通过广播事 ...
- GCD那些事儿
GCD GCD,全名Grand Central Dispatch,中文名郭草地,是基于C语言的一套多线程开发API,一听名字就是个狠角色,也是目前苹果官方推荐的多线程开发方式.可以说是使用方便,又不失 ...
- 每天一个Linux命令(9):cp命令
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录.它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下.cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文 ...