这篇文章是本人在学习单片机三四天时写的,有很多东西可能理解的不到位或者不正确,所以本文不具参考价值,若不听劝告,强制参考,对阁下造成的影响,本人概不负责的说,特此声明。
单片机的英文简写是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开始),前提是这个寄存器可以位寻址。啥叫位寻址?看字面意思就知道了,再不知道去问老长。
好了,基本写完了,最后这点不看也中,就是收个尾,俗话说,言必信,行必果,在此再次对老长表示感谢!
关键字:学单片机
引用地址:
学单片机三四天的感受
推荐阅读最新更新时间:2024-03-16 14:23
怎样学会单片机?先学什么,怎么入门?
怎么学习单片机?我给大家分享一下我的单片机学习之路。 我的单片机可以说是自学的,过程有点曲折。 刚开始是啃理论,学习单片机的设计框架,内存、寄存器,GPIO口功能,定时器,单片机汇编语句等。 每天背概念,记理论,过了大概一个月,结果肯定就是一个懵逼的状态。 正在这个懵逼的时候,实验室的一个同学建议我先学C语言,再学习单片机程序开发,说汇编没有啥用。 我又花了2-3个月的时间学习了C语言,买了一本谭浩强的C语言教程,从头到尾抄笔记,抄完了几个笔记本,但这次更加迷茫。 因为大学里的学习,都要靠自己,老师没有太多的时间专门辅导你,而且自己又不是那种特别优质的学生,是得不到老师的特别眷顾,同学之间有存在一些比较幼稚的比较和竞争。可以帮助你
[单片机]
零基础:学51单片机定时器
我们学单片机是首先学的就是 led 闪烁,那是用延时程序做的,现在回想起来,这样做不很恰当,为什么呢?我们的主程序做了灯的闪烁,就不能再干其它的事了,难道单片机只能这样工作吗?当然不是,我们能用定时器来实现灯的闪烁的功能。 例 1:查询方式 ORG 0000H AJMP START ORG 30H START: MOV P1,#0FFH ;关所 灯 MOV TMOD,#00000001B ;定时/计数器 0 工作于方式 1 MOV TH0,#15H MOV TL0,#0A0H ;即数 5536 SETB TR0 ;定时/计数器 0 开始运行 LOOP:JBC TF0,NEXT ;
[单片机]
从零开始学单片机(八)蜂鸣器唱歌
单片机 上的蜂鸣器结构非常的简单 只要给一个0,它就会 叫 。让它唱歌的原理很简单,声音大小是固定的,让它的频率变化,就能让它发出不同的音符。 代码中在软件循环延时过程中,依次给它一个固定频率的方波,让它唱起来。 //晶振11.0592 #include sbit speaker=P2^3; unsigned char byteTH0,byteT0L,duration; // 小星星句子,三个一组,第一个表示音符,第二个表示音阶,第三个表示延时长度(单位约等于0.1s) code unsigned char music ={ 1,2,2, 1,2,2, 5,2,2, 5,2,2, 6,2,2, 6,2,2,
[单片机]
从这些知识点入手,学单片机就简单多了!
摘要:从STM32新建工程、编译下载程序出发,让新手由浅入深,尽享STM32标准库开发的乐趣。 自从CubeMX等图像配置软件的出现,同学们往往点几下鼠标就解决了单片机的配置问题。对于追求开发速度的业务场景下,使用快速配置软件是合理的,高效的,但对于学生的学习场景下,更为重要的是知其然并知其所以然。 以下是学习(包括但不限于)嵌入式的三个重要内容, 1、学会如何参考官方的手册和官方的代码来独立写自己的程序。 2、积累常用代码段,知道哪里的问题需要哪些代码处理。 3、跟随大佬步伐,一步一个脚印。 首先:我们都知道编程时一般查的是《参考手册》,而进行芯片选型或需要芯片数据时,查阅的是《数据手册》。此外市面上所有关于STM32的书籍都
[单片机]
跟我学51单片机(八)——图型带字库液晶128×64
上期我向大家介绍了字符型液晶1602的基本功能,并用51单片机的驱动显示,你可以用它表达你的幸运日期或者你喜欢的数字。虽然说1602液晶使用方便,但如果你想用它表达更多的语言,就难以满足要求了,因此,我向大家介绍一款128×64的带字库液晶。 一、原理简介 我手里的这款128×64液晶内部是以ST7920芯片作为控制器,是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16×16点汉字,和128个16×8点ASCII字符集。可以显示8×4行16×16点阵的汉字。因此利用该液晶模块可以灵活的构成全中文人机交互图形界
[单片机]