微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 学单片机三四天的感受

学单片机三四天的感受

时间:11-30 来源:互联网 点击:
这篇文章是本人在学习单片机三四天时写的,有很多东西可能理解的不到位或者不正确,所以本文不具参考价值,若不听劝告,强制参考,对阁下造成的影响,本人概不负责的说,特此声明。
单片机的英文简写是MCU,主要由四部分组成,CPU,RAM,ROM,I/O口,CPU就像电脑的CPU,RAM就像电脑的内存,ROM就像电脑的硬盘,不过没有电脑的硬盘灵活,程序只能拷进去,但好像拷不出来,至少我不知道咋拷出来,可能是功力不够。I/O口就像电脑的串口,鼠标、键盘接口,但是它的I/O口很多都是一位一位的。
CPU的时钟频率最大也就是几十兆,但是写程序的时候可以自定义它的时钟频率,自定义的时钟频率只能比最大值小,感觉很奇怪,定义一些小的时钟频率好像没什么优势,想了半天,想到一个原因,省电,仔细一想,很牵强,于是乎,去问老长,老长给出了比较科学的解释:时钟频率越高,就越容易被干扰,外部电路就越难做。哎,老长真是高手的说。CPU有个内部晶振,如果内部晶振不合用,可以接外部晶振。
RAM很小,一般都只有几百字节,注意是字节,可不是K,感觉也太小了,还不够塞牙缝呢,RAM本来就够小了,还得再分出一些做为SFR,SFR就是传说中的特殊功能寄存器。我用的单片机RAM才256字节,特殊功能寄存器就占了128字节,可用内存真叫小呀,据说可外接RAM,但迄今为止,我还不知道怎么外接,这些东西得查资料,不能老麻烦老长,于心不忍呀!特殊功能寄存器都是干什么用的,我也不清楚,手册上有,我就知道一点,花了很大功夫在网上查了一个SFRPAGE,这个SFRPAGE甚是怪异,如果给SFR赋值,如果SFRPAGE的值不对,还不行,赋不进去,就像你要在书上的某一个句子下划条线,得先翻到这一页的说。还有一些比较简单的,P0,P1什么的,这个我就不多说了,看一眼就会明白的。
下面该翁翁ROM了,ROM也不大,我的单片机好像是4K,ROM是干啥用的呢?是放程序用的,程序编译成二进制文件后,总得有的去处吧,就放在ROM里,ROM也可以外接扩展,而且还可以不用内部ROM,只用外部ROM,具体怎么弄等我弄清楚了再说。
I /O有串口,还有好多口,串口都知道是RS-232串口,不知道的人说你也不知道,口是弄啥来?口是一位,往特殊功能寄存器里该口对应的位里赋个1,口就是高电位了,反之就是低电位了。有人要问,那赋个2呢?谁问谁是2的说。
还有就是写程序了,写程序用的是C语言,是咱的老本行,所以很容易上手,只是C51的C语言扩展了一下,里面加了几种类型,据目前所知,有sfr类型和sbit类型,这两种类型甚是怪异,初始化和赋值意思不一样。
sfr theSfr = 0x90; // 定义一个特殊功能寄存器,这个特殊功能寄存器就表示RAM中地址是0x90的那个
theSr = 0x21; // 往刚才的的寄存器里写了数,0x21
sbit也很古怪
sbit theBit = theSfr^1; // theBit就表示theSfr寄存器中的第1位(从0开始),前提是这个寄存器可以位寻址。啥叫位寻址?看字面意思就知道了,再不知道去问老长。
好了,基本写完了,最后这点不看也中,就是收个尾,俗话说,言必信,行必果,在此再次对老长表示感谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top