大多数人是不希望上来就看到一大堆代码和英文的。
人们更希望有中文的理论和详细的说明。
所以,我们采用引诱的方式,提出问题,然后给出解决办法,最后等你真的明白理论的时候,我们把解决办法与代码对应着拿出来。
现在我们的回到话题,什么是程序
书面给出的答案是,机器在运行时,那些执行指令的序列,叫程序
看到这里你有什么感想,太多的名词不明白,或者看起来熟悉,却没有很透彻的体会,是的。
书,作为作品,必须精简正确。但很难通俗易懂。
在我的世界里,学习是愉快的,因为我一定会多打比方,多联系人类社会里的现象,找出逻辑关系
其实程序就是做一件事情的先后循序。程序的程,有过程的意识,而序,当然是序列的意识了
比如,我想做一道锅包肉的菜,我的程序是
1选材,(肉,各种调料)
2工具,锅碗瓢盆
3制作工艺,先切肉,上浆,油炸,烹饪,成盘
当然,这里还有许多细节没写(毕竟我们不是烹饪学校科班出身对吧)
但基本上已经说明,做一件事情的步骤序列了,
计算机程序(或单片机程序)也是一样的
我们也要
1选材(用那些数据,常量数,变量,等等)
2工具(我们采用哪一种语言,和相对应的编译器)
3制作工艺(先加谁,后减谁,放在那里,什么时候输出)
这就是程序
定义方面就算是过关了,等你真的写了好多程序的时候,那时候你也可能像今天的我一样侃侃而谈,取告诉别人什么是程序
程序在那里!
芯片分两种,
一种是有ALU(运算器)的,
一种是没有ALU的
计算机和51单片机,都属于有运算器的
像164,595,138这样的芯片是没有运算器ALU的
单片机和电脑从逻辑机构上说,都一样
1 运算器
2存储器
3控制器
4时钟
5总线
这5个部件共同组成了CPU
我们的程序,是存储在存储器里的,是会被运算器执行的
我们的程序在存储器中被提取出来,送到运算器和控制器,经过读取和执行,最终将我们的代码(0000 1000)这样的编程电器信号
机器就根据我们写的代码,对等的用电器信号驱使机器工作
系统除了要有 内存(里边的程序) 运算器/控制器 总线,
更要有外围设备,(各种传感器)
外部的显示世界里的信息,温度,湿度,光照度,声音,重量等等,是借助对应的传感器,变成数字信号的
单片机根据程序的指令,科学且有条不紊的接收数字信号
程序内部,对数据进行处理判断 最后得出想要的结果
程序控制单片机(机器),发出控制指令,智慧外围设备的另一部分 工作,达到预期的效果
举例 (空调)
温度传感器 探测 室内温度
单片机在程序的指挥下,接收温度传感器的数据信息(温度数值)
程序判断外部温度N 然后与用户设定的舒适温度M 比较
如果(N< M){ 太冷,我们发出控制信号,驱动制暖电机转动 }
否则(N=M ){ 停止所有电机转动,进入待机状态(温度传感器除外)}
否则(N>M ){ 太热,我们发出控制信号,驱动制冷电机转动 }
如此循环判断,驱动(冷热电机)工作,达到空调的目的
在这里,有硬件,有程序,还有数据
硬件是工作的主体
程序硬件的灵魂
数据是程序的骨架
学单片机,要软硬兼施。
|