第七章单片机技术课件徐洪旗全套PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章
A/D与D/A转换
7.1 A/D转换器
计算机存储和处理的数据、信息都是数字的,而在实际生
活中,往往是模拟信息,例如,空调器在调节温度时,它
是通过测量温度的值来实现对压缩机控制的。
如右图所示:
+5V
热敏电阻Rt与固定电阻R组成分压电路
Vt= [Rt/(Rt+R)]x5V
R
当温度变化时,Rt阻值发生变化,Vt值
1 转换结束 (AIEN=0) COCO= 0 转换未结束 (AIEN=0)
用软件查询COCO位,为1则本次转换完成,可以把AD数据读 走 否 则 继 续 等 待 , 直 到 COCO = 1 , 但 这 种 情 况 下 , 必 须使 AIEN=0,才有效,即关掉中断申请允许位,COCO标志可以 用软件来清0。
举例:编写一段程序,使用中断方式对通道0输入的模拟 信号采样(原理图见P153)
主流程
中断流程
初始化芯片
读数据
设置ADC通道0 及中断允许
清中断
开中断
循环等待
中断返回
电压也随之变化,但是,Vt值是模拟量, Vt
要让计算机处理这个值,必须将其模拟量
Rt
转换成数字量。
ADC模块正是为完成上述功能而设置的。
7.1 A/D转换器
MC68HC08JL3芯片的PTB和PTD0~3共有12位I/O引脚可
复用为A/D转换的输入引脚。在单片机内部集成了一个8位的 A/D转换器(ADC) ,通过多路选通开关,12路输入引脚中任何 一路都可以被选通,进行A/D转换,但在某一时刻只能有一路信 号被转换,多路可以进行切换。
ADC需要内部时钟来协调各部分的操作,这个时钟信号可以 取自振荡器,也可以取自锁相环输出,频率大约1MHz, 转换速 率大约60KHz, 而一次转换完成的时间是16μs。
当转换结束后,ADC将转换结果存入ADC数据寄存器(ADR),
并设置标志并可产生中断。
内部总线
ADC数据寄存器
转换完成
中断逻辑
完成一次ADC后,COCO位置1,如果允许中断,则向CPU申请中断,只有在下次写入ADSCR时,或读ADR时,COCO被清0。
寄存器写入将无效。 是通过测量温度的值来实现对压缩机控制的。
1 转换结束 (AIEN=0)
2、ADC数据寄存器(ADR) 地址003DH
0①,查仅询进控标行志单制位次C转OA换CO,D读C走数工据后作再进的三个特殊功能寄存器:
ቤተ መጻሕፍቲ ባይዱ
0
0
0
ADIV2~ADIV0用来选择ADC的时钟频率
000
分频系数 1
001
分频系数 2
010
分频系数 4
011
分频系数 8
1xx
分频系数 16
一般选不同的分频系数,使ADC时钟为1MHz左右
1 选晶体时钟 0 选总线时钟
7.2 A/D应用设计举例
不 论 是 中 断 方 式 , 还 是 查 询 方 式 , ADC 转 换 是 从 向 ADSCR写数据开始;完成一次ADC后,COCO位置1,如 果允许中断,则向CPU申请中断,只有在下次写入ADSCR 时,或读ADR时,COCO被清0。若采用连续转换,则只 要写入一次ADSCR,将连续进行转换,如果采用单次转换, 则每启动一次A/D转换前,均需要写ADSCR,即启动一次, 转换一次。
0,仅进行单次转换,读走数据后再进
行下一次转换。
A/D输入通道选择
2、ADC数据寄存器(ADR) 地址003DH
8位数据,为AD转换结果,每次转换后更新。
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
3、ADC时钟寄存器(ADCLK) 地址 003EH
未用
ADIV2 ADIV1 ADIV0 ADICLK 0
ADIV2~ADIV0用来选择ADC的时钟频率
b7 b6 b5 b4 b3 MC68HC08JL3芯片的PTB和PTD0~3共有12位I/O引脚可复用为A/D转换的输入引脚。
b2
b1
b0
COCO AIEN ADC0 CH4 CH3 CH2 CH1 CH0
ADC是否转换结束,有两种方式来判断:
① 查询标志位COCO
ADC
ADC输入 通道 选择
PTBx
CGMXCLK BUSCLOCK
ADC时钟
时钟发生器
ADCH4~0
AIEN COCO
ADIV2~0 ADICLK
ADC模块内部结构
7.1 A/D转换器
PTBx是指PTB端口,一旦该端口设置为ADC输入,则普通的
I/O功能失效。这时,再对该端口的数据寄存器PTB和DDRB 完成一次ADC后,COCO位置1,如果允许中断,则向CPU申请中断,只有在下次写入ADSCR时,或读ADR时,COCO被清0。
② 通过中断来处理ADC值
AIEN=1
COCO=0
(COCO必须为0)
设置中断允许位AIEN=1,当ADC转换结束后,发生中断响应, 由中断程序读走ADC数据,这时COCO位并不是用来作ADC转 换结束的标志位,而有别的用途。
7.1 A/D转换器
1, 连续转换,每次转换结束更新ADR
ADCO=
的值,不管数据是否被读走。
1, 连续转换,每次转换结束更新ADR
1、ADC状态与控制寄存器( 3、ADC时钟寄存器(ADCLK) 地址 003EH
一般选不同的分频系数,使ADC时钟为1MHz左右
ADSCR) 地址$003C
② 通过中断来处理ADC值
要让计算机处理这个值,必须将其模拟量
这时,再对该端口的数据寄存器PTB和DDRB
相关文档
最新文档