智能传感器课程设计.doc
《智能传感器课程设计.doc》由会员分享,可在线阅读,更多相关《智能传感器课程设计.doc(13页珍藏版)》请在三一办公上搜索。
1、题目:智能传感器设计1 设计要求发送方的ADC模块能够随时动态采集模拟电压的变化,即使用A/D转换芯片TLC549CP对模拟电压进行数字转换,并将转换结果处理为三位十进制数(000-255)通过ZLG7290B进行显示;可设定上限报警;且报警值可用键盘修改,修改报警值时,修改位闪烁,且显示上一次的报警值并保存。2 设计分析及系统方案设计这是一个利用具有数据滤波功能的ADC转换程序,使用8位TLC549芯片、蜂鸣器等,将采集出来的数据转换成三位十进制数稳定输出,并通过ZLG7290B显示的程序。其中,设定上限报警值,即通过改变模拟电压输入,达到上限值后响铃报警,且可修改上限报警值。首先是主程序,
2、开中断并进行7290复位,设定初始报警值100,建立显示缓冲区(40H-47H)并显示”adc=”,采集TLC549的N个数据并存放于20H开始的单元中,调ADJUST进行数据滤波,结果存于A中;调ALARM进行报警判断:若大于设定报警值,则蜂鸣器响;调BCD_CONT,将A中的数据拆分、查表并送显示缓冲区的低两位,以备显示用;调WRNBYT,将显示缓冲区中的数据写入7290B,以十进制的方式显示ADC的结果;调延时子程序。子程序主要有利用蜂鸣器报警、采集N个数据、数据滤波、二进制转换成十进制并显示(其中包括拆分);还有一个中断程序,由硬件INT_0控制,通过键值的修改实现对报警值的调整。当按
3、“E”时,进入报警值修改,数码管显示当前报警值并闪烁;继续按百位、十位、个位输入修改值,每输入一位,该位不闪烁,输入结束,将显示在数码管后三位,再按“F”即返回原模拟量对应值,且报警值已修改。另外加有容错功能,即当输入值大于255时,直接默认将报警值修改为2553系统电路图AT89C51 P1.0 P1.1 P1.7(/INT0) P3.2 P1.2P1.3P1.4P1.5ZLG7290BSDASCK/RST/INT_KEYTLC549VccREF+CLK ANINDAT REF-/CS GND10K855047K103BUZZIC总线REF+ JK158 VCC VCCANIN JK159W
4、2BUZZJK624 外围接口模块硬件电路功能描述(1)ZLG7290:数码管动态显示驱动,键盘扫描管理芯片(2)TCL549CP:CMOS 8位A/D转换器(3) 蜂鸣器:利用定时/计数器输出一个特定频率的方波并驱动蜂鸣器发声5 主程序中主要变量定义变量名称RAM单元/寄存器功能ADDR20H数据缓冲区首地址/60H存放报警值DISDA40H显示个位DISDA+141H显示十位DISDA+242H显示百位DISDA+343H无显示DISDA+444H显示符号“=”DISDA+545H显示符号“c”DISDA+646H显示符号“d”DISDA+747H显示符号“a”6系统软件中各个子程序的功能
5、描述子程序名称入口参数出口参数功能 描述ALARM/P1.5实现报警响铃TLC549累加器A20H-2FH连续采集32次数据ADJUST20H-2FH累加器A数据滤波BCD_CONT累加器AR3转换成十进制数TLC549_ADCP1.3累加器AA/D转换RDKEY1FH累加器A获取到的键值CF累加器AR3将数据拆分为两个独立的BCD码并查表DELAY/延时FLASH1/后三位闪烁FLASH2/后两位闪烁FLASH3/后一位闪烁FLASH4/后三位不闪烁7主程序及中断程序流程图主程序入口开中断7290复位初始化报警值,建立显示缓冲区,显示“adc=”采集32次A/D转换数据数据滤波,取平均值调A
6、LARM子程序转化为十进制7290数字显示转换值调延时子程序YYYNNNNYYNYN查询按键?7290数字显示报警值数码管后三位闪烁E键?读取键值中断程序入口查询按键?RETIF键?查询按键?读取键值,查表,7290显示个位数码管不闪烁输入数据与R5、R6相加存于A中,并将A中值赋给60H输入数据*10,存于R6中读取键值,查表,7290显示十位数码管最后一位闪烁输入数据*100,存于R5中读取键值,查表,7290显示百位数码管后两位闪烁查询按键?8程序清单SDABITP1.0 ;7290B的引脚定义 SCLBITP1.1 WSLAEQU070HRSLAEQU071HDATBITP1.3 ;T
7、LC549PC引脚定义CLKBITP1.2CSBITP1.4CUNTEQU20H ;每次ADC采集数据个数SHIFTEQU05H;除数(与采集数据个数有关)ADDREQU20H ;数据缓冲区首地址DISDAEQU40H ;显示缓冲区DISCUNTEQU08H;显示缓冲区长度;#ORG8000HLJMP8100HORG8003HLJMPINT_7290;# ;主 程 序 ;(7290复位、显示缓冲区初始化、连续采集N个数据、数据滤波) ;(十进制调整/拆分/查表/送显示缓冲区,7290数码显示);#ORG8100HSTART:MOVSP,#60HSETBEA;开中断SETBEX0SETBIT0C
8、LRP1.7 ;7290复位LCALLDELAYSETBP1.7MOV60H,#64H;初始化报警值为100,放入60H地址中;显示缓冲区处理,显示 adc = MOVDISDA+7,#0EEH ;a字形MOVDISDA+6,#7AH ;d字形MOVDISDA+5,#1AH ;c字形MOVDISDA+4,#00H ;熄灭MOVDISDA+3,#12H ;LOOP:LCALLTLC549 ;采集N个ADC数据(20H单元) LCALLADJUST ;数据滤波(屏蔽以观察滤波效果) LCALLALARM;调报警子程序LCALLBCD_CONT ;转换为十进制数MOVR7,#DISCUNTMOVR0
9、,#DISDAMOVR2,#10HMOVR3,#WSLALCALLWRNBYT ;7290数字显示LCALLDELAYSJMPLOOP;#;利用蜂鸣器实现报警;#ALARM:PUSH00HMOVR0,#40H;蜂鸣器频率MOVTMOD,#10H;工作方式1MOVTL1,#33H;写入计数初值MOVTH1,#0FEHCJNEA,60H,NEXT;判断A与60H中数相减,无借位执行NEXTNEXT:JNCLOOP1;cy=0,执行Loop1SJMPNEXT1LOOP1:SETBTR1JNBTF1,$CLRTF1;清标志位MOVTL1,#33H;重装初值MOVTH1,#0FEHCPLP1.5;取反D
10、JNZR0,LOOP1;循环R0次跳出NEXT1:POP00HRET;#; 各子程序;#TLC549:PUSH00H ;连续采集32次数据PUSH07H ;存放于20H-2FH中MOVR7,#CUNTMOVR0,#ADDRLOOP2:LCALLTLC549_ADC ;A/D转换MOVR0,AINCR0DJNZR7,LOOP2POP07HPOP00HRET ;#ADJUST:PUSH00H ;将20H开始的CUNT个数据PUSH02H ;求平均值PUSH03H ;结果于A中PUSH07HMOVR7,#CUNTMOVR0,#ADDRCLRAMOVR2,ALOOP3:CLRC;累加ADDC A,R0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 传感器 课程设计
链接地址:https://www.31ppt.com/p-2390771.html