欢迎来到天天文库
浏览记录
ID:35627702
大小:233.00 KB
页数:17页
时间:2019-04-03
《单片机技术与应用课程设计-电压数据采集报警显示系统设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机技术与应用课程设计题目:电压数据采集报警显示系统设计姓名:学号:2201220104122指导老师:日期:2014-11-21一、设计的性质与目的性质:该设计是在学生学完《单片机原理及应用》和电子学相关课程的基础上,结合单片机、测控技术与仪器、机电子信息科学与技术和信息工程专业的特点进行的具有一定难度和覆盖面的综合性实践环节。目的:综合运用所学的《单片机原理及应用》理论知识,通过实践加强对所学知识的理解,具备基本的单片机应用系统设计能力。二、设计内容与要求设计电压数据采集报警显示系统。相应的参考方案图如图1所示:图1电压和温度数据检测采集显示系统方案图功能要求:(1)、基本
2、要求:采集电压信号,与预设的电压值(通过键盘设定)进行比较(比较过程要模仿迟滞比较器的功能,窗口大小自定),通过LED显示器实时显示采样值(能显示采样值以及报警预设值,通过按键进行显示切换),并能发出报警信号。(2)、选做:在基本要求的基础上,能够将采集的数据以及报警信息通过串口上传到主机上。同时主机能够通过串口改变系统的报警预设电压值三、实验注意事项1.设计中所用仪器及设备均应按操作规程操作,实验前应仔细阅读指导书。2.独立思考,发现问题尽量自己解决。 3.设计结果需经老师检查后方算完成。四、设计方案1.硬件流程图2.软件流程五、程序设计蜂鸣器测试程序如下:#include3、T89X51.H>voiddelay02s(void){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}voidmain(void){while(1){P0_0=0;delay02s();P0_0=1;delay02s();}}(2)、键盘测试程序如下:#includeunsignedcharcodeseg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x74、9,0x71};unsignedchark;voiddelay10ms(void){unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}voidGetch(){unsignedcharX,Y,Z;P1=0xff;P1=0x0f;if(P1!=0x0f){delay10ms();if(P1!=0x0f){X=P1;P1=0xf0;Y=P1;Z=X5、Y;switch(Z){case0x77:k=0;break;case0x7b:k=1;break;case0x7d:k=2;break;case0x7e:k=3;break;case6、0xb7:k=4;break;9case0xbb:k=5;break;case0xbd:k=6;break;case0xbe:k=7;break;case0xd7:k=8;break;case0xdb:k=9;break;case0xdd:k=10;break;case0xde:k=11;break;case0xe7:k=12;break;case0xeb:k=13;break;case0xed:k=14;break;case0xee:k=15;break;}}}}voidmain(void){while(1){P1=0xff;Getch();P2=seg7code[k];P0=7、0x0f;}}#include#define uc unsigned char #define ui unsigned int sbit L_OE=P3^4; //对各控制引脚进行定义; sbit L_EOC=P3^5; sbit L_ALE=P3^6; sbit L_START=P3^7; sbit L2=P2^0; void delay(ui x) //延时子程序,延时时间由实参传值确定; {uc i; while(x--) {for(i=0;i<10;i++) {;} } } //主程序; void main() { void dis8、play5in0(uc zhi); //各个子程序的声明,延时程序在前则不必;void warning(uc zhi); void display10in0(uc zhi); void display5in1(uc zhi); void display10in1(uc zhi); void AD_IN0();voidAD_IN1();ucaa,bb;while(1)//设置大循环,模数转换不停进行;{AD_IN0();//调用通道0转换子程序;aa=P0;//将转换后的
3、T89X51.H>voiddelay02s(void){unsignedchari,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}voidmain(void){while(1){P0_0=0;delay02s();P0_0=1;delay02s();}}(2)、键盘测试程序如下:#includeunsignedcharcodeseg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7
4、9,0x71};unsignedchark;voiddelay10ms(void){unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}voidGetch(){unsignedcharX,Y,Z;P1=0xff;P1=0x0f;if(P1!=0x0f){delay10ms();if(P1!=0x0f){X=P1;P1=0xf0;Y=P1;Z=X
5、Y;switch(Z){case0x77:k=0;break;case0x7b:k=1;break;case0x7d:k=2;break;case0x7e:k=3;break;case
6、0xb7:k=4;break;9case0xbb:k=5;break;case0xbd:k=6;break;case0xbe:k=7;break;case0xd7:k=8;break;case0xdb:k=9;break;case0xdd:k=10;break;case0xde:k=11;break;case0xe7:k=12;break;case0xeb:k=13;break;case0xed:k=14;break;case0xee:k=15;break;}}}}voidmain(void){while(1){P1=0xff;Getch();P2=seg7code[k];P0=
7、0x0f;}}#include#define uc unsigned char #define ui unsigned int sbit L_OE=P3^4; //对各控制引脚进行定义; sbit L_EOC=P3^5; sbit L_ALE=P3^6; sbit L_START=P3^7; sbit L2=P2^0; void delay(ui x) //延时子程序,延时时间由实参传值确定; {uc i; while(x--) {for(i=0;i<10;i++) {;} } } //主程序; void main() { void dis
8、play5in0(uc zhi); //各个子程序的声明,延时程序在前则不必;void warning(uc zhi); void display10in0(uc zhi); void display5in1(uc zhi); void display10in1(uc zhi); void AD_IN0();voidAD_IN1();ucaa,bb;while(1)//设置大循环,模数转换不停进行;{AD_IN0();//调用通道0转换子程序;aa=P0;//将转换后的
此文档下载收益归作者所有