78K0单片机C语言教程.pptx_第1页
78K0单片机C语言教程.pptx_第2页
78K0单片机C语言教程.pptx_第3页
78K0单片机C语言教程.pptx_第4页
78K0单片机C语言教程.pptx_第5页
已阅读5页,还剩152页未读 继续免费阅读

下载本文档

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

文档简介

第一章单片机基础知识 单片机 单片微控制器 不是完成某一个逻辑功能的芯片 而是把一个 计算机系统 集成到一个芯片上 一块芯片就成了一台计算机 它的体积小 质量轻 价格便宜 为学习 应用和开发提供了便利条件 学习使用单片机是了解计算机原理与结构的最佳选择 第一代 七十年代后期 4位逻辑控制器件发展到8位 nmos工艺 速度低 功耗大 集成度低 代表产品 mc6800和intel8048第二代 八十年代初 cmos工艺 并逐渐被高速低功耗的hmos工艺代替 代表产品 mc146805和intel8051第三代 近十年来 mcu的发展出现了许多新特点 1 在技术上 由可扩展总线型向纯单片型发展 即只能工作在单片方式 2 mcu的扩展方式从并行总线型发展出各种串行总线 3 将多个cpu集成到一个mcu中 4 在降低功耗 提高可靠性方面 mcu工作电压已降至3 3v 第四代 flash的使用使mcu技术进入了第四代 单片机的发展历史 抗干扰能力强 可靠性好 工作温度范围宽控制功能强 数值计算能力相对较差指令系统比通用微机的指令系统简单 具有许多面向控制的指令具有很高的性价比 单片机的特点 单片机在智能仪器仪表中的应用 单片机在工业测控中的应用 单片机在计算机网络和通讯技术中的应用 单片机在日常生活及家电中的应用 单片机在办公自动化方面 单片机的应用领域 有nec赞助的开发工具有实验仪器 为什么学nec单片机 硬件电路设计软件设计 课程目标 学习方法 读图 实验仪器电路图是最好的硬件例子 学会了 将来做适当修改即可设计出各种实用图纸 读程序 上机操作的程序是最好的软件例子 学会了 将来做适当修改即可设计出各种实用程序 课堂实施方案 主动提问题讨论 每人20个 每个1分 单片机应用系统硬件组成 nec单片机教学实验仪简介 1实验仪外观 布局和图纸 2功能特点和实验项目 nec单片机教学实验仪集成有强大的硬件资源 为用户提供了多种选择 使用户可以进行各种相关的实验 基于pm sm 的仿真调试功能 带有128kb的flash用于用户的程序下载 i2c接口的eeprom实验电路 基本i 0口插排 2功能特点和实验项目 续 4 6行列键盘电路 按键中断及复位电路 a d转换器的应用电路 温度压力扩展应用电路 红外遥控电路 4 4led点阵模块 7段码显示电路 lcd 蜂鸣器驱动控制电路 音乐喇叭驱动控制电路 步进电机 直流电机实验 rs 232和rs 485接口电路 can应用电路 lin应用电路 spi应用电路 nec单片机参考文档www cn necel com 设备文档 1 78k0 kf2用户手册 u17397e 2 u17397e78k 0系列指令用户手册 u12326e 开发工具 软件 文档 1 ra78k0ver 3 80 汇编包 操作 u17199e 语言 u17198e 结构化汇编语言 u17197e 2 cc78k0ver 3 70 c编译器 操作 u17201e 语言 u17200e 3 sm 系统仿真器 操作 u17246e 开放式外部用户接口规范 u17247e 4 id78k0 qbver 2 90集成调试器 操作 u17437e 5 pm ver 5 20 u16934e 开发工具 硬件 文档 1 qb 78k0kx2在线仿真器 u17341e 2 qb 78k0mini片上调试仿真器 u17029e nec单片机产品概述 78k0 kx2系列upd78f0547d 第四章硬件结构 构建最小系统 1 1引脚图 内部功能框图 第一节nec单片机硬件结构 p71 7 1 2引脚功能 1 电源引脚cpu电源vdd 地vss 端口电源evdd 地evss 外部低电压检测的电压输入引脚exlvi 1 图3 225v稳压电路图 2 时钟电路引脚时钟分外部输入时钟与系统时钟两种 同时还分为主时钟与副时钟两类 外部时钟 外部时钟输入exclk 主时钟 14 外部时钟输入exclks 副时钟 11 系统时钟 内部时钟 晶体振荡器 主时钟 x1 x2 14 15 晶体振荡器 副时钟 xt1 xt2 11 12 主时钟高频 副时钟低频 时钟频率越低 功耗越低 内部时钟中频 可节省引脚占用 3 输入 输出引脚 i o引脚 78f0547d共有71个8位的i o口以实现数据的输入输出 分别为p0 p00 p06 p1 p10 p17 p2 p20 p27 p3 p30 p37 p4 p40 p47 p5 p50 p57 p6 p60 p67 p7 p70 p77 p12 p120 p124 p13 p130 p14 p140 p145 4 ad转换功能ani0 ani7共8路ad转换通道 参考模拟电压avref 59 模拟地avss 60 5 定时 计数器2通道16位定时器 事件计数器tm00 tm012通道8位定时器 事件计数器tm50 tm512通道8位定时器h0 h11通道钟表定时器1通道看门狗定时器 6 中断中断分外部中断与内部中断 共有29个中断源 即外中断9个 内部中断20个 9个外部中断 7个外部中断intp0 intp71个键盘中断 intkr0 intkr7 1个钟表定时器溢出intwt 7 串口1个1线lin总线uart61个3线串行uart02个3线串行csi10和csi111个具有自动收发功能的3线串行csia01个i2c总线 8 控制信号flmd0 闪存编程模式设置引脚buz 蜂鸣器输出引脚pcl 可编程时钟输出引脚 reset 系统复位输入引脚 第二节最小系统构成 2 1复位电路 图4 3复位电路 图4 4最小系统复位电路 2 2时钟电路 78f0547d单片机的时钟产生有以下3种方法 1 外部时钟方式 主时钟 将外部时钟脉冲接入exclk引脚 子时钟 将外部时钟脉冲接入exclks引脚 x2 s xt2 2 内部时钟方式 主时钟 在引脚x1和x2两端接晶振 利用单片机内部的振荡器 就构成了稳定的自激振荡器 外接晶振时 晶振两端的电容一般选择为30pf左右 晶振的频率范围为1 2mhz 12mhz 子时钟 在引脚xt1和xt2两端接晶振 利用单片机内部的振荡器 就构成了稳定的自激振荡器 外接晶振时 晶振两端的电容一般选择为30pf左右 晶振的频率为32khz xt2xt1 32khz 3 高速内置时钟78k0内置8mhz时钟 如无特殊要求 可利用内置时钟 主时钟通过执行stop指令或设置主osc控制寄存器 moc 和处理器时钟控制寄存器 pcc 可停止振荡 子时钟通过设置处理器时钟控制寄存器 pcc 和时钟工作模式选择寄存器 oscctl 可停止振荡 高速内置时钟通过执行stop指令或设置内置振荡器模式寄存器 rcm 可停止振荡 主时钟 子时钟 高速内置时钟3者只能选择其一工作 其余2个要停止 低速内置时钟 看门狗定时器 wdt 所用的240khz时钟信号 reset释放后 低速内置振荡器开始工作 若optionbyte中设定了 低速内置振荡器可以使用软件停止 那么可以通过设置内置振荡器模式寄存器 rcm 来停止振荡 78f0547d单片机时钟的控制 2 378k0单片机最小系统 图4 6最小系统 第三节存储器空间3 478k0存储结构 使用步骤1 在程序的开始声明特殊功能能寄存器 pragmasfr 特殊功能能寄存器声明 使用步骤2 在主函数开始 选择存储器容量 4 2内部存储器容量切换寄存器 ims 在主函数开始 需要首先对ims进行设置 以选择内部高速ram和flash的容量 4 3内部扩展ram容量切换寄存器 ixs 然后对ixs进行设置 以选择内部扩展ram的容量 voidmain ims 0xcc 内部存储器容量切换寄存器设置 必须有 ixs 0x00 内部扩展ram容量切换寄存器设置 必须有 对选定的某型号的cpu 设定值是固定的 对78f0547d ims 0xcc 1k字节内部高速ram48k字节内部rom flash ixs 0x00 6k字节内部扩展ram 第五章基本端口功能 输入输出口 i o口 是单片机与外部联系的唯一途径 通用i o gpio generalpurposei o 有时也称为并行i o paralleli o 是i o的最基本形式 upd78f0547d有11个并行i o端口 记作p0 p1 p2 p3 p4 p5 p6 p7 p12 p13 p14 除p13端口只做输出外 其余端口均可作为输入输出功能使用 第一节交通灯硬件电路 本项目主要设计一个方向的交通灯控制电路 要求有红 黄 绿三盏灯 每个灯的定时时间可以预设 按照绿灯 黄灯 红灯顺序点亮 循环往复 电路主要包括led 单片机最小系统 图5 2交通灯硬件电路 第二节端口功能2 2端口内部结构 端口0是具有输出锁存功能的7位i o端口 通过使用端口模式寄存器0 pm0 可以位选端口0为输入或输出模式 如果p00 p06作为输入端口 则内部上拉电阻的使用可以通过上拉电阻选择寄存器0 pu0 以1位单元的方式指定 这个端口还可以用于定时器i o 串行接口数据i o 时钟i o和芯片选择输入 三态门1 输入缓冲器8 选择器7 与非门2 非门5和6 及场效应管3 上拉电阻4 1 2 5 6 8 3 7 4 0 输出 0 1 1 1 1 输出 三态门1 与非门2 场效应管3 上拉电阻4 非门5和6 选择器7 输入缓冲器8 1 2 5 6 8 3 7 4 0 输出 0 1 三态门1 与非门2 场效应管3 上拉电阻4 非门5和6 选择器7 输入缓冲器8 1 5 6 8 3 7 4 1 输入 1 1 0 1 输出功能 设置端口功能寄存器pm为0 1号三态门打开 输出锁存寄存器p中的值就对外输出 使用传送指令对输出锁存器进行写操作 输出锁存器的内容从引脚输出 一旦数据写入输出锁存器 它将一直保存到新数据被写入 当复位信号产生时输出锁存器的内容被清零 2 输入功能 设置端口功能寄存器pm为1 1号三态门关闭 输出锁存寄存器p中的值就不能对外输出 外部数值通过3 4两个非门到达选择器 通过选择器被内部总线读取 3 上拉电阻选择 当端口功能寄存器pm为1 输入时 设置上拉电阻选择寄存器pu为1 2号与非门输出为0 功率管导通 即可使用上拉电阻 上拉电阻将输入信号通过电阻连接到电源 电阻起限流作用 当开关断开时 上拉电阻迅速将信号拉高为高电平 若没有上拉电阻 则开关断开时的电平不确定 第三节软件设计 单片机端口使用输出功能 端口模式寄存器设置为0 pragmasfr 特殊功能能寄存器声明 voiddelay 灯延时函数 inti j for i 0 i 500 i for j 0 j 500 j voidmain ims 0xcc 内部存储器容量切换寄存器设置 必须有 ixs 0x00 内部扩展ram容量切换寄存器 必须有 pm1 0 0 端口模式为输出模式 pm1 1 0 端口模式为输出模式 pm1 2 0 端口模式为输出模式 while 1 当为1时 条件为真 一直循环 delay p1 0 0 输出低电平 绿灯亮 p1 1 1 p1 2 1 delay p1 0 1 p1 1 0 输出低电平 黄灯亮 p1 2 1 delay p1 0 1 p1 1 0 输出低电平 黄灯亮 p1 2 1 delay p1 0 1 p1 1 1 p1 2 0 输出低电平 红灯亮 第六章中断功能 3 2存储器单元和存储单元地址3 3访问存储器3 478k0存储结构3 4 1内部程序存储空间3 4 2存储器组3 4 3内部数据存储空间3 4 4特殊功能寄存器 sfr 区域微型计算机结构简介cpu和控制寄存器程序计数器 pc 第一节中断基础知识第二节计数器硬件电路 存储器 地址译码器 1个4位存储单元 1 4存储器原理图 读写控制电路 wr 16 8的存储器 微型计算机结构框图 三态门1 输入缓冲器8 选择器7 与非门2 非门5和6 及场效应管3 上拉电阻4 1 2 5 6 8 3 7 4 0 输出 0 1 1 1 1 输出 特殊功能寄存器 特殊功能寄存器在功能上与一般存储器不同 对i o接口而言 接口控制寄存器控制各接口的功能 接口数据寄存器向外设发送数据或接受来自外设的数据 但特殊功能寄存器的读写与存储器完全相同 每个特殊功能寄存器都有一个唯一的地址 在描述各个i o接口的功能时 为了方便 可以认为特殊功能寄存器分布在各个相应的i o接口中 从存储器组织和使用的角度 希望具有相同功能的存储器单元具有连续的地址范围 rom连续占一段 ram连续占一段 特殊功能寄存器通常是独立使用的 地址连续与否并不重要 但为了清晰和整齐 为它们安排了最后的256个地址 cpu和控制寄存器 cpu中包含了3个控制寄存器 程序计数器pc程序状态字psw堆栈指针sp控制寄存器的内容不能由通常的指令改写 只能由几个特殊指令改写 内容的改变通常是自动的 程序计数器 pc pc是一个16位寄存器 用于存放下一条将要执行的指令的地址 复位信号将复位向量表中地址为0000h和0001h中的值 第一条指令的地址 赋给pc 正常情况下 根据获取的指令的字节数 pc的值会自动累加 即取出一条指令后 pc的值为下条指令的地址 当执行分支指令时 则将分支开始处第一条指令的地址赋给pc 当执行调用子程序指令时 则首先将pc的值自动存入堆栈中 然后将子程序开始处第一条指令的地址赋给pc 进入子程序 当子程序结束时 子程序返回指令自动将堆栈中的值恢复到pc中 主程序得以从断点处继续执行 中断向量表 第三节中断控制器端口功能 3 1内部功能框图 中断请求 abdbcb 0正在服务高优先级中断 中断服务的基本操作 中断源生成器 外设提出中断请求 当脉冲沿检测成功时 中断请求被通过 中断请求标志位 被通过的中断请求 在中断请求标志寄存器if中设置相应的中断请求标志位ifx 每个中断源仅设置相应的一个中断请求标志位 1位 因此 在中断被响应之前 即使是相同的中断请求再次发生 也只会被认为发生了一次 中断请求标志能由cpu自动清除 优先级控制器 中断屏蔽寄存器的设置决定了允许或屏蔽中断请求标志 一个允许的中断请求被通过 一个被屏蔽的中断请求标志不被通过 处于等待状态 一旦取消屏蔽 处于等待状态的中断请求被通过 优先级控制器比较同时通过的中断请求的优先级 pr 和正在执行的中断的优先级 isp 如果两个或两个以上的中断请求同时通过 则首先响应优先级指定标志 pr 中优先级高的请求 如果两个或两个以上的中断请求具有相同的优先级 pr 则首先响应默认优先级高的中断请求 实际执行中断的cpu 最高优先级的中断请求得到优先级控制器批准 cpu准备响应该中断请求 准备过程自动完成下列工作 清除该中断请求标志if 将psw pc的内容依次保存到堆栈中 保护现场 修改psw 将ie标志复位为0 关中断 并将被响应的中断的优先级pr送到isp中 修改pc 根据30个不一样的中断源所产生的中断 将该中断请求对应的向量表地址中存放的中断服务子程序的入口地址传送到pc中 cpu执行中断服务子程序 中断返回 cpu执行完中断服务子程序后 自动将保存在堆栈中的内容恢复到psw pc中 恢复现场 从中断处返回继续执行主程序 3 2控制寄存器 78k0单片机中6种寄存器用于控制中断功能 中断请求标志寄存器 if0l if0h if1l if1h 中断屏蔽寄存器 mk0l mk0h mk1l mk1h 优先级指定寄存器 pr0l pr0h pr1l pr1h 外部中断上升沿使能寄存器 egp 外部中断下降沿使能寄存器 egn 程序状态字 psw 1 中断请求标志寄存器 if0l if0h if1l if1h 复位时 这些标志被清0 开始运行时 不处理中断 当产生中断请求时 相应的中断请求标志位自动置1 当某中断请求被响应时 该中断请求标志位自动被清0 防止一次申请被多次响应 中断请求标志寄存器 if0l if0h if1l if1h 各位意义 2 中断屏蔽寄存器 mk0l mk0h mk1l mk1h 中断屏蔽标志用于允许 禁止相应的可屏蔽中断 复位信号将这些寄存器的内容设置为1 屏蔽所有中断 在使用中断前 用指令设置这些寄存器 对要使用的中断 对应的屏蔽位设为0 允许该中断 中断屏蔽寄存器 mk0l mk0h mk1l mk1h 各位意义 3 优先级指定寄存器 pr0l pr0h pr1l pr1h 优先级指定寄存器用于设置各中断的优先级 复位信号将这些寄存器的内容设置为1 低优先级 在使用中断前 用指令设置这些寄存器 优先级指定寄存器 pr0l pr0h pr1l pr1h 各位的意义 4 外部中断上升沿使能寄存器 egp 外部中断下降沿使能寄存器 egn 这两个寄存器指定intp0 intp7的有效沿 复位信号将这些寄存器清0 上下沿均无效 在使用中断前 用指令对egp和egn进行设定 外部中断上升沿使能寄存器 egp 外部中断下降沿使能寄存器 egn 各位意义 5 程序状态字 psw psw中保存着两大类信息 指令执行结果 中断的状态 中断总开关ie 允许 禁止可屏蔽中断 和isp 正在服务的中断的优先级 用于控制中断嵌套 复位信号将psw的ei位清0 关中断 将isp位设为1 低优先级 在使用中断前 使用专用指令 ei和di 对psw的ei位进行设定 ei开中断 di关中断 为了使用中断 当然要开中断 被响应的中断的优先级pr自动送到isp中 控制寄存器设置要点总结 中断请求标志寄存器 if0l if0h if1l if1h 自动产生和清除中断屏蔽寄存器 mk0l mk0h mk1l mk1h 对要使用的中断 设为0 允许该中断 优先级指定寄存器 pr0l pr0h pr1l pr1h 对要使用的中断 可设为0也可1 对只有一个中断的情况 啥都一样外部中断上升沿使能寄存器 egp 外部中断下降沿使能寄存器 egn 一般设为egp 1 egn 0 上升沿产生中断程序状态字 psw 要使用中断 当然要设ei 0 打开中断总开关 isp被自动赋值 第四节软件设计 pragmasfr pragmainterruptintp0led intp0 定义使用intp0中断 中断函数名led intp0 pragmadi 禁止使用中断功能声明 pragmaei 允许使用中断功能声明 unsignedcharled light 10 0 x3f 0 x30 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 数码管编码数组 unsignedcharj 0 按键次数变量 voidhdinit 硬件初始化 pm1 0 p1端口模式为输出模式 pu1 0 xff p1端口使用上拉电阻 pm12 0 0 p12 0 端口模式为输出模式 pu12 0 1 p12 0 使用上拉电阻 pif0 0 intp0中断请求标志 没有中断请求 pmk0 0 intp0中断屏蔽标志 允许中断 ppr0 1 intp0中断优先级 低优先级 egp 0 1 intp0的有效沿 与egn组合 上升沿有效 egn 0 0 voidmain void di 首先做准备 禁止中断 ims 0xcc 内部容量设置 必须有 ixs 0x00 内部容量设置 必须有 hdinit ei 准备完成 允许中断 while 1 主程序没有任何实质任务 只是循环等待中断 interruptvoidled intp0 中断函数 p1 led light j p1端口赋值 数码管显示相应数值 j 按键次数加1 if j 10 如果按键次数达到10次 按键计数归0 j 0 20 4 3中断嵌套 在执行一个中断服务程序时 又响应了其他中断 称中断嵌套 在响应一个中断请求后 若关中断 ie 0 则禁止响应其它中断请求 不会产生中断嵌套 因此 要允许中断嵌套 必须在中断服务期间执行ei指令 使ie 1 从而允许响应其它中断请求 此外 即使开中断 也不一定能产生中断嵌套 因为还要受到中断优先级的控制 可使用两类优先级控制方式 默认优先级和可编程优先级 可编程优先级只有0和1两级 在中断允许状态中 如果产生的中断请求的优先级高于正在服务的中断优先级 则响应该中断请求 产生中断嵌套 如果产生的中断请求的优先级低于正在服务的中断优先级 则不响应该中断请求 由于禁止中断或中断请求的优先级别较低 不被允许的中断请求处于等待状态 若当前的中断服务已结束 则在执行至少一条主程序指令后才可响应处于等待状态的中断请求 由于未开中断没产生中断嵌套 在intxx中断服务期间不允许中断 未执行ei指令 因此不响应中断请求intyy 这样不会产生中断嵌套 中断请求intyy处于等待状态 在执行一条主程序指令后响应该中断请求 由于优先级控制没产生中断嵌套 在intxx中断服务期间不响应中断请求intyy 因为intyy的优先级低于intxx 这样就不会产生中断嵌套 中断请求intyy处于等待状态 在执行一条主程序指令后响应该中断请求 产生两次中断嵌套 在进行intxx中断服务期间 响应了两个中断请求intyy和intzz 这时就产生了两次中断嵌套 在响应每个中断之前 必须先执行ei指令才能允许响应中断请求 第七章tm00定时器 定时 捕捉 比较寄存器 比较寄存器定时属简单应用对内部时钟计数 时钟频率恒定用于产生 定时中断 方波 占空比可调的脉冲波等 结束 定时 输出 概述自动运行 定时 输出 概述 结束 定时自动运行 结束 方波输出自动运行 结束 ppg输出自动运行 计数 捕捉 比较寄存器 比较寄存器计数属简单应用对ti000输入的脉冲计数 脉冲频率随机 结束 ti000计数 输出 概述自动运行 ti000计数 输出 概述 结束 ti000计数 输出 自动运行 ti000计数 输出 捕捉 捕捉 比较寄存器 捕捉寄存器 定时 与 计数 的组合 复杂应用用于测量ti000输入脉冲的周期 占空比 转速等 ti000触发捕捉自动运行 结束 1 ti000触发捕捉 1 16位定时器计数器00 tm00 如出现以下情况 计数值复位为0000h 复位信号的产生tmc003和tmc002被清零在ti000引脚输入有效沿进入清零和启动模式下在tm00和cr000相等时进入清零和启动模式下在单脉冲输出模式下如果ospt00被设置为1或ti000引脚输入有效沿时 16位定时器捕捉 比较寄存器cr000 i cr000用作比较寄存器cr000的设置值与16位定时器计数器tm00的计数值频繁地相比较 如果相等将产生一个中断请求 inttm00n 在cr000被重写前一直保持这个值 ii cr000用作捕捉寄存器当输入捕捉触发时 tm00的计数值被捕捉到cr000 可以使用crc00或prm00选择ti000引脚的反向脉冲沿或ti010引脚的有效沿作为捕捉触发 16位定时器捕捉 比较寄存器cr010 i cr010用作比较寄存器cr010的设置值与16位定时器计数器tm00的计数值频繁地相比较 如果相等将产生一个中断请求inttm01 在cr010被重写前一直保持这个值 ii cr010用作捕捉寄存器当输入捕捉触发时 tm00的计数值被捕捉到cr010 可以选择ti000引脚的有效沿作为捕捉触发 ti000有效沿由prm00来设置 3 2控制寄存器 16位定时器 事件计数器00的控制寄存器 16位定时器模式控制寄存器tmc00捕捉 比较控制寄存器crc0016位定时器输出控制寄存器toc00预分频器模式寄存器prm00端口模式寄存器pm0 端口寄存器p0 16位定时器模式控制寄存器tmc00 捕捉 比较控制寄存器crc00 16位定时器输出控制寄存器toc00 单脉冲控制 预分频器模式寄存器prm00 端口模式寄存器pm0端口寄存器p0 如果使用p00 ti000引脚用于定时器输入 则需要将pm00设置为1 如果使用p01 to00 ti010引脚用于定时器输入 则需要将pm01设置为1 如果使用p01 to00 ti010引脚用于定时器输出 则需要将pm01设置为0以及p01的输出锁存器清0 注意弄清3种运行模式 自由运行定时器模式清零 启动模式 通过ti000引脚有效沿输入进入 清零 启动模式 在tm00与cr000相等时进入 4 1程序暂时不看4 6 1 2 3 第二节秒表硬件电路 第一节ad转换原理 1 1逐次逼近ad转换原理 电子开关 dn 1时 sn接avref dn 0时 sn接地端 最低位 最高位 avref i1 i2 i3 当d3d2d1d0 1111时 lsb msb i i3 i2 i1 i0 i0 avref 23r avref 22r avref 21r avref 20r 第二节ad转换端口功能 a d转换器的框图 2 1a d转换器硬件 1 ani0 ani7引脚这些是8通道a d转换器的模拟输入引脚 用于输入模拟信号 以便转换成数字信号 除了那些被选为模拟输入的引脚外 其它引脚均可用作i o端口引脚 2 采样 保持电路采样 保持电路在a d转换器启动时用于采样由选择器选择的模拟输入引脚的输入电压 并在a d转换期间保持采样到的电压值 3 串联电阻串串联电阻串用于连接avref和avss 并产生一个电压 与采样到的电压值进行比较 4 电压比较器电压比较器用于比较采样到的电压值与串联电阻串的输出电压 5 逐次逼近寄存器 sar 该寄存器用于转换电压比较器所比较的结果 并从最高有效位 msb 开始 当电压被转换成数字值 并写入最低有效位时 a d转换结束 将sar的内容传送到a d转换结果寄存器 adcr 中 6 10位a d转换结果寄存器 adcr 每次a d转换结束时 将a d转换结果从逐次逼近寄存器 sar 传送至该寄存器中 转换结果保存在该寄存器的高10位中 低6位恒为0 7 控制器该电路用于控制a d转换的启动和停止操作 当a d转换结束时 该控制器产生中断intad 8 avref引脚该引脚为a d转换器输入一个模拟供电 参考电压 当端口2用作数字端口时 该引脚的电压应与vdd的电压保持一致 根据通过avref和avss的电压 将输入到ani0 ani7的信号转换成数字信号 9 avss引脚这是a d转换器的信号地引脚 即便没有使用a d转换器 该引脚的电压也应与vss的电压保持一致 10 a d转换器模式寄存器 adm 该寄存器用于设置被转换的模拟输入信号的转换时间 并启动或停止转换操作 11 a d端口配置寄存器 adpc 该寄存器用于将ani0 p20 ani7 p27引脚切换成a d转换器的模拟输入或端口的数字i o输入 12 模拟输入通道选择寄存器 ads 该寄存器用来选择输入模拟电压 将被转换成数字信号 的端口 13 端口模式寄存器2 pm2 该寄存器用于将ani0 p20 ani7 p27引脚切换为输入或输出 2 2a d转换器使用的寄存器 a d转换器模式寄存器 adm 10位a d转换结果寄存器 adcr 8位a d转换结果寄存器 adcrh a d端口配置寄存器 adpc 端口模式寄存器2 pm2 模拟输入通道选择寄存器 ads 1 a d转换器模式寄存器 adm 该寄存器设置模拟输入的a d转换时间 并启动 停止转换 可由1位或8位存储器操作指令设置adm 复位信号产生将该寄存器清零 00h a d转换时间的选择 最短时间6 6usavref越高才能使用更短的时间该表对应的最低avref 2 7v a d转换时间的选择 avref越高才能使用更短的时间该表对应的最低avref 2 3v 最短时间32us 2 10位a d转换结果寄存器 adcr 这是一个16位寄存器 用来存储a d转换结果 寄存器的低6位恒为0 每次a d转换结束时 将转换结果从逐次逼近寄存器传送至adcr中 转换结果的高8位存储在ff09h中 而转换结果的低2位存储在ff08h的高2位中 可由16位存储器操作指令读取adcr 复位信号产生将该寄存器清零 0000h 3 8位a d转换结果寄存器 adcrh 这是一个8位寄存器 用来存储a d转换结果 可以存储10位分辨率的高8位 可由8位存储器操作指令读取adcrh 复位信号产生将该寄存器清零 00h 对于默认全0设置 除转换时间最长以外 ad转换是8位ad转换器 8位结果存于adcrh中 对于其它设置 是否还有8位情况 不知道 可试一试 4 a d端口配置寄存器 adpc 这个寄存器用于将ani0 p2

温馨提示

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

评论

0/150

提交评论