㈠ 求《单片机原理及应用(第二版)》 张毅刚 pdf教材 ,谢谢
你好!
很高兴为你解答,这本单片机的应用是张毅刚的PDF教材不知道是不是你想要得,这个教材多的是我给你推荐8051系列单片机C程序设计完全手册.pdf,和
《51单片机C语言创新教程》免费版.pdf
这个两本教材都不错,希望我的回答对你有帮助教材下载地址附件里面有!
㈡ 单片机原理及应用张毅刚第三版
㈢ 单片机原理与应用
《单片机原理和应用》是2010年9月由电子工业出版社出版的图书,本书系统全面地介绍了80C51单片机的基本原理、硬件结构、指令系统,并从应用的角度介绍了汇编语言程序设计、单片机外部电路的扩展,以及与键盘、LED显示、LCD显示、打印机等多种硬件接口的设计方法,详细介绍了串行、并行接口的A/D、D/A转换器功能特点和典型应用,增加了单片机应用系统设计、Proteus仿真、实验和课程设计等内容。
二,本书特色
本书为江西省省级精品课程建设成果。
本书从现实教学和工程实际应用出发,对传统单片机教材内容进行了改良,力求做到与市场接轨,与现实同步。在并行总线扩展问题上,着重介绍了扩展方法和典型应用,对并行器件、并行总线扩展及8255、8155、8279等已基本淘汰的器件进行了精简或摒弃,补充了串行总线技术、串行总线器件接口应用和STC系列单片机内部新增功能部件的使用,以及C51编程规范等内容。
书中有单片机应用系统设计、Proteus仿真、实验和课程设计等章节,主教材与实验教材整合为一本书,知识量大。
㈣ 已知8051单片机的fosc=12MHz,用T1 定时,试编程由P1.2 和P1.3 引脚分别输出周期为2ms 和500μs 的方波
定时器T1定时250μs,工作方式设置为方式2,用TL1作为8位定时器,产生250μs的定时,定时初值X为:X=2^8-(12* 10^6* 250 * 10^(-6))/12=6
TH1=TL1=6H,TMOD=20H
源代码如下:
MOV TMOD,#20H
MOVTH1,#06H
MOVTL1,#06H
SETB TR1
DS1_RPTA:
MOVR2,#04H
DS1_RPTB:
JNB TF1,$
CLR TF1
CPL P1.3
DJNZ R2,DS1_RPTB
CPL P1.2
LJMP DS1_RPTA
51单片机中有两个定时器T0和T1,分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。单片机中的定时器溢出时申请的中断,达到计时或计数的目的。并使用定时控制寄存器控制它。其中的:
TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。
TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。
(4)单片机原理及应用作业张刚毅扩展阅读
定时器工作的流程:
以51为例用定时器0方式一产生50毫秒的定时:
1、确定使用哪个定时器,使用哪种方式,通过TMOD设置,TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作在方式1。
2、设置定时的时间,用定时器定时,如:50毫秒,可以用这种方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断。
3、打开中断,使用IE寄存器,首先打开总中断EA = 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0 =1。
4、这时准备工作结束,启动定时器,使用TCON寄存器,TR0 = 1,实现了一个50毫秒的定时。
㈤ 新编mcs-51单片机应用设计第3版 张毅刚怎样
张老师的书都不错,最经典的是《单片机原理与应用》这本书,对于初学者来说非常适合。国内的书都差不多, 随便找一本看就行, 重要的是多动手。
㈥ 求单片机原理及接口技术 试题及答案
单片机模拟试卷001
一、选择题(每题1分,共10分)
1.8031单片机的( )口的引脚,还具有外中断、串行通信等第二功能。
a)P0 b)P1 c)P2 d)P3
2.单片机应用程序一般存放在( )
a) RAM b)ROM c)寄存器 d)CPU
3.已知某数的BCD码为0111 0101 0100 0010 则其表示的十进制数值为( )
a) 7542H b) 7542 c) 75.42H d) 75.42
4.下列指令中不影响标志位CY的指令有( )。
a)ADD A,20H b)CLR c)RRC A d)INC A
5.CPU主要的组成部部分为( )
a)运算器、控制器 b)加法器、寄存器
c)运算器、寄存器 d)运算器、指令译码器
6.INTEL 8051 CPU是( )位的单片机
a) 16 b)4 c)8 d)准16
7.8031复位后,PC与SP的值为( )
a )0000H,00H b) 0000H,07H c) 0003H,07H d)0800H,00H
8.当需要从MCS-51单片机程序存储器取数据时,采用的指令为( )。
a)MOV A, @R1 b)MOVC A, @A + DPTR
c)MOVX A, @ R0 d)MOVX A, @ DPTR
9.8031单片机中既可位寻址又可字节寻址的单元是( )
a)20H b)30H c)00H d)70H
10.下列哪条指令是正确的( )
a) PUSH R2 b) ADD R0,A
c) MOVX A @DPTR d) MOV @R0,A
二、填空题(每空1分,共30分)
1.一个完整的微机系统由 和 两大部分组成。
2.8051 的引脚RST是____(IN脚还是OUT脚),当其端出现____电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到____电平,8051才脱离复位状态,进入程序运行状态,从ROM H单元开始取指令并翻译和执行。
3.半导体存储器分成两大类 和 ,其中 具有易失性,常用于存储 。
4.求十进制数-102的补码(以2位16进制数表示),该补码为 。
5.PC存放_______________,具有___________特性。在8051中决定程序执行顺序的是PC还是DPTR? 它是______位? (是,不是)SFG?
6.123= B= H。
7.8051内部有 并行口,P0口直接作输出口时,必须外接 ;并行口作输入口时,必须先 ,才能读入外设的状态。
8.MCS-51的堆栈只可设置在 ,其最大容量为 ,存取数据的原则是 。堆栈寄存器SP是 位寄存器,存放 。
9.中断处理的全过程分为以下3个段: 、 、 。
10.定时和计数都是对 进行计数,定时与计数的区别是
。
三、判断题(对者打√,错者打×,并改正,每题1分,共10分)
1 中断服务程序的最后一条指令是RET。
2 存储器分成内存和外存两大部分,其中外存可以直接与CPU交换信息。
3 P2口既可以作为I/O使用,又可以作地址/数据复用口使用。
4 在中断响应阶段CPU一定要做如下2件工作:保护断点和给出中断服务程序入口地址。
5 RC A为循环左移指令。
6 MOV A,30H的源操作数为立即寻址方式。
7 MOV A,@A+DPTR是一条查表指令。
8 MUL AB的执行结果是高8位在A中,低8 位在B中。
9 AJMP跳转空间最大可达到64KB 。
10 DPTR是由DPH和DPL两个8位特殊寄存器组成的。
四、简答题(每题5分,共15分)
1.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?
2.已知单片机系统晶振频率为6MHz,若要求定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是多少?TMOD的值是多少?TH0=?TL0=?(写出步骤)
3.MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。
五、作图题(10分)
用6264(8K*8)构成16K的数据存储系统。要求采用线选法产生片选信号,并计算6264的地址范围。
六、设计题(1题13分;2题12分,共25分)
1.某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由左向右轮流点亮。
2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。
单片机模拟试卷001答案
一、选择题(每题1分,共10分)
1. D 2. B 3. B 4. D 5. A 6. C 7. B 8. B 9. A 10. D
二、填空题(每空1分,共30分)
1.一个完整的微机系统由硬件和软件两大部分组成。
2.8051 的引脚RST是IN脚(IN脚还是OUT脚),当其端出现高电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到低电平,8051才脱离复位状态,进入程序运行状态,从ROM 0000 H单元开始取指令并翻译和执行。
3.半导体存储器分成两大类:RAM ROM,其中 RAM 具有易失性,常用于存储 临时性数据 。
4.求十进制数-102的补码(以2位16进制数表示),该补码为¬¬¬¬ 9AH 。
5.PC存放_CPU将要执行的指令所在的ROM单元的地址,具有自动加1特性。在8051中决定程序执行顺序的是PC还是DPTR PC ?它是16位?不是(是,不是)SFG?
6.123= 01010010 B= 52 H。
7.8051内部有 4 个并行口,P0口直接作输出口时,必须外接 上拉电阻 ;并行口作输入口时,必须先 将口锁存器置1 ,才能读入外设的状态。
8.MCS-51的堆栈只可设置在 内RAM低128B区 ,其最大容量为 128B ,存取数据的原则是 先进后出 。堆栈寄存器SP是 8 位寄存器,存放 堆栈栈顶的地址 。9.中断处理的全过程分为以下3个段: 中断请求 、 中断响应 、 中断服务 。
10.定时和计数都是对 脉冲 进行计数,定时与计数的区别是 定时是对周期已知的脉冲计数;计数是对周期未知的脉冲计数 。
三、判断题(对者打√,错者打×,并改正,每题1分,共10分)
1 中断服务程序的最后一条指令是RETRETI。×
2 存储器分成内存和外存两大部分,其中外内存可以直接与CPU交换信息。×
3 P2口既可以作为I/O使用,又可以作地址/数据复用口使用。√
4 在中断响应阶段CPU一定要做如下2件工作:保护断点和给出中断服务程序入口地址。√
5 LCRL A为循环左移指令。×
6 MOV A,30H的源操作数为立即直接寻址方式。
7 MOVMOVC A,@A+DPTR是一条查表指令。×
8 MUL AB的执行结果是高低8位在A中,低高8 位在B中。×
9 AJMP跳转空间最大可达到642KB 。
10 DPTR是由DPH和DPL两个8位特殊寄存器组成的。 √
四、简答题(每题5分,共15分)
1.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?
答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。
2.已知单片机系统晶振频率为6MHz,若要求定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是多少?TMOD的值是多少?TH0=?TL0=?(写出步骤)
答:定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是1388H
TMOD的值是00000001B,TH0=13H;TL0=88H。
3.MCS51系列单片机的内部资源有哪些?说出8031、8051和8751的区别。
答:MCS51系列单片机上有1个8位CPU、128B的RAM、21个SFR、4个并行口、1个串行口、2个定时计数器和中断系统等资源。8031、8051和8751的区别是8031内无ROM;8051内有4KB的掩膜ROM;8751内有4KB的EPROM。
五、作图题(10分)
答:WR接6264的WE
RD接6264的OE
AB0---AB12接6264的A0---A12
DB0—DB7接6264的D0—D7
AB15、AB14分别接Y0和Y1
地址:0000H---1FFFH;2000H---3FFFH
六、设计题
1.某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。
答: 图 (5分) 构思 (3分)
MOV A,#80H (1分)
UP:MOV P1,A (1分)
RR A (2分)
SJMP UP (1分)
2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。
答:图 (5分) 构思 (3分)
程序(4分)
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP AINT0
ORG 0013H
LJMP BINT1
MAIN: MOV IE,#83H
SETB IT0
SETB IT1
MOV R0,#00H
MOV DPTR,#TAB
UP: MOV A,R0
MOVC A,@A+DPTR
MOV P1,A
SJMP UP
AINT0: INC R0
CJNE R0,#10,AINT01
MOV R0,#0
AINT01: RETI
BINT1: DEC R0
CJNE R0,#0FFH,BINT11
MOV R0,#9
BINT11: RETI
㈦ 《单片机》课程学习总结
《单片机》课程学习总结
篇一:《单片机》课程学习总结
《单片机》这门课程我已经学了一个学期了,在这一个学期的学习过程中,我一开始不怎么懂得编程,但慢慢的我现在已经不仅会读程序还会写程序了。真为自己一个学期来努力学到的单片机知识只是而感到高兴。
怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。
我觉得学习单片机首先要懂得C语言,因为单片机大多说都是靠程序来实现的,如果看不懂程序或则不懂的编程是很难学会单片机的。学习单片机首先要明白一个程序是怎么走的,要完全懂得程序每一个步骤的意思。其次要懂得每一条指令的意思,不能盲目地去靠背指令,这是记得不牢靠的,最主要的还是靠了解。学习单片机最主要的对89C51芯片内部结构有全方面的,只要了解了89C51才能知道单片机实现什么样的功能和作用,才能对单片机有更深一步的了解。 通过一个学期《单片机》这门课程的学习,我也从中有了不少心
得和体会想和大家分享一下。
万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,不要说单片机的程序全是英文,自己看不懂。遇到困难要一件件攻克,不懂指令就要勤奋看书,不懂程序就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少。然后建个程序,加入项目中,再写代码、编译、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。
知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。 程序不要光看不写,一定要自己写一次。最开始的时候,什么都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果。看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。当你自己能写出来的时候,说明你就真的懂了。
必须学会掌握调试程序的方法。不少人写程序,把代码写好了,
然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。
找到解决问题思路比找到代码更重要。我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。
我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以。要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人。所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。
开动脑筋,运用多种方法,不断优化自己的程序。想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
看别人的程序,学习人家的思路。这个在学习初期是很有用,通过看别人的程序,特别是老师写出的具有一定水平的程序,可以使自己编程水平得到迅速的提高。同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的程序,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
尝试编写一下综合应用的程序。从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序什么也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。
着重于培养解决问题的能力,而不是具体看自己编写了多少程序或者做过什么。“学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机学习单片机之后感悟出来的。真正的能力不是你曾经编写过多少个可以实现的程序,而应该是:“遇到没有解决过的问题,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。
面对一个新程序时,多自己开动脑筋,不要急于找别人的程序。
有不少人面对一个新程序时,第一步想到的就是网上找别人写过的程序,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个程序时,应该先自己构思一下整个程序的架构,想想如何来完成。有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教老师或同学,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路。如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。
学会提问题。一般来说,学习过程中,你遇上的问题,多数人也有遇上的,所以如果有什么不懂,你可以去问老师。我觉得学习单片机最主要的要多提问,对于一个自己不是太懂的程序,自己一定要多提问几遍,这样不但有利于加深自己的印象还能从中学到不少别人的方法。
经过一个学期我对《单片机》这门课程的学习,不仅让我懂得了很多程序的编写,还让我学到了很多对自己有用的学习方法。总结这个学期来的我自己的学习情况,我觉得自己对编程进步了不少,懂得运用正确的学习方法学习单片机程序,不再去死记硬背指令了。所以我觉得学习要不断总结学习方法,才能让自己学习不断进步。
交通信号灯设计报告
实验目的: P1口的使用方法,延时程序的编写
实验要求:在一个十字路口分为东西南北走向,信号等按以下的状态顺序工作:
(1) 初始状态0,东西、南北红灯全亮。延时一定时间;
(2) 状态1,南北绿灯亮通车,东西红灯,延时一定时间;
(3) 状态2,南北绿灯闪烁几次转黄灯,东西仍然红灯,延时一定
时间;
(4) 状态3,南北红灯,东西绿灯通车,延时一定时间;
(5) 状态4,南北仍然红灯,东西绿灯闪烁几次转黄灯,延时一定
时间;
(6) 循环至状态1,继续
实验电路和流程框架图:
(1) 硬件电路
交通灯实训设备用最小系统板和信号灯组合而成。
2、软件编程
若各路口灯亮灭的时间间隔为2s钟,灯光闪烁时间间隔为0.5s。用软件延时的方法,晶振频率12MHz时,一个机器周期为1us。
编写交通信号灯程序:
编写主程序,由R7做主程序的计数器,确定调用延时时间为0.5s,从而获得交通灯的亮灭时间。
篇二:《单片机》课程学习总结
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机课程也结束,但通过这次单片机的学习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。
当今社会随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。
刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。它的应用范围很广,在工业自动化中应用有数据采集、测控技术。
在智能仪器仪表中应用有数字示波器、数字信号源、自动取款机等。在消费类电子产品中应用有空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。在通讯方面应用有手机、小灵通等。在武器装备方面应用有飞机、坦克、导弹、航天飞机、智能武器等。刚开始学习时只能抄写别人做成功的程序,一遍一遍的写,从简单的入手,逐步的积累,一步步的能够将小的程序结合到一起,拼接成较为复杂一些的程序。但是程序不要只是看别人得,一定要自己写过才是自己的。只有当你自己能写出来的时候说明你真懂了。刚接触KEIL时确实很让人头疼,使用 KEIL不会建项目、不会使用实验板。然后可以参考已经成功的程序,抄过来,写一个最简单的,让它运行起来,先培养一下自己的感觉,先建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人,自己一定要掌握解决问的方法和思路。对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。应该先想一下程序的构架,想想如何来完成。然后自己动手去写,理清自己的思路这样更容易提高自己。
熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计(随便说一下,很多书中的电路设计已经过时,并且有些程序还是错误的`)。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,虽然单片机的课程只上了几节就去上班了,但在学习的过程中有了一定的了解。下面就本人学习单片机的过程和经验做简要介绍。
首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,特别是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,建议初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在这里给大家推荐一本单片机C语言程序设计参考书,马忠梅等着,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,建议学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
其次,是单片机教材选择。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。
然后,是开发工具和开发环境的选择。选择一块合适的学习板,对于初学者来说一般无力接受,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。
随便推荐一下,学林电子的51tracer仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得非常兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞定某个实验,就恭维的告诉你一声”恭喜你,学会了”自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了一定了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品.因此除了入门外,精通可千万别轻易说出口。
最后,在熟练掌握和应用后,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计开发各种课题,不断的积累经验。最终,自己完全设计具有个人风格的课题,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,这大家可能都听过。
有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。要坚定自己的学习信心,在付出持之以恒的努力,我相信自己能进一步加深对单片机的了解,在单片机的学习道路上走得更远!
;