1、题目:题目:智能传感器设计智能传感器设计 1 1 设计要求设计要求 发送方的 ADC 模块能够随时动态采集模拟电压的变化,即使用 A/D 转换芯 片 TLC549CP 对模拟电压进行数字转换,并将转换结果处理为三位十进制数 (000-255) 通过 ZLG7290B 进行显示; 可设定上限报警; 且报警值可用键盘修改, 修改报警值时,修改位闪烁,且显示上一次的报警值并保存。 2 2 设计分析及系统方案设计设计分析及系统方案设计 这是一个利用具有数据滤波功能的 ADC 转换程序,使用 8 位 TLC549 芯片、 蜂鸣器等,将采集出来的数据转换成三位十进制数稳定输出,并通过 ZLG7290B 显
2、示的程序。其中,设定上限报警值,即通过改变模拟电压输入,达到上限值后 响铃报警,且可修改上限报警值。 首先是主程序,开中断并进行 7290 复位,设定初始报警值 100,建立显示 缓冲区(40H-47H)并显示”adc=”,采集 TLC549 的 N 个数据并存放于 20H 开始的 单元中,调 ADJUST 进行数据滤波,结果存于 A 中;调 ALARM 进行报警判断: 若大于设定报警值,则蜂鸣器响;调 BCD_CONT,将 A 中的数据拆分、查表并送 显示缓冲区的低两位,以备显示用;调 WRNBYT,将显示缓冲区中的数据写入 7290B,以十进制的方式显示 ADC 的结果;调延时子程序。 子
3、程序主要有利用蜂鸣器报警、采集 N 个数据、数据滤波、二进制转换成十 进制并显示(其中包括拆分) ;还有一个中断程序,由硬件 INT_0 控制,通过键 值的修改实现对报警值的调整。当按“E”时,进入报警值修改,数码管显示当 前报警值并闪烁;继续按百位、十位、个位输入修改值,每输入一位,该位不闪 烁,输入结束,将显示在数码管后三位,再按“F”即返回原模拟量对应值,且 报警值已修改。另外加有容错功能,即当输入值大于 255 时,直接默认将报警值 修改为 255 3 系统电路图系统电路图 IC 总线 REF+ JK158 VCC VCC ANIN JK159 W2 BUZZ JK62 4 4 外围接
4、口模块硬件电路功能描述外围接口模块硬件电路功能描述 (1)ZLG7290:数码管动态显示驱动,键盘扫描管理芯片 (2)TCL549CP:CMOS 8 位 A/D 转换器 (3) 蜂鸣器:利用定时/计数器输出一个特定频率的方波并驱动蜂鸣器发声 5 5 主程序中主要变量定义主程序中主要变量定义 变量名称 RAM单元/寄存器 功能 ADDR 20H 数据缓冲区首地址 / 60H 存放报警值 DISDA 40H 显示个位 DISDA+1 41H 显示十位 DISDA+2 42H 显示百位 DISDA+3 43H 无显示 DISDA+4 44H 显示符号“=” DISDA+5 45H 显示符号“c” DISDA+6 46H 显示符号“d” AT89C51 P1.0 P1.1 P1.7 (/INT0) P3.2 P1.2 P1.3 P1.4 P1.5 ZLG7290B SDA SCK /RST /INT_KEY TLC549 Vcc REF+ CLK ANIN DAT REF- /CS GND 10K 8550 47K 103 BUZZ DISDA+7 47H 显示符号“a