回想起当初学习AT89S52的日子还近在眼前:毕业后的第一年呆在亲戚公司做了10个月设备管理.乏味的工作和繁杂的琐事让我郁闷不已.思考很久后终于辞职.投奔我的同学去了,开始并不曾想到要进入工控行业,知识想找一份电子类技术职业,至于什么职业我根本没有目标可言.经过两个多月的挫折后我静下来思考,并上网查询一些前辈经验,又经过快2周的考虑我决定先自学单片机,毕竟电子信息专业的,有一点基础.于是买来了开发板(我还在这个论坛上发过小程序呢),下来了大量的资料,几乎很多是从本论坛下载的,我还是得感觉这么多的前辈啊,他们的经验让新人少走了很多弯路.我说下我的学习过程,每个人有每个人的学习方法,希望至少能给刚进入的朋友们一点信心吧.
语言选择: 在买来开发板前我其实已经看过3遍C语言教程了(潭浩强的).但是我选择了重头学习汇编指令.我花了1周熟悉汇编指令,在这一周里我先看透了开发板的原理图,不认识的芯片从网上下了资料,大概的了解芯片的功能.
实验:我买了本,根据别人的例子开始了实验.我记得我做第一个流水灯花了我2天时间.我按照别人例程完成后,又自己思考下能不能用别的方法实现,那时我自己又想了几种方法,虽然现在看来不足以称为好方法,但至少也算自己独立思考的了.这里我要说下我做实验并未按照开发板提供的实验去做,我是自己看完电路图然后自己订了个实现功能实验,实验如下:
第一个实验: 流水灯(开始一遍是参考例子,主要为了熟悉汇编语言的写法),然后自己用定时器再实现一遍,接着再自己整些花哨的流水花样.
第二个实验: 秒表.从0秒运行到24小时,按键可以停止,继续,复位.这个实验其实分为了点亮数码管--动态显示数码管--秒表计时三部分.我自己在实现了从1~9的计数后卡在了10之后的自动计数,无奈之下参考了前辈的10进制的程序,经过1周的努力完成了这第二个实验.
第三个实验S1820B测温. 从开始的打印出前辈的液晶程序看了有1周多,大概了解了
1602液晶模块的驱动程序后又花了1周时间熟悉DS1820B的时序.在这个过程中几次痛苦的想放弃了,
程序根本吃不透.最后我总算是将前辈的程序看了差不多,自己做这个实验时也仅仅是将显示的内容和位置作了修改,其他内容认为看懂了就偷懒没自己写.当看到程序跑起来后还是蛮开心的.
在开始的自学2个多月里我根本不懂IIC,SPI,和RS232,485等串行通信,每个芯片我都根据芯片手册的时序图来痛苦的吃读写指令/.后来进入公司后才发现之前自学的好多芯片是通过以上几种通信方式来通信的.
自学了2个多月后我也终于找到了我人生中的第二份工作可能也是很重要的一次转折的工作.在工作中我暂时还是以学习为主,需要学习的太多了,也是工作后我开始改用C语言写代码.在这里回头看看,我只想告诉新的朋友们:多上网看看前辈的经验,可以少走很多弯路.还有就是基础的知识还是必须自己去吃吃的.完!
关键字:51单片机
引用地址:
大虾谈51单片机入门!
推荐阅读最新更新时间:2024-03-16 13:57
大虾谈51单片机入门!
回想起当初学习AT89S52的日子还近在眼前:毕业后的第一年呆在亲戚公司做了10个月设备管理.乏味的工作和繁杂的琐事让我郁闷不已.思考很久后终于辞职.投奔我的同学去了,开始并不曾想到要进入工控行业,知识想找一份电子类技术职业,至于什么职业我根本没有目标可言.经过两个多月的挫折后我静下来思考,并上网查询一些前辈经验,又经过快2周的考虑我决定先自学单片机,毕竟电子信息专业的,有一点基础.于是买来了开发板(我还在这个论坛上发过小程序呢),下来了大量的资料,几乎很多是从本论坛下载的,我还是得感觉这么多的前辈啊,他们的经验让新人少走了很多弯路.我说下我的学习过程,每个人有每个人的学习方法,希望至少能给刚进入的朋友们一点信心吧. 语言选择:
[单片机]
51单片机复位电路介绍
复位电路: 当MCS -5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。 上电或开关复位要求电源接通后,单片机自动复位,并
[单片机]
基于MCS-51单片机使用定时器编写时钟程序(汇编)
1、仔细想想还不错的思路 用定时器写一个时钟程序,想想都觉得头大。撇开其他花里胡哨的功能,先从最基本的时间显示开始吧,剩下的以后再说。 我们一般希望的是时钟能不停地计时,在需要的时候调用显示来显示当前时间,同时也可以干其他事,所以当然不能用延时来写,不然这个时钟除了只能显示时间之外就是个废物了。 我们希望每定时到一秒的时候来个中断,在中断里使存储里的时间序列加一秒(时间序列以时分秒各一个字节的方式存储)。51单片机定时器0方式1的最大定时时间是216=65536μs,也就是大约65ms出头。但我们可以每50ms来一次中断,中断到第20次的时候时间序列加一秒;或者每20ms来一次中断,到第50次的时候时间序列加一秒。一般来说
[单片机]
51单片机与A/D转换器MAX195的接口设计
MAX195是16位逐次逼近方式的ADC。它将高精度、高速度、低电源功耗(消耗电流仅10μA)的关闭方式等性能结合在一起。内部校准电路对线性度与偏置误差进行校正,所以无需外部调整便可达到全部额定的性能指标。电容性的DAC结构使之具有特有的85kbps跟踪/保持功能,变换时间仅需9.4μs。三态串行数据输出及引脚可选的单极性(0~VREF)或双极性(-VREF~+VREF)的输入范围使之可广泛应用于便携式仪表、医用信号采集及多传感器测量等系统中。 1 MAX195引脚及说明 MAX195有16个引脚,其排列如图1所示。 2 MAX195转换原理及时序 MAX195片内含有电容性的数字模拟变换器(DAC
[单片机]
51单片机(十七)—— 定时器2寄存器介绍及功能描述
这篇文章,我们对51单片机的定时器2的寄存器和功能进行介绍。 1 定时器2控制寄存器T2CON 定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计数器。定时器2有3中模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON进行设置。T2CON寄存器的字节地址为C8H,单片机复位时T2CON全部被清0,T2CON的定义如下表所示。 定时器2控制寄存器T2CON TF2—定时器2溢出标志位。 定时器2溢出时置位,必须由软件清0。当RCLK=1或TCLK=1时,TF2将不会置位。 EXF2—定时器2外部标志。 当EXEN2=1且T2EX
[单片机]
51单片机蜂鸣器演奏《我和我的祖国》
由于同学的需要,于是用51单片机的蜂鸣器功能谱了一首《我和我的祖国》,下面是全部的代码: #include reg52.h sbit beep = P1^5; unsigned char timer0H, timer0L, time; //单片机晶振采用11.0592MHz // 频率-半周期数据表 高八位 本软件共保存了四个八度的28个频率数据 code unsigned char FREQH = { 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//
[单片机]
与51单片机扩展有关的知识点
这些日子做项目,用到外部ram扩展,很是汗颜,很多基本知识点都不会,现在把不会的东西记下来,做个笔记,也和大家共享,学点知识,更好开发产品。 1.单片机中的关键字_at_:定义变量的存储地址。 2.这段程序是什么意思? #define XBYTE((char*)0x20000L) XBYTE =0x41; define XBYTE ((char*)0x20000L) 定义了XBYTE是个指向地址 0x0000L 的字符型指针(或者数组)变量XBYTE =0x41; 对数组XBYTE的第 0x8000个变量进行赋值,赋值为0x41。即对地址0x8000L的内存单元赋值为0x41。这说明你用的是带外部数据总线的51芯片,外部
[单片机]
51单片机应用中5个常见问题总结
本文就51单片机应用中一些常见问题作个总结,这都是我实际碰到过的,因为文章篇幅所限,这些问题远远不足以表达单片机的常见问题。希望对初学者有所帮助,文中不完善的地方务请指点。谢谢! 1:C51编译器如何区分位地址和字节地址 是靠预定义实现的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者声明了P0端口地址位于0x80,后者说明了P0端口的bit0,即P0.0位于位地址空间0x80处。这2个0x80具有完全不同的含义,靠关键字sfr和sbit来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如: C51语句: P0 = 1; P0声明为sfr,因此编译成:mov 80h,01h,将把0
[单片机]