看完郭天祥“十天学会单片机”之后学啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了看完郭天祥“十天学会单片机”之后学啥?相关的知识,希望对你有一定的参考价值。
能够熟练编程单片机实验板上面的知识之后应该学些什么?是先去学其他系列的单片机,还是去学ARM9?或者是继续强化51单片机的知识?如果选择继续强化51单片机的话,应该去学哪些方面的知识?希望高手们认真作答,谢谢
51单片机没有什么好强化的,底层寄存器你会了就OK了,不过你要非常熟悉51单片机框架和结果,你说你51单片机已经够熟练了,不知道你熟练成啥程序,是不是自己什么可以随便出个项目就可以很快的硬件和软件在一定的时间内自己搞定,那样你就算熟悉了,不知道你51单片机会操作的C语言是不是所有条件语句、结构体、指针等都可以在51单片机上灵活应用了,如果可以我给你指条明路。第一: 你以后的规划,是想上研发方面发展,还是纯粹电子爱好者。
第二: 你是想以后往单片机开发,还是嵌入式系统开发等........。
如果你想搞纯粹单片机开发,建议你直接学习STM32单片机,现在电子行业STM32单片机已经是主流了,你C语言有没有学好,你一看ARM单片机你知道了,很多人说ARM单片机比较难学习,这说明他们C语言没有学好,自己都说51单片机玩的很牛才转向ARM,哎,废话不多说。追问
我只是个大一电子信息专业的学生,这个寒假才自学的单片机,在网上面买了块单片机实验板学习而已,我现在只是掌握了学习板上面的那些功能而已,比如说流水灯,数码管,定时器,中断,串口通信,键盘之类的这些知识,我现在很迷茫,因为自己除了能通过外接个1602液晶显示屏在上面能弄个随意调节时间的电子时钟之外,什么都不会,我现在不知道该继续往哪方面学习,望您能多给些建议
追答/*************************************************************************************************
你还是大一学生啊,那学习的时间是很充足,记住我一句话:C51单片机的概念,是学习C语言,不是单片机只是51单片机简单,用它来学习C语言的,你要把C语言吃透,必须在51单片机上,把C语言的一系列的语句能灵活自如
的应用,这样才可以,想把C语言吃透必须多做实验、总结经验,多到论坛里面看看别人做的DIY,自己也试着去独立完成,记住多做实验。
你可以再51上面多花点时间、毕竟你还是大一学生、花个一年半载,再去学习STM32,注意只要你有程序思想
什么单片机都不在话下。
切记学习单片机千万不要浮躁,要先把基础打好。
***************************************************************************************************/
谢谢你的回答,帮我解开了一些学习上的迷惑,我还想请问一下,如果以后要做单片机工程师这样一类的工作,是不是还要学会设计电路?如果要学习这方面的知识,除了要懂Protel 99软件的使用之外,还需要学哪方面的理论知识?是数电模电吗?
追答/***********************************************************************************
对单片机开发,单片机是依赖硬件的,如果想做一名合格的开发工程师具备条件如下:
第一: 原理图,PCB必须独立完成设计。
第二: 硬件,模电数电必须有一定功底。
第三: 热爱学习,必须有一定自学能力。
第四: 抗压力能力要强。
注意:以上是单片机开发工程师最基本的条件,我深有感触,当你项目积压,无法完成任务
后面有一群人催你时,那日子真的很煎熬,当项目完成后,还要自学新知识,因为很多项目都是你
以前没有接触后,研发就是一项创新。
************************************************************************************/
1)因此可以从实际工程角度,进行项目开发,从而巩固学过的知识;
2)结合C51语言,进一步学习C,C++语言的,把C语言吃透,把C语言的一系列的语句能灵活自如;
3)如果想搞纯粹单片机开发,可以继续学习STM32单片机,现在电子行业STM32单片机已经是主流了,同时stm32也是一款简单的基于ARM架构的单片机。 参考技术B 我是学了51以后学的ARM11,但是感觉学着很吃力,不是因为单片机没学好,而是ARM本身的东西就比较的多,其实学了51以后可以试着接触一些高端一点的单片机,这样循序渐进的来效果会好点,在学ARM的时候会感觉很轻松,我是在学点ARM以后又回头看AVR感觉是很随意了,现在依然在学51,做51的项目,需要学的东西很多,希望可以帮到您 参考技术C 十天学完后,看吴鉴鹰单片机实战精讲是可以的,前者可以了解一下单片机的基础知识,后者让你了解项目的开发技巧和调试方法,比如示波器的使用,程序调试的常见错误,还有怎么入手一些大一点的项目,像燃气报警器,贪吃蛇,大字万年历,都是新手培养编程思路和调试方法很好的资料。 参考技术D 我觉得,你还是结合实际一下吧。
用什么学什么,跟工作联系一下啦。。。
不要一味的研究这,研究那,可能到时,真正用起来,你一个都不会用。。。
十天学会单片机Day0点亮LED
数据类型 | 关键字 | 所占位数 | 表示数范围 |
无符号字符型 | unsigned char | 8 | 0~255 |
有符号字符型 | char | 8 | -128~127 |
无符号整型 | unsigned int | 16 | 0~65535 |
有符号整型 | int | 16 | -32768~32767 |
无符号长整型 | unsigned long | 32 | 0~2^32-1 |
有符号长整型 | long | 32 | -2^31~2^31-1 |
单精度实型 | float | 32 | 3.4e-38~3.4e38 |
双精度实型 | double | 64 | 1.7e-308~1.7e308 |
位类型 | bit | 1 | 0~1 |
2.C51数据类型扩充定义
单片机内部有很多特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般根据寄存器的功能不同赋予不同名称。操作时,需声明,即将地址编号赋给这个名称。(见reg52.h头文件)
sfr | 特殊功能寄存器的声明,声明一个8位的寄存器 |
sfr16 | 16位特殊功能寄存器的数据声明 |
sbit | 特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位 |
bit | 位声明变量,当定义一个位变量时可使用此符号 |
3.为什么发光二极管接1kΩ电阻
发光二极管,通过电流I为5mA时即可发光,一般控制在3~20mA,电流过大为烧毁。
而发光二极管的导通压降为1.7V,而供电为5V。 3.3 = 5 - 1.7。
3.3V / 1000Ω = 3.3mA
大约接1kΩ电阻时,二极管可正常发光,此电阻又称 限流电阻。
4.单片机晶振旁两个电容作用
①一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。(为满足谐振条件所以要对称)
它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。
从原理上讲直接将晶振接到单片机上,单片机就可以工作。但这样构成的振荡电路中会产生谐波(也就是不希望存在的其他频率的波),这个波对电路的影响不大,但会降低电路的时钟振
荡器的稳定性。即只有在外部所接电容为匹配电容的情况下,振荡频率才能保证在标称频率附近的误差范围内。电容在此起到了滤波(去杂波)的作用。
②由于单片机电源为开关电源,不稳定,两个去耦电容起到缓冲稳压的作用。
比较常用的为15p-30pf之间.两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。
5.锁存器
74HC573
OE(上划线) out Enable 使能端:低有效。这里直接接地,表示有效。若接高Q表现出高阻态,即其电平高低取决于与其相连的电路。
LE由单片机控制,LE高时,Q=D;可以实时控制LED灯的亮灭。LE低时,D=Q0,Q0为上一次的电平状态。
由于单片机引脚有限,同个IO口,用于控制不同电路。将LE置低,则LED不会随IO电平变化而变化,将其忽略,减少其影响。
6.点亮第一个LED
位操作法
1 #include <reg52.h> 2 sbit LED0 = P1^0; 3 4 int main() 5 { 6 LED0 = 0; 7 return 0; 8 }
总线法
1 #include <reg52.h> 2 3 int main() 4 { 5 P1 = 0xFE; //由高到低P1^7 ……P1^0 6 return 0; 7 }
以上是关于看完郭天祥“十天学会单片机”之后学啥?的主要内容,如果未能解决你的问题,请参考以下文章
我看的是郭天祥老师的51单片机C语言教程,关于“串行口打印在调试程序中的应用”一节中