




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机学习心得 计算机科学与技术 班 学号: 单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电 路和数字电路方面的知识,特别是数字电路,因为数字电路在里面的应用很多。 学习单片机最好先从汇编语言入手,虽然汇编语言是低级语言 ,编程效率低, 但它比 C 语言占用内存小,执行速度快等优点,在刚接触单片机时更容易学习。 由于单片机涉及的知识很多,所以我们只能循序渐进的学习,逐步的积累,没 有什么捷径可循。 刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知 道它有什么作用。通过学习才大体知道了单片机的一些知识。由中央处理器 CPU、随机存储器 RAM、只读存储器 ROM、I/O 接口、定时器/计数器以及串 行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。 它的应用范围很广,在工业自动化中应用有数据采集、测控技术。在智能仪器 仪表中应用有数字示波器、数字信号源、数字万用表、感应电流表,自动取款 机等。在消费类电子产品中应用有洗衣机、电冰箱、空调机、电视机、微波炉、 手机、IC 卡、汽车电子设备等。在通讯方面应用有调制解调器、程控交换技术、 手机、小灵通等。在武器装备方面应用有飞机、军舰、坦克、导弹、航天飞机、 鱼雷制导、智能武器等。学习单片机要投入大量的时间,如果只想速成,几乎 是不可能的。由于单片机涉及的知识面很广,不可能在朝夕间就学会,只能一 点点的积累。不积跬步,无以至千里。只有当你一步步去学习、去积累之后, 你的单片机水平才会提高。学习过程中还要注重理解,要逐渐养成自己的编程 思路,在编程过程中还要注意细节问题,如果因为粗心大意将程序写错,将会 无形间给自己带来更大的工作量,随着学习的深入,我们编写的程序将越来越 长,如果出现很多错误,在改错时将会很麻烦,出错越多你改的时间将会越长, 就会无形间给自己带来更多麻烦 。 单片机(micro control unit)是一种集 CPU、RAM、ROM、I/O、中断、 定时/计数等功能为一体的完整的计算机,只需外加主频振荡器和电源,灌入应 用程序就可以实现一定的功能。单片机的的应用特点是“面向测控” 。因此,它 必须有强力的信息处理、检测、控制的功能。学习使用单片机就是理解单片机 硬件结构,以及内部资源的应用,在汇编指令系统或 C 语言中学会各种功能的初 始化设置,以及实现各种功能的程序编制。 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在 模拟电路中 ,连连线并不成为一个问题,因为各器件间一般是串行关系,各器 件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各 器件都要与微处理器相连,各 器件之间的工作必须相互协调?所以就需要的连 线就很多了,如果仍如同模拟电路一样 ,在各微处理器和各器件间单独连线线, 则线的数量将多得惊人,所以在微处理机中引 入了总线的概念,各个器件共同 享用连线,所有器件的 8 根数据线全部接到 8 根公用的线 上,即相当于各个器 件并联起来,但仅这样还不行,如果有两?器件同时送出数据,一 个为 0,一 个为 1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的,所以 要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据 (可以有 多个器件同时接收) 。器件的数据线也就被称为数据总线,器件所有 的控制线被称 控制 总线。 在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被 分配 地址,才能 用,分配地址当 ?也是以电信号的形?给出的,由于存储单元 比较多,所以 ,用于地址分的线也较多,这些线被称为地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本 质都是一样的数字,或者说都是?串0和1 组成的序列。换言之,地址、 指令也都是数据 。指令由单片机芯片的设计者规定的一种数字,它与我们常用 的指令助记符有着严格的 一一对应关,不可以由 单片机的开发者更改。地址: 是寻找单片机内部、外部的存储 单元、输入输出口的依据,内 存单元的地址 值已由芯片设计者规定好,不可更改,外部的 单元可以由单片机开发者自行决, 但有一些地址单元是一定要有的(详见程序的执行过 程) 。数据:这是由微处 理机处理的 象,在各种 不同的应用电路中各不相同,一般而言,被处理的数 据可能有这么几种情况: 1 地址(如 MOV DPTR,#1000H) ,即地址 1000H 送入 DPTR。 2 方式字或控制字(如 MOV TMOD,#3) ,3 即是控制字。 3 常数(如 MOV TH0,#10H)10H 即定时常数。 4 实际输出值(如 P1 口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗, 则执 兄 令:MOV P1,#00H )这里 0FFH 和 00H 都 是实际输出值。又如用于 LED 的字形码,也是实 际? 出的值。 理解了地址、 指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指 令来 行了。 三、P0 口、 P2 口和 P3 的第二功能用法 初学时往往对 P0 口、P2 口和 P3 口的第二功能用法迷惑不解,认为第二功能和原功能之间 要有个切换的过 程,或者说要有一条指令,事实各端口的第二功能完全是自动,不需要指令来 转换。如 P3.6、P3.7 分别是 WR、RD 信号,当微片理机外接 RAM 或有外部 I/O 口 时,它们挥作第二功能,不能作为通用 I/O 口使用,只要一微处理机一 执行到 MOVX 指令,就会有相应的信号从 P3. 或 P3.7 送出,不需要事先用指 令说明。事实上不能作为通用 I/O 口使用也并不是不能而是(使用者) 不会将其作为通用 I/O 口使用。你完全可以在指令中按排一条 S ETB P3.7 的指令,并且当单片机执行到这条指令时,也会使 P3.7 变为高电平,但使用者 不会 这么做,因为这通常这会导致系统当溃(即死机) 。 四、程序的执行过程 单片机在通电复位后 8051 内的程序计数器 (PC )中的值为0000,所以程序总是从 0000单元开始执行,也就是说: 在系统的 ROM 中一定要存在0000个单元,并且在0000单元中存放的 一定是一条指令。 五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有任 何特殊之处,就是内部 RAM 的 一份,特殊的是它存放和取用数据的方式,即 所谓的先进后出,后进先出 ,并且 堆栈有特 的数据传输指令,即 PUSH和甈 OP,有一个特殊的专为其服务的单元,即堆栈指 针 SP 每当 执一次 PUSH 指令时,SP 就(在原来值的基础上)自动加 1,每当执行一次 POP 指令,SP 就(在原 来值基础上)动减 1。由于 SP 中的值可以用指令加以 改变,所以只要在程序开始阶段更改了 SP 值,就可以把堆栈设置在规定的内 存单元中,如在程序开始时?用一条 MOV SP,#5FH 指令,就时把堆栈设置在 从内存单元 60H 开始的单元中。一般程序的开头总有这么条设置堆栈指针的指 令,因为开机时,SP 的初始值为 07H,这样就使堆栈从 08H 单元 开始往后 8H 到 1FH 这个区域正是 8031 的第二、三、四工作寄存器区,经常要被使用,这 会造成数据的浑乱 六:中断 当单片机应用于测控系统时,实时性就显得特别重要了。而中断技术 就是处理这种实时性要求高的场合。单片机的特点是一段程序反复执行,程序 中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则 该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按 下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就 必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常 运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中 断功能是需要合理控制的,在使用中的困难是需要精确地知道什么时候不允许 中断发生(屏蔽中断) 、什么时候允许中断发生(开中断) ,需要设置哪些寄存 器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序 应该干什么等等 。 中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事, 监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情。 这就是中断功能的强大之处。 七:汇编语言与 C 语言 汇编指令有自己的一套繁琐的指令系统,不容易熟练掌握,编写程序不得不 注意硬件细节。相对于 C 语言,汇编语言也有不可忽略的优势,就是在某些特 殊场合需要高效的,占用存储空间小的地方。但随着技术的发展硬件的限制越 来越小,C 语言比较好理解,通用性和可移植性都很不错。也不用记专门的指 令集合来,所以我还是比较倾向于用 C 编写程序的。 接触单片机已经有一段时间了,我感觉自己动手学习编写程序,调试然 后在开发板上做学习的很快,看到自己看到的结果通过自己亲手做出来的感觉 很有成功感。 有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能 慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试, 通过这种方式才能更快速的学习单片机。同事也会从学习中体会成功的喜悦。 看门狗程序 看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到 MCU 的 RST 端,MCU 正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如 果超过规定的时间不喂狗,(一般在程序跑飞时 ),WDT 定时超过,就回给出一个复位信号到 MCU,是 MCU 复位. 防止 MCU 死机. 看门狗的作用就是防止程序发生死循环,或者说程 序跑飞。 工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自 动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从 而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看 门狗。 硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的 运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或 者说 PC 指针不能回来。那么定时时间到后就会使单片机复位。、 本程序通过按键喂狗防止溢出复位 看门狗演示程序 在 16383 个机器周期内必须至少喂狗一次 标准 AT89s52 单片机试验通过。 -*/ #include sfr WDTRST = 0xA6; sbit K1 = P30; sbit K2 = P31; sbit LED1=P11; sbit LED2=P12; void DelayUs2x(unsigned char t);/us 级延时函数声明 void DelayMs(unsigned char t); /ms 级延时 /*- 主函数 -*/ main() LED1=0; DelayMs(100); LED1=1; DelayMs(100); TMOD=0x01; TH0=0xc6; /定时 16ms TL0=0x66; EA=1; ET0=1; WDTRST=0x1e; /在程序初始化中激活看门狗。 WDTRST=0xe1; /先送 1E,后送 E1 if(K1=0) TR0=1; while(1) if(K2=0) TR0=0; LED2=1; LED1=1; DelayMs(100); LED2=0; DelayMs(100); /*- 定时器中断函数 -*/ void Time0(void) interrupt 1 TH0=0xc6; /定时 16ms TL0=0x66; WDTRST=0x1e; /喂狗指令 WDTRST=0xe1; /*- uS 延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振 12M,精
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国男性护理液行业市场全景分析及前景机遇研判报告
- 中班美术活动变脸
- 无创呼吸机应用和护理
- 智慧教育发展
- 煤矿机电运输事故原因及控制对策探究
- 物业品质管理与培训
- 车用尿素研发生产与销售合作协议书
- 房地产租赁合同补充协议书
- 员工培训计划表
- 知识产权侵权代理授权协议
- 冠寓运营管理手册正式版
- 2022年珠海市金湾区体育教师招聘笔试试题及答案
- GB/T 10610-2009产品几何技术规范(GPS)表面结构轮廓法评定表面结构的规则和方法
- 毕业离校学生证遗失证明
- 智慧停车技术方案
- 土地整理质量评定表
- 【告知牌】某公司全套重大危险源告知牌(7页)
- 中考数学复习专题二方程与不等式
- 牛津深圳版七年级下册英语作文汇总
- 供应商管理库存VMI的实施
- 公司“师带徒”实施方案
评论
0/150
提交评论