欢迎来到天天文库
浏览记录
ID:54851123
大小:1.34 MB
页数:11页
时间:2020-04-22
《监测控制系统的设计与实现.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验课程名称:监测控制系统应用实验七实验项目名称:监测控制系统的设计与实现实验成绩:实验者:专业班级:电信130班同组者:111实验日期:周四3~4节一.实验目的1.通过本次实验形成系统设计的概念2.掌握单片机应用系统的设计方法和流程3.学会合理分配资源4.提高综合运用知识的能力二.实验要求1.综合前面的实验,实现一监测控制系统,监测一模拟量(0-5V的交流电)输入并显示。2.当该模拟量在正常的1-3V范围内时,系统执行正常的顺序控制,这时8个LED灯依次亮2s并循环(代表正常的工序)。3.当模拟量超出1
2、-3V范围时,则8个LED灯间隔一个灯依次亮2s并循环(代表特殊的工序)。4.用一个按键模拟故障,当该按键按一下时,发出报警声,LED全灭(代表工作暂停),当该按键再按一下时,表示故障解除,停报警声,恢复正常工作。三.探究内容1.当系统有较多外设时,如何为外设分配I/O口,是否要扩展I/O口?2.当系统有较多任务时,分析任务的实时性和所占资源,考虑那些任务放主程序执行,哪些放中断执行?(中断资源、定时器资源的合理分配)3.本任务中的定时2s任务是由定时器定时实现还是通过软件延时实现好?(定时器资源、实时性
3、综合考虑,只要满足要求即可,没有固定的安排模式)11四.流程图系统流程图定时中断流程图外部中断流程图11五.实验连线图PCF芯片的CLK接P1.0;CS接P1.1;D1接P1.2;D0接P1.3;蜂鸣器接在P3.6接一个开关在P3.2(外部中断),P1.5接整数位显示数码管的位选,P1.6接第一位显示数码管的位选,P1.7接第二位数码管的位选。查看LED灯状态时,LED灯接P2口;查看数码管状态时,数码管段选接在P0口。11六.实验结果及分析1.实验结果2.结果分析:有实验知,输入电压在1~3V之间时,L
4、ED依次滚动显示,相邻显示间隔2s,电压小于1V或者大于3V时,LED灯隔一个显示,每次显示2s。有外部中断触发时,蜂鸣器响,LED灯全灭,外部中断再次触发时,根据外部输入电压值正常显示。11七.附录实验程序/*******************************初始化*******************************/#ifndef__XPT2046_H_#define__XPT2046_H_//---包含头文件---//#include#include5、ns.h>//---重定义关键词---//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endif#ifndefulong#defineulongunsignedlong#endif//---定义使用的IO口---//sbitCLK=P1^0;//时钟sbitCS=P1^1;//片选sbitDIN=P1^2;//输入sbitDOUT=P1^3;//输出uintRead_AD_Data(ucharcmd6、);uintSPI_Read(void);voidSPI_Write(uchardat);#endif/*******************总线初始化及AD/DA转换函数初始化********************/#include"XPT2046.h"/***************************************************************************11**函数名:TSPI_Start*输入:无*输出:无*功能:初始化触摸SPI**********7、******************************************************************/voidSPI_Start(void){CLK=0;CS=1;DIN=1;CLK=1;CS=0;}/*****************************************************************************函数名:SPI_Write*输入:dat:写入数据*输出:无*功能:使用SPI写入数据******************8、**********************************************************/voidSPI_Write(uchardat){uchari;CLK=0;for(i=0;i<8;i++){DIN=dat>>7;//放置最高位dat<<=1;CLK=0;//上升沿放置数据CLK=1;}}/****************************************************
5、ns.h>//---重定义关键词---//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endif#ifndefulong#defineulongunsignedlong#endif//---定义使用的IO口---//sbitCLK=P1^0;//时钟sbitCS=P1^1;//片选sbitDIN=P1^2;//输入sbitDOUT=P1^3;//输出uintRead_AD_Data(ucharcmd
6、);uintSPI_Read(void);voidSPI_Write(uchardat);#endif/*******************总线初始化及AD/DA转换函数初始化********************/#include"XPT2046.h"/***************************************************************************11**函数名:TSPI_Start*输入:无*输出:无*功能:初始化触摸SPI**********
7、******************************************************************/voidSPI_Start(void){CLK=0;CS=1;DIN=1;CLK=1;CS=0;}/*****************************************************************************函数名:SPI_Write*输入:dat:写入数据*输出:无*功能:使用SPI写入数据******************
8、**********************************************************/voidSPI_Write(uchardat){uchari;CLK=0;for(i=0;i<8;i++){DIN=dat>>7;//放置最高位dat<<=1;CLK=0;//上升沿放置数据CLK=1;}}/****************************************************
此文档下载收益归作者所有