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单片机的更多相关文章

  1. Windows 通用应用尝试开发 “51单片机汇编”总结

    一.前言 终于完成windows通用应用“51单片机汇编”,半年前开始玩WindowsPhone开发的第一个真正意义上的App(还很多缺点=_=).开发从1月中旬考完试到今天,期间实习了半个月,玩了几 ...

  2. 51单片机中断interrupt……using……

    51单片机中断细节的一些问题. interrupt0:外部中断0interrupt1:定时器中断0interrupt2:外部中断interrupt3:定时器中断1interrupt4:串口 using ...

  3. Windows 通用应用尝试开发 “51单片机汇编”第二次更新总结

    一.前言 昨天更新了10天前上架到windows8.1平台和windowsphone平台的通用应用“51单片机汇编”,总要是添加了动态磁贴以及ListView的Groupstyle应用.下面主要主要复 ...

  4. [新概念51单片机C语言教程·郭天祥] 1、 基础知识必备

    目录: 单片机的大致介绍         1-1.通俗定义         1-2.51系列产品         1-3.标号意思         1-4.引脚介绍         1-5.用C语言开 ...

  5. [51单片机] HC-SR04超声波测距仪 基础代码

    >_<:超声波测距仪模块: >_<:51单片机,11.0592MHz晶振,将采集数据发送到串口的基础例子: >_<:代码: /******************* ...

  6. 51单片机的堆栈指针(SP)

    堆栈指针(SP,Stack Pointer),专门用于指出堆栈顶部数据的地址. 那么51单片机的堆栈在什么地方呢?由于单片机中存放数据的区域有限,我们不能够专门分配一块地方做堆栈,所以就在内存(RAM ...

  7. 关于51单片机P0口的结构及上拉问题

    1.P0作为地址数据总线时,V1和V2是一起工作的,构成推挽结构.高电平时,V1打开,V2截止:低电平时,V1截止,V2打开.这种情况下不用外接上拉电阻.而且,当V1打开,V2截止,输出高电平的时候, ...

  8. 51单片机C语言学习笔记3: 存储器结构

    MCS-51单片机在物理结构上有四个存储空间: 1.片内程序存储器2.片外程序存储器3.片内数据存储器4.片外数据存储器 但在逻辑上,即从用户的角度上,8051单片机有三个存储空间: 1.片内外统一编 ...

  9. 51单片机C语言学习笔记6:51单片机C语言头文件及其使用

    很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这个是在头文件中用sfr定义的,现在定义好了的是这样的 sfr P1 ...

  10. 51单片机 Keil C 延时程序的简单研究

    应用单片机的时候,经常会遇到需要短时间延时的情况.需要的延时时间很短,一般都是几十到几百微妙(us).有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很 ...

随机推荐

  1. 6.bootstrap 将文本内容关联一个动作(手机端导航适配)&在超小尺寸下显示,屏幕变大后消失

    1.情景:这是出现在手机端导航适配的,点击文本MENU可以出现下拉的list 解决方法: 1.首先要想到,MENU只有两个状态,因此可以用checkbox实现 2.将MENU放在label标签里面,l ...

  2. Invalid bound statement (not found): com.up.sell.mapper.system.H5operationMapper.

    springboot + mybatis项目,出现这样的错误原因就是mapper类的名字和xml的id不对应或者是忘记写了,仔细检查一下吧

  3. H2数据库使用

    H2数据库使用 H2数据库介绍 H2的优势: 1.h2采用纯Java编写,因此不受平台的限制. 2.h2只有一个jar文件,十分适合作为嵌入式数据库试用. 3.性能和功能的优势 H2和各数据库特征比较 ...

  4. Ubuntu14.0.4系统如何获取root权限

    Ubuntu14.0.4系统如何获取root权限 | 浏览:9684 | 更新:2014-08-21 10:38 7 分步阅读 本文主要讲解如何简单实用命令获取root权限 工具/原料 Ubuntu1 ...

  5. vue-i18n vue-cli项目中实现国际化 多语言切换功能 一

    vue-cli项目中引入vue-i18n 安装: npm install vue-i18n可参考vue-i18n官网文档 main.js中引入: import Vue from 'vue' impor ...

  6. 以+scheduledTimerWithTimeInterval...的方式触发的timer,在滑动页面上的列表时,timer会暂定回调,为什么?如何解决?

    这里强调一点:在主线程中以+scheduledTimerWithTimeInterval...的方式触发的timer默认是运行在NSDefaultRunLoopMode模式下的,当滑动页面上的列表时, ...

  7. 《Cracking the Coding Interview》——第12章:测试——题目1

    2014-04-24 23:10 题目:找出下面代码里的错误. 解法:请看下面. 代码: // 12.1 What's wrong with the following code segment? # ...

  8. spring 笔记3: Spring 多环境配置文件切换

    使用Spring进行开发时,需要面对不同的运行环境,比如开发环境.测试环境.生产环境等.大多时候不同的环境需要不同的配置文件.网上很多资料都是使用Spring的Bean definition prof ...

  9. CS/BS架构的特点

    CS架构 优点: 1.有独立的客户端,安全性高 2.大部分业务都在客户端实现,可以实现很复杂的业务 缺点: 1.对环境要求高,需要安装客户端,推广速度慢 2.需要专门前后台的开发团队,维护成本高 B/ ...

  10. Python学习4,字符串

    字符串这个东西主要靠记,多打打就好了. _author_ = "Happyboy" name = "my \tname is happyboy and i am 66 y ...