PIC系列单片机数据存储器的特点和功能(下)
发布时间:2008/5/27 0:00:00 访问次数:758
http://www.hificat.com
a/d转换寄存器 这里摘录一段笔者从网上下载的用pic16f877单片机芯片(带flash存储器的)完成有关a/d转换的源程序部分指令,并用它说明有关a/d转换寄存器在指令中的用法。这里先引用部分源程序,源程序中的注释是笔者按照指令在程序中的作用所加的注释(不是某条指令的直接功能),这是初学者读以下指令时应注意的。a/d转换器部分源程序清单如下:
demo 877asm
list p=16f877
org 0x00 ;复位向量
nop ;空操作
start banksel portc ;选择portc所在
;数据存储器的存储
;体(实为bank0)
clrf portc ;对rc口清零
movlw b′01000001′ ;a/d转换时钟选
;择fosc/8,打开
; a/d转换器
movwf adcon0 ;设定了a/d转换
;操作部分参数
banksel option_reg ;选择option所在
;数据存储器的存储 ;体(实为bank1)
movlw b′10000111′ ;设置预分频器tm
; r0,分频率1∶256
movwf option ;完成上条指令设置
clrf trisc ;设定rc口(8位)
;为输出
movlw b′0001110′ ;选中模拟量通道1
;(ra1/an1)
movwf adcon1 ;模拟基准电压
vref为芯片电源电压,选择通道1(ra1/an1)完成
main …
要阅读上述的指令,读者还需了解以下必要的补充知识。
(1)关于用pic16f877单片机作a/d转换器。pic16f877单片机是具有多通道模拟量输入的8位a/d转换器。上述的源程序是利用该pic产品作a/d转换的一种实验程序,其实验目的是用pic16f877单片机来实现一个通道的8位a/d转换,并将转换结果以二进制形式经rc口输出再由led显示。实验的电路原理如附图(笔者根据源程序而绘出的pic16f877a/d转换硬件电路图)所示。
(2)编制与a/d转换器有关的专用寄存器指令。要读懂上述的源程序,应根据以下的线索:1)把握源程序的编写惯例;2)选择rc口和对它清零;3)给a/d控制寄存器adcon0的各位置数,达到a/d转换时选择a/d位的采样时间,即注释中的a/d时钟选择;4)选择专用寄存器option并给它各位置数,达到选择预分频器tmr0和确定其分频率(1∶256);5)设定rc口为输出,以保证led显示;6)给a/d控制器adcon1的各位置数,以确定pic16f877单片机的ra1口为模拟量的输入通道。并选中芯片电源作基准电压。读者若需深入了解a/d控制寄存器adcon0和adcon1的各位详细功能,请参看有关pic单片机书籍的详细介绍。
a/d转换的主程序(main)约有13条,将在本版pic系列专题的后期结合实验板的编程器介绍。pic系列单片机的其它专用寄存器,如trisa、status bank等,本报在前几期有关pic单片机的文中均已介绍过。
demo 877asm
list p=16f877
org 0x00 ;复位向量
nop ;空操作
start banksel portc ;选择portc所在
;数据存储器的存储
;体(实为bank0)
clrf portc ;对rc口清零
movlw b′01000001′ ;a/d转换时钟选
;择fosc/8,打开
; a/d转换器
movwf adcon0 ;设定了a/d转换
;操作部分参数
banksel option_reg ;选择option所在
;数据存储器的存储 ;体(实为bank1)
movlw b′10000111′ ;设置预分频器tm
; r0,分频率1∶256
movwf option ;完成上条指令设置
clrf trisc ;设定rc口(8位)
;为输出
movlw b′0001110′ ;选中模拟量通道1
;(ra1/an1)
movwf adcon1 ;模拟基准电压
vref为芯片电源电压,选择通道1(ra1/an1)完成
main …
要阅读上述的指令,读者还需了解以下必要的补充知识。
(1)关于用pic16f877单片机作a/d转换器。pic16f877单片机是具有多通道模拟量输入的8位a/d转换器。上述的源程序是利用该pic产品作a/d转换的一种实验程序,其实验目的是用pic16f877单片机来实现一个通道的8位a/d转换,并将转换结果以二进制形式经rc口输出再由led显示。实验的电路原理如附图(笔者根据源程序而绘出的pic16f877a/d转换硬件电路图)所示。
(2)编制与a/d转换器有关的专用寄存器指令。要读懂上述的源程序,应根据以下的线索:1)把握源程序的编写惯例;2)选择rc口和对它清零;3)给a/d控制寄存器adcon0的各位置数,达到a/d转换时选择a/d位的采样时间,即注释中的a/d时钟选择;4)选择专用寄存器option并给它各位置数,达到选择预分频器tmr0和确定其分频率(1∶256);5)设定rc口为输出,以保证led显示;6)给a/d控制器adcon1的各位置数,以确定pic16f877单片机的ra1口为模拟量的输入通道。并选中芯片电源作基准电压。读者若需深入了解a/d控制寄存器adcon0和adcon1的各位详细功能,请参看有关pic单片机书籍的详细介绍。
a/d转换的主程序(main)约有13条,将在本版pic系列专题的后期结合实验板的编程器介绍。pic系列单片机的其它专用寄存器,如trisa、status bank等,本报在前几期有关pic单片机的文中均已介绍过。
http://www.hificat.com
a/d转换寄存器 这里摘录一段笔者从网上下载的用pic16f877单片机芯片(带flash存储器的)完成有关a/d转换的源程序部分指令,并用它说明有关a/d转换寄存器在指令中的用法。这里先引用部分源程序,源程序中的注释是笔者按照指令在程序中的作用所加的注释(不是某条指令的直接功能),这是初学者读以下指令时应注意的。a/d转换器部分源程序清单如下:
demo 877asm
list p=16f877
org 0x00 ;复位向量
nop ;空操作
start banksel portc ;选择portc所在
;数据存储器的存储
;体(实为bank0)
clrf portc ;对rc口清零
movlw b′01000001′ ;a/d转换时钟选
;择fosc/8,打开
; a/d转换器
movwf adcon0 ;设定了a/d转换
;操作部分参数
banksel option_reg ;选择option所在
;数据存储器的存储 ;体(实为bank1)
movlw b′10000111′ ;设置预分频器tm
; r0,分频率1∶256
movwf option ;完成上条指令设置
clrf trisc ;设定rc口(8位)
;为输出
movlw b′0001110′ ;选中模拟量通道1
;(ra1/an1)
movwf adcon1 ;模拟基准电压
vref为芯片电源电压,选择通道1(ra1/an1)完成
main …
要阅读上述的指令,读者还需了解以下必要的补充知识。
(1)关于用pic16f877单片机作a/d转换器。pic16f877单片机是具有多通道模拟量输入的8位a/d转换器。上述的源程序是利用该pic产品作a/d转换的一种实验程序,其实验目的是用pic16f877单片机来实现一个通道的8位a/d转换,并将转换结果以二进制形式经rc口输出再由led显示。实验的电路原理如附图(笔者根据源程序而绘出的pic16f877a/d转换硬件电路图)所示。
(2)编制与a/d转换器有关的专用寄存器指令。要读懂上述的源程序,应根据以下的线索:1)把握源程序的编写惯例;2)选择rc口和对它清零;3)给a/d控制寄存器adcon0的各位置数,达到a/d转换时选择a/d位的采样时间,即注释中的a/d时钟选择;4)选择专用寄存器option并给它各位置数,达到选择预分频器tmr0和确定其分频率(1∶256);5)设定rc口为输出,以保证led显示;6)给a/d控制器adcon1的各位置数,以确定pic16f877单片机的ra1口为模拟量的输入通道。并选中芯片电源作基准电压。读者若需深入了解a/d控制寄存器adcon0和adcon1的各位详细功能,请参看有关pic单片机书籍的详细介绍。
a/d转换的主程序(main)约有13条,将在本版pic系列专题的后期结合实验板的编程器介绍。pic系列单片机的其它专用寄存器,如trisa、status bank等,本报在前几期有关pic单片机的文中均已介绍过。
demo 877asm
list p=16f877
org 0x00 ;复位向量
nop ;空操作
start banksel portc ;选择portc所在
;数据存储器的存储
;体(实为bank0)
clrf portc ;对rc口清零
movlw b′01000001′ ;a/d转换时钟选
;择fosc/8,打开
; a/d转换器
movwf adcon0 ;设定了a/d转换
;操作部分参数
banksel option_reg ;选择option所在
;数据存储器的存储 ;体(实为bank1)
movlw b′10000111′ ;设置预分频器tm
; r0,分频率1∶256
movwf option ;完成上条指令设置
clrf trisc ;设定rc口(8位)
;为输出
movlw b′0001110′ ;选中模拟量通道1
;(ra1/an1)
movwf adcon1 ;模拟基准电压
vref为芯片电源电压,选择通道1(ra1/an1)完成
main …
要阅读上述的指令,读者还需了解以下必要的补充知识。
(1)关于用pic16f877单片机作a/d转换器。pic16f877单片机是具有多通道模拟量输入的8位a/d转换器。上述的源程序是利用该pic产品作a/d转换的一种实验程序,其实验目的是用pic16f877单片机来实现一个通道的8位a/d转换,并将转换结果以二进制形式经rc口输出再由led显示。实验的电路原理如附图(笔者根据源程序而绘出的pic16f877a/d转换硬件电路图)所示。
(2)编制与a/d转换器有关的专用寄存器指令。要读懂上述的源程序,应根据以下的线索:1)把握源程序的编写惯例;2)选择rc口和对它清零;3)给a/d控制寄存器adcon0的各位置数,达到a/d转换时选择a/d位的采样时间,即注释中的a/d时钟选择;4)选择专用寄存器option并给它各位置数,达到选择预分频器tmr0和确定其分频率(1∶256);5)设定rc口为输出,以保证led显示;6)给a/d控制器adcon1的各位置数,以确定pic16f877单片机的ra1口为模拟量的输入通道。并选中芯片电源作基准电压。读者若需深入了解a/d控制寄存器adcon0和adcon1的各位详细功能,请参看有关pic单片机书籍的详细介绍。
a/d转换的主程序(main)约有13条,将在本版pic系列专题的后期结合实验板的编程器介绍。pic系列单片机的其它专用寄存器,如trisa、status bank等,本报在前几期有关pic单片机的文中均已介绍过。