单片机和C语言基础.ppt_第1页
单片机和C语言基础.ppt_第2页
单片机和C语言基础.ppt_第3页
单片机和C语言基础.ppt_第4页
单片机和C语言基础.ppt_第5页
已阅读5页,还剩31页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

社团崛起 之征服单片机 联系方式 姓名 刘敦煌专业 应用电子技术QQ1 844846572QQ2 1262590031手机门 电子科技社团技术部邮箱 844846572 QQ COM 一些建议 学51单片机需要自己多看书多练习程序的编写 知识是不会自己跑到你的脑袋里面去的 不要奢求不花时间不练习就能学好单片机 即使再好的教程和书也是要反复看 不断练 才能掌握 学习的过程更是一个痛苦的过程 但只要你感兴趣 有毅力 有恒心 不段学习 你就能很快掌握 并且很快开发出有自己特色的电子小产品 我那时候就觉得自己很笨 当时我们开始的时候学的是汇编语言 我掌握的不如人家快 就认为是自己笨 后来暑假花了几天的时间用汇编写出了一个时钟程序 并且花半个月的时间天天不停学习C语言编程 才觉得自己学到了一些东西 才感悟到不是自己笨 而是自己没花时间去学习 因为在学校的时候一直 忙于学生会的工作和社团的工作等等 所以才会掌握的没别人快 因此希望大家多花时间在学习上 花了时间后 你掌握的单片机方面的知识绝对要远远超过别人 第一课 51单片机基础知识简介C语言基础知识 51单片机 单片机最小系统 晶振电路 单片机最小系统 复位电路 复位后内部寄存器状态 指令寄存器和指令译码器 指令寄存器中存放指令代码 CPU执行指令时 由程序存储器中读取的指令代码送入指令存储器 经译码器译码后由定时与控制电路发出相应的控制信号 完成指令所指定的操作 堆栈指针SP StackPointer 堆栈指针SP StackPointer 堆栈操作是在内存RAM区专门开辟出来的按照 先进后出 原则进行数据存取的一种工作方式 主要用于子程序调用及返回和中断处理断点的保护及返回 它在完成子程序嵌套和多重中断处理中是必不可少的 为保证逐级正确返回 进入栈区的 断点 数据应遵循 先进后出 的原则 SP用来指示堆栈所处的位置 在进行操作之前 先用指令给SP赋值 以规定栈区在RAM区的起始地址 栈底层 当数据推入栈区后 SP的值也自动随之变化 MCS 51系统复位后 SP初始化为07H 数据指针寄存器DPTR 数据指针DPTR是一个16位的专用寄存器 其高位字节寄存器用DPH表示 低位字节寄存器用DPL表示 既可作为一个16位寄存器DPTR来处理 也可作为两个独立的8位寄存器DPH和DPL来处理 DPTR主要用来存放16位地址 当对64KB外部数据存储器空间寻址时 作为间址寄存器用 在访问程序存储器时 用作基址寄存器 内部存储器结构 P0口 P1 P2 P3 P1 P2和P3口为准双向口 在内部差别不大 但使用功能有所不同 P1口是用户专用8位准双向I O口 具有通用输入 输出功能 每一位都能独立地设定为输入或输出 当有输出方式变为输入方式时 该位的锁存器必须写入 1 然后才能进入输入操作 P2口是8位准双向I O口 外接I O设备时 可作为扩展系统的地址总线 输出高8位地址 与P0口一起组成16位地址总线 对于8031而言 P2口一般只作为地址总线使用 而不作为I O线直接与外部设备相连 中断 中断是指计算机在执行某一程序的过程中 由于计算机系统内 外的某种原因 而必须中止原程序的执行 转去执行相应的处理程序 待处理结束之后 再回来继续执行被中止的原程序的过程 采用了中断技术后的计算机 可以解决CPU与外设之间速度匹配的问题 使计算机可以及时处理系统中许多随机的参数和信息 同时 它也提高了计算机处理故障与应变的能力 中断响应的过程 1 在每条指令结束后 系统都自动检测中断请求信号 如果有中断请求 且CPU处于开中断状态下 则响应中断 2 保护现场 在保护现场前 一般要关中断 以防止现场被破坏 保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈 3 中断服务 即为相应的中断源服务 4 恢复现场 用堆栈指令将保护在堆栈中的数据弹出来 在恢复现场前要关中断 以防止现场被破坏 在恢复现场后应及时开中断 5 返回 此时CPU将推入到堆栈的断点地址弹回到程序计数器 从而使CPU继续执行刚才被中断的程序 中断源 定时器 计数器的方式寄存器TMOD 进制转换 简单的从8421码讲十进制转二进制二进制转十六进制十进制表示 D二进制表示 B十六进制表示 H C语言的简单讲解 C语言是一种编译型程序设计语言 它兼顾了多种高级语言的特点 并具备汇编语言的功能 目前 使用C语言进行程序设计已经成为软件开发的一个主流 用C语言开发系统可以大大缩短开发周期 明显增强程序的可读性 便于改进和扩充 而针对8051的C语言日趋成熟 成为了专业化的实用高级语言 C51的特点 C语言作为一种非常方便的语言而得到广泛的支持 国内最通用的是KeilC51 C语言程序本身不依赖于机器硬件系统 基本上不作修改就可将程序从不同的单片机中移植过来 C提供了很多数学函数并支持浮点运算 开发效率高 故可缩短开发时间 增加程序可读性和可维护性 C 51与ASM 51相比 有如下优点 1 对单片机的指令系统不要求了解 仅要求对8051的存贮器结构有初步了解 2 寄存器分配 不同存贮器的寻址及数据类型等细节可由编译器管理 3 程序有规范的结构 可分成不同的函数 这种方式可使程序结构化 4 具有将可变的选择与特殊操作组合在一起的能力 改善了程序的可读性 5 提供的库包含许多标准子程序 具有较强的数据处理能力 6 由于具有方便的模块化编程技术 使已编好程序可容易地移植 C51的数据声明的一般格式如下 类型说明符 修饰符 标识符 初值 例如 unsignedcharcodeFlag 0 x0f 就是声明一个无符号的char型变量Flag 并给他赋初值为0 x0f 并且声明他所在的存储空间在片内统一编址的ROM中 声明中 如果没有修饰符 则数据默认的存储空间为data型 也就是在片内RAM中 C 51的程序结构与一般C语言的结构相同 以main 函数为程序入口 程序体中包含若干语句还可以包含若干函数 C 51函数的一般格式类型函数名 参数表 数据说明部分语句执行部分 C 51的数据类型 符号 关键字 数的表示范围 所占位数 整型 字符型 实型 有 无 signed int 16 32768 32767 signed short 16 32768 32767 signed long 32 2147483648 2147483647 16 unsignedint 0 65535 32 0 4294967295 unsignedlongint unsignedshortint 16 0 65535 有 float 32 3 4e 38 3 4e38 有 double 64 1 7e 308 1 7e308 有 char 8 128 127 无 unsignedchar 8 0 255 sfr 特殊功能寄存器声明sfr16 sfr的16位数据声明sbit 特殊功能位声明bit 位变量声明例 sfrSCON 0X98 sfr16T2 0 xCC sbitOV PSW 2 名存储空间位置长度数据范围data直接寻址片内RAM8位0 255bdata可位寻址片内RAM1位0 1idata间接寻址片内RAM8位0 255pdata片外页RAM8位0 255xdata片外RAM16位0 65535code程序ROM16位0 65535 C 51的包含的头文件 通常有 reg51 hmath hctype hstdio hstdlib habsacc h常用有 reg51 h 定义特殊功能寄存器和位寄存器 math h 定义常用数学运算 C 51的运算符 与C语言基本相同 加减乘除 位右移位左移 按位与按位或 按位异或按位取反 C 51的基本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论