微波EDA网,见证研发工程师的成长! 2025婵犵數濮撮惀澶愬级鎼存挸浜炬俊銈勭劍閸欏繘鏌i幋锝嗩棄缁炬儳娼¢弻鐔告綇閸撗呮殸缂備胶濯崹鍫曞蓟閵娾晜鍋嗛柛灞剧☉椤忥拷04闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晜閽樺缃曢梻浣虹帛閸旀洟骞栭銈囦笉妞ゆ牜鍋為悡銉╂煟閺囩偛鈧湱鈧熬鎷�09闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈡晝閳ь剛绮eΔ浣虹闁瑰瓨鐟ラ悘鈺冪磼閻欌偓閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟� 闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偞鐗犻、鏇㈠Χ閸屾矮澹曞┑顔结缚閸樠冣枍瀹ュ洠鍋撶憴鍕;闁告濞婇悰顕€宕堕澶嬫櫌婵犵數濮撮幊澶愬磻閹捐閿ゆ俊銈勮兌閸欏棝姊虹紒妯荤闁稿﹤婀遍埀顒佺啲閹凤拷濠电姷鏁告慨鐑藉极閹间礁纾婚柣鎰惈閸ㄥ倿鏌涢锝嗙缂佺姾顫夐妵鍕箛閸撲胶鏆犵紓浣哄閸ㄥ爼寮婚妸鈺傚亞闁稿本绋戦锟�
首页 > 硬件设计 > 嵌入式设计 > PIC单片机模/数转换器ADC模块的设计思路及电路设计

PIC单片机模/数转换器ADC模块的设计思路及电路设计

时间:03-15 来源:互联网 点击:

PIC16F877单片机的ADC内部结构如图1所示。40引脚封装芯片与28引脚封装芯片的区别主要在于模拟口的数量不同,28引脚封装芯片没有AN5~AN7模拟量输入通道,其他各部分的功能和组成关系相同。PIC16F877单片机的ADC内部结构图如图2所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿垂妤e啫绠涘ù锝呮贡缁嬩胶绱撻崒姘偓鐑芥倿閿曚焦鎳岄梻浣告啞閻熴儳鎹㈠鈧濠氭偄绾拌鲸鏅梺鎸庣箓濞诧絽效濡ゅ懏鍋℃繝濠傛噹椤eジ鎮介娑樻诞闁诡喗鐟︾换婵嬪炊閵娧冨妇濠电姷鏁搁崐顖炲焵椤掑嫬纾婚柟鍓х帛閻撴盯鎮楅敐搴′簽濠⒀冪仛閹便劍绻濋崨顕呬哗闂佸湱鎳撶€氱増淇婇幖浣肝ㄩ柨鏃€鍎崇紞鎺楁⒒閸屾瑨鍏岄柟铏崌瀹曠敻寮介鐐殿唵闂佽法鍣﹂幏锟�...

  图1 主程序及中断程序流程

闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿垂妤e啫绠涘ù锝呮贡缁嬩胶绱撻崒姘偓鐑芥倿閿曚焦鎳岄梻浣告啞閻熴儳鎹㈠鈧濠氭偄绾拌鲸鏅梺鎸庣箓濞诧絽效濡ゅ懏鍋℃繝濠傛噹椤eジ鎮介娑樻诞闁诡喗鐟︾换婵嬪炊閵娧冨妇濠电姷鏁搁崐顖炲焵椤掑嫬纾婚柟鍓х帛閻撴盯鎮楅敐搴′簽濠⒀冪仛閹便劍绻濋崨顕呬哗闂佸湱鎳撶€氱増淇婇幖浣肝ㄩ柨鏃€鍎崇紞鎺楁⒒閸屾瑨鍏岄柟铏崌瀹曠敻寮介鐐殿唵闂佽法鍣﹂幏锟�...

  图2 PIC16F877单片机的ADC内部结构图

  PIC16F877单片机内部嵌入的ADC模块具有10位数字量精度,共有8个模拟通道,与ADO模块有关的寄存器共有11个,其专用的4个寄存器分别为:ADCCON0、ADCCON1、ADRESH及ADRESL。

  源阻抗(RS)和内部采样开关(RSS)阻抗直接影响所要求的充电电容CHOLD的时间,采样开关(RSS)阻抗在单片机电压上的变化,源阻抗在模拟输入时影响偏移电压(由于引脚漏电流)。所推荐的最大模拟源阻抗是101kΩ,在模块输入通道被选择后转换可以开始之前采集必须通过。

  A/D转换器时间每位定义为TAD,A/D转换器每10位转换要求12TAD,A/D转换器时钟源是可以通过软件设定的,TAD的4种可能选择是:

  · 2TOSC;

  · 8TOSC;

  · 32TOSC;

  · 内部RC振荡器。

  对于正确的A/D转换,A/D转换时钟(TAD)必须被选择以保证1.6μs的最小TAD时间。

  ADCON1、TRISA和TRISE寄存器控制A/D端口引脚的操作。这个作为模拟输入的端口引脚必须有它们的相应位TRIS置1(输入)。如果TRIS位清0(输出),数字输出电平(VOH或VOL)将被转换。A/D操作是独立于(CHS(2∶0))位和TRIS位的状态之外的。

  在睡眠期间A/D模块可以工作,这种A/D时钟要求对RC置1,(ARCS(1:0)=11), 当选择RC时钟源时,A/D模块在开始转换之前等待一个指令周期。这种允许执行的睡眠指令,可以消除在转换中产生的所有数字开关噪声。

  当转换完成时,GO/DONE位将被清0,和转换结果一块装入ADRES寄存器,如果A/D中断使能,单片机将从睡眠中唤醒,如果A/D中断不使能,尽管ADON位仍保持置1,A/D模块仍将被关闭。

  如果A/D时钟源是另一种时针选择(不是RC),尽管ADIN位仍保持1,睡眠指令将导致目前的转换中断和A/D模块被关闭。关闭A/D,把A/D模块放到它的最低电流消耗状态。

  单片机复位强制所有寄存器复位到它们的复位状态,强制关闭A/D转换模块和进行的转换。在ADRESH、ADRESL寄存器的值在上电复位时不变,ADRESH、ADRESL寄存器在上电复位之后将包含未知数据。

  1. 设计思路

  将RA2引脚作为模拟电压输入,模拟量为连接在RA2引脚上的微调电阻提供,借此可以提供一个连续变化的模拟电压。端口D连接8个LED作为数据输出显示,并设置一个报警值。

  本程序中将报警值设为2.5V,经A/D转换后对应十六进制数值为0x200H,当A/D转换的值未达到警戒值(0x200H)时,点亮8个发光二极管的低4个,表明系统运行正常;当A/D转换的值达到或超过警戒值(0x200H)时,发出报警信号,点亮与D口相连的LED显示报警信息。

  2. 电路设计

  单片机与LED的接口原理如图3所示。

闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋涢ˇ鐢稿垂妤e啫绠涘ù锝呮贡缁嬩胶绱撻崒姘偓鐑芥倿閿曚焦鎳岄梻浣告啞閻熴儳鎹㈠鈧濠氭偄绾拌鲸鏅梺鎸庣箓濞诧絽效濡ゅ懏鍋℃繝濠傛噹椤eジ鎮介娑樻诞闁诡喗鐟︾换婵嬪炊閵娧冨妇濠电姷鏁搁崐顖炲焵椤掑嫬纾婚柟鍓х帛閻撴盯鎮楅敐搴′簽濠⒀冪仛閹便劍绻濋崨顕呬哗闂佸湱鎳撶€氱増淇婇幖浣肝ㄩ柨鏃€鍎崇紞鎺楁⒒閸屾瑨鍏岄柟铏崌瀹曠敻寮介鐐殿唵闂佽法鍣﹂幏锟�...

  图3 PIC16F877与LED的接线

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top