《微机接口大串联》由会员分享,可在线阅读,更多相关《微机接口大串联(6页珍藏版)》请在金锄头文库上搜索。
1、例程:有8路模拟信号,要求在按下k0键之后,每个通道以1KHz的采样频率采样数据,采样10ms时间。按下k1键之后,求出通道0采集到的数据的平均值,并将平均值的十六进制结果显示到8255的LED指示灯上面。按下k2键之后,将求出的平均值以9600bps,2位停止位,1位起始位,8位数据位,无奇偶校验的串行通信方式传送到另一台PC。按下k3键之后,输出一个峰峰值为1.96v,频率为100Hz的锯齿波。中断向量号从30H号开始安排。8MHz时钟源和4分频器由外电路提供。,解答: 1、首先给各个芯片分配端口地址,如74ls138输出脚所示。 2、系统要求判断按键执行相应的功能程序,所以主程序要实时检
2、测按键的内容,得到按键后进行相应的散转,然后调用各个功能函数。键盘扫描接到8255的PA口,所以令8255的PA口工作于方式0输入方式。 3、AD的采集要求每个通道是1KHz,8个通道都要采集,必须保证AD的采集频率至少是1KHzX8=8KHz。该信号可由8253提供,由于系统外部有8MHz的时钟和4分频器电路,可将该频率4分频后得到2MHz的时钟信号做为8253的时钟源。8253分频后的8KHz的信号可以触发IR1中断,在IR1中断服务程序启动AD转换。AD采集结束信号用于触发IR2中断,IR2中断服务程序读取AD转换结果,并保存于内存当中。,4、对于平均值计算可以采用累加之后进行除法运算得
3、到。如果有k1键按下,可以将8255 PB口设置为方式0输出,并将求到平均值输出到PB口即可。如果有k2键按下,首先设置8251工作于9600bps,2位停止位,1位起始位,8位数据位,无奇偶校验的方式,并将平均值输出到发送缓冲器,将数据以串行通信形式,采用RS232接口,传送到另一台PC。5、DAC0832在相应参考电压下,要发出峰峰值为1.96V的100Hz的锯齿波,如果每次DA输出数据量步进为1,从0开始要累加100次才能达到1.96V 峰峰值输出,此即为锯齿波的周期,即每隔0.1ms将累加值输出实现DA转换。可由8253产生0.1ms的脉冲,触发中断IR3,IR3的中断服务程序要将转换数值累加,并送出到DA转换器,将模拟量输出,一个周期结束后,重0再开始累加。,8259A,