传感器课程设计 1

目录

1. 摘要 ................................................... 2 2. 系统总体设计方案 ....................................... 2

2.1设计要求 .......................................... 2 2.2总体框图 .......................................... 3 3. 系统硬件设计 ........................................... 3

3.1总体电路图 ........................................ 3 3.2组成模块介绍 ...................................... 4 4. 元件清单 ............................................... 6 5. 系统调试与测量结果 ..................................... 6

5.1程序流程图 ........................................ 6 5.2程序代码 .......................................... 7 6. 测量结果分析 .......................................... 11 7. 心得体会 .............................................. 11 8. 参考文献 .............................................. 12

基于光敏电阻的简易传感器

——光感自动控制百叶窗

1. 摘要

本设计题目是光感自动控制百叶窗,用光照的强弱来改变光敏电阻的阻值大小,采用了MS-C51单片机为主控制电路,用数码管显示光照强度值, 进而控制步进电动机控制百叶窗的旋转包括正转、反转和暂停。本设计电路各个部分电路的设计原理及功能都能实现,要求对各种基本的电子元器件,电阻、电容、二极管、三极管等熟悉,掌握Proteus 仿真软件的运用、Protel 99 SE工具软件等绘图软件,并加以运用。用单片机内部的AD 转换实现模拟转化为数字量,通过编程控制各个外围电路并实现其功能。本设计具有有线路简单、结构紧凑、价格低廉、性能优越等特点。

单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于各领域各方面。本次设计是以单片机为核心,加上其他器件,设计电路来实现百叶窗的控制。

2. 系统总体设计方案

2.1设计要求

单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于各领域各方面。本次设计是以单片机为核心,加上其他器件,设计电路来实现百叶窗的控制。

利用光敏电阻与标准电阻串联输入模拟信号,通过ADC0809芯片转换成数字信号传送给单片机,通过单片机处理并控制LCD 显示当前的测量光强值,以及输出步进电动机的驱动信号,再利用达林顿管ULN2003提高单片机的输出功率驱动步进电动机。

2.2总体框图

3. 系统硬件设计

3.1总体电路图

3.2组成模块介绍

单片机:AT89C51是一种带4K 字节

FLASH

存储器(FPEROM —Flash

Programmable and Erasable Read Only Memory )的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

AD 转换模块:将光敏电阻用滑动变阻器代替。R10为标准10K 电阻,RV1为

10K 滑动变阻器,以代替光敏电阻仿真。由于仿真软件只支持ADC0808芯片仿真,故在仿真时使用此芯片,实际电路板中选用了ADC0808。处于实际电路板焊接时候引脚选用方便考虑,选用IN7输出口。即将模拟输入选择口ADD A、ADD B、ADD C接入VCC 。处于实际电路焊接考虑,将ST 接入P3.0口,EOC 接入P3.1口,OE 接入P3.2口,CLK 接入P3.3口,具体电路如右图。

步进电动机驱动:如果直接用单片机驱动步进电动机,因为单片机的输出电

流太低,功率不够,无法驱动步进电动机,故接入达林顿管ULN2003来增加输出功率,处于实际电路焊接考虑,使用P3.4~P3.7端口。电路如下图

暂停控制:用开关控制,开关

闭合时步进电动机暂停,LCD 显示暂停状态(*字符),但依旧可以测量出光强值。

LCD 显示:LCD 接口如图所示,

由于单片机P0口和P2口在单片机的右边,故将LCD 的输入口和控制口分别接入P0和P2口,由于P0口无上拉电阻,故接入LCD 时接入一排上拉电阻。如右图

4. 元件清单

5. 系统调试与测量结果

5.1程序流程图

5.2程序代码

#include unsigned char get_data; unsignedint temp;

unsigned char code tab1[]="welcome on!";

unsigned char code tab2[]="light:"; unsigned char code tab3[]="mcd"; sbit ST = P3^0; sbit EOC= P3^1; sbit OE = P3^2; sbit CLK= P3^3; sbit A1 = P3^5; sbit B1 = P3^6; sbit C1 = P3^7; sbit D1 = P3^4; sbit RS = P2^0; sbit RW = P2^1; sbit E = P2^2; sbit key= P2^4;

#define r1 {A1=1;B1=1;C1=1;D1=0;} #define r2 {A1=1;B1=1;C1=0;D1=0;} #define r3 {A1=1;B1=1;C1=0;D1=1;} #define r4 {A1=1;B1=0;C1=0;D1=1;} #define r5 {A1=1;B1=0;C1=1;D1=1;} #define r6 {A1=0;B1=0;C1=1;D1=1;}

#define r7 {A1=0;B1=1;C1=1;D1=1;} #define r8 {A1=0;B1=1;C1=1;D1=0;} void timer() { TMOD=0x10; TH0=(65536-190)/256; TL0=(65536-190)%256; EA=1; ET0=1; TR0=1;

}

void delay(unsigned int t) { inti,j; for(i=t;i>0;i--) for(j=112;j>0;j--);

}

writecom(unsigned char com) { RS=0; RW=0; P0=com; E=0; delay(1);

E=1;

delay(1); E=0;

}

writedata(unsigned char date) { RS=1; RW=0; P0=date; E=0; delay(1); E=1; delay(1); E=0;

}

voidwritecount(unsigned int Data) { switch(Data) { case 0: writedata(0x30);break; case 1: writedata(0x31);break; case 2: writedata(0x32);break; case 3: writedata(0x33);break; case 4: writedata(0x34);break; case 5: writedata(0x35);break; case 6: writedata(0x36);break; case 7: writedata(0x37);break; case 8: writedata(0x38);break; case 9: writedata(0x39);break; }

}

voidbujin(unsigned intpd) { if(pd) {

r1 delay(5); r2 delay(5); r3 delay(5); r4 delay(5); r5 delay(5); r6 delay(5); r7 delay(5); r8 delay(5);

} else { r8 delay(5); r7 delay(5); r6

delay(5);

r5 delay(5); r4 delay(5); r3 delay(5); r2 delay(5); r1 delay(5);

};

}

voiddisp(unsigned int a) { unsignedint c; a*=4; writecom(0xc0+7); writecount(a/1000); writecom(0xc0+8); writecount(a%1000/100); writecom(0xc0+9); writecount(a%100/10); writecom(0xc0+10); writecount(a%10); writecom(0xc0+11); for(c=0;c

}

pduan(unsigned int a)

{ unsignedint x; if(a

} main() { unsignedint compare=0; unsignedintdji;

unsignedinti,j,k; writecom(0x38); writecom(0x0c); writecom(0x06); writecom(0x80+1); for(i=0;i

while(1) { ST=0; OE=0;

ST=1;

ST=0;

while(EOC==0); OE=1; get_data=P1; OE=0; temp=get_data;

disp(temp); dji=pduan(temp); writecom(0x80+14); writedata(0x2a); if(key) { writecom(0x80+14); writedata(0x20); if(dji>compare) {

for(k=25*(dji-compare);k>0;k--)

bujin(0);

compare=dji;

}

else if(dji

for(k=25*(compare-dji);k>0;k--)

bujin(1);

compare=dji;

}

else compare=dji;

};

};

}

void t0(void) interrupt 1 using 0 { TH0=(65536-190)/256; TL0=(65536-190)%256; CLK=~CLK;

}

6. 测量结果分析

当光敏电阻受光照强度的不同时电阻值改变,进而改变步电机的转速与方向,是室内的采光程度最好。

如果想自己手动改变采光度,停止步电机的工作可以关闭开关。

7. 心得体会

通过这一次的电路设计,掌握了LCD 液晶显示、AD 转换和步进电动机驱动的方法,对单片机运用技术又有了进一步的提高。单片机可以驱动电路和实现的功能多种多样,对单片机的灵活运用显然还欠缺许多知识,但经过这次的课程设计,相信对单片机的各方面可以慢慢学习渗透,将其融会贯通。

仿真时LCD 无任何字符显示,检查源程序的LCD 初始化是否正确,修改错误,重新载入源程序仿真。

11

显示的转换数据为错乱数据,网上查阅ADC0809芯片功能书发现改芯片的输出口与IO 口的高低位相反,OUT0~OUT7为高位到低位,恰与我们平时定义的相反。

8. 参考文献

《传感器与检测技术》陈杰黄鸿编著

《基于单片机的百叶窗设计》网络文献

《单片机应用实例》网络文献

《沈阳理工大学传感器实验指导书》刘军冯艳君编著

12

目录

1. 摘要 ................................................... 2 2. 系统总体设计方案 ....................................... 2

2.1设计要求 .......................................... 2 2.2总体框图 .......................................... 3 3. 系统硬件设计 ........................................... 3

3.1总体电路图 ........................................ 3 3.2组成模块介绍 ...................................... 4 4. 元件清单 ............................................... 6 5. 系统调试与测量结果 ..................................... 6

5.1程序流程图 ........................................ 6 5.2程序代码 .......................................... 7 6. 测量结果分析 .......................................... 11 7. 心得体会 .............................................. 11 8. 参考文献 .............................................. 12

基于光敏电阻的简易传感器

——光感自动控制百叶窗

1. 摘要

本设计题目是光感自动控制百叶窗,用光照的强弱来改变光敏电阻的阻值大小,采用了MS-C51单片机为主控制电路,用数码管显示光照强度值, 进而控制步进电动机控制百叶窗的旋转包括正转、反转和暂停。本设计电路各个部分电路的设计原理及功能都能实现,要求对各种基本的电子元器件,电阻、电容、二极管、三极管等熟悉,掌握Proteus 仿真软件的运用、Protel 99 SE工具软件等绘图软件,并加以运用。用单片机内部的AD 转换实现模拟转化为数字量,通过编程控制各个外围电路并实现其功能。本设计具有有线路简单、结构紧凑、价格低廉、性能优越等特点。

单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于各领域各方面。本次设计是以单片机为核心,加上其他器件,设计电路来实现百叶窗的控制。

2. 系统总体设计方案

2.1设计要求

单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于各领域各方面。本次设计是以单片机为核心,加上其他器件,设计电路来实现百叶窗的控制。

利用光敏电阻与标准电阻串联输入模拟信号,通过ADC0809芯片转换成数字信号传送给单片机,通过单片机处理并控制LCD 显示当前的测量光强值,以及输出步进电动机的驱动信号,再利用达林顿管ULN2003提高单片机的输出功率驱动步进电动机。

2.2总体框图

3. 系统硬件设计

3.1总体电路图

3.2组成模块介绍

单片机:AT89C51是一种带4K 字节

FLASH

存储器(FPEROM —Flash

Programmable and Erasable Read Only Memory )的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

AD 转换模块:将光敏电阻用滑动变阻器代替。R10为标准10K 电阻,RV1为

10K 滑动变阻器,以代替光敏电阻仿真。由于仿真软件只支持ADC0808芯片仿真,故在仿真时使用此芯片,实际电路板中选用了ADC0808。处于实际电路板焊接时候引脚选用方便考虑,选用IN7输出口。即将模拟输入选择口ADD A、ADD B、ADD C接入VCC 。处于实际电路焊接考虑,将ST 接入P3.0口,EOC 接入P3.1口,OE 接入P3.2口,CLK 接入P3.3口,具体电路如右图。

步进电动机驱动:如果直接用单片机驱动步进电动机,因为单片机的输出电

流太低,功率不够,无法驱动步进电动机,故接入达林顿管ULN2003来增加输出功率,处于实际电路焊接考虑,使用P3.4~P3.7端口。电路如下图

暂停控制:用开关控制,开关

闭合时步进电动机暂停,LCD 显示暂停状态(*字符),但依旧可以测量出光强值。

LCD 显示:LCD 接口如图所示,

由于单片机P0口和P2口在单片机的右边,故将LCD 的输入口和控制口分别接入P0和P2口,由于P0口无上拉电阻,故接入LCD 时接入一排上拉电阻。如右图

4. 元件清单

5. 系统调试与测量结果

5.1程序流程图

5.2程序代码

#include unsigned char get_data; unsignedint temp;

unsigned char code tab1[]="welcome on!";

unsigned char code tab2[]="light:"; unsigned char code tab3[]="mcd"; sbit ST = P3^0; sbit EOC= P3^1; sbit OE = P3^2; sbit CLK= P3^3; sbit A1 = P3^5; sbit B1 = P3^6; sbit C1 = P3^7; sbit D1 = P3^4; sbit RS = P2^0; sbit RW = P2^1; sbit E = P2^2; sbit key= P2^4;

#define r1 {A1=1;B1=1;C1=1;D1=0;} #define r2 {A1=1;B1=1;C1=0;D1=0;} #define r3 {A1=1;B1=1;C1=0;D1=1;} #define r4 {A1=1;B1=0;C1=0;D1=1;} #define r5 {A1=1;B1=0;C1=1;D1=1;} #define r6 {A1=0;B1=0;C1=1;D1=1;}

#define r7 {A1=0;B1=1;C1=1;D1=1;} #define r8 {A1=0;B1=1;C1=1;D1=0;} void timer() { TMOD=0x10; TH0=(65536-190)/256; TL0=(65536-190)%256; EA=1; ET0=1; TR0=1;

}

void delay(unsigned int t) { inti,j; for(i=t;i>0;i--) for(j=112;j>0;j--);

}

writecom(unsigned char com) { RS=0; RW=0; P0=com; E=0; delay(1);

E=1;

delay(1); E=0;

}

writedata(unsigned char date) { RS=1; RW=0; P0=date; E=0; delay(1); E=1; delay(1); E=0;

}

voidwritecount(unsigned int Data) { switch(Data) { case 0: writedata(0x30);break; case 1: writedata(0x31);break; case 2: writedata(0x32);break; case 3: writedata(0x33);break; case 4: writedata(0x34);break; case 5: writedata(0x35);break; case 6: writedata(0x36);break; case 7: writedata(0x37);break; case 8: writedata(0x38);break; case 9: writedata(0x39);break; }

}

voidbujin(unsigned intpd) { if(pd) {

r1 delay(5); r2 delay(5); r3 delay(5); r4 delay(5); r5 delay(5); r6 delay(5); r7 delay(5); r8 delay(5);

} else { r8 delay(5); r7 delay(5); r6

delay(5);

r5 delay(5); r4 delay(5); r3 delay(5); r2 delay(5); r1 delay(5);

};

}

voiddisp(unsigned int a) { unsignedint c; a*=4; writecom(0xc0+7); writecount(a/1000); writecom(0xc0+8); writecount(a%1000/100); writecom(0xc0+9); writecount(a%100/10); writecom(0xc0+10); writecount(a%10); writecom(0xc0+11); for(c=0;c

}

pduan(unsigned int a)

{ unsignedint x; if(a

} main() { unsignedint compare=0; unsignedintdji;

unsignedinti,j,k; writecom(0x38); writecom(0x0c); writecom(0x06); writecom(0x80+1); for(i=0;i

while(1) { ST=0; OE=0;

ST=1;

ST=0;

while(EOC==0); OE=1; get_data=P1; OE=0; temp=get_data;

disp(temp); dji=pduan(temp); writecom(0x80+14); writedata(0x2a); if(key) { writecom(0x80+14); writedata(0x20); if(dji>compare) {

for(k=25*(dji-compare);k>0;k--)

bujin(0);

compare=dji;

}

else if(dji

for(k=25*(compare-dji);k>0;k--)

bujin(1);

compare=dji;

}

else compare=dji;

};

};

}

void t0(void) interrupt 1 using 0 { TH0=(65536-190)/256; TL0=(65536-190)%256; CLK=~CLK;

}

6. 测量结果分析

当光敏电阻受光照强度的不同时电阻值改变,进而改变步电机的转速与方向,是室内的采光程度最好。

如果想自己手动改变采光度,停止步电机的工作可以关闭开关。

7. 心得体会

通过这一次的电路设计,掌握了LCD 液晶显示、AD 转换和步进电动机驱动的方法,对单片机运用技术又有了进一步的提高。单片机可以驱动电路和实现的功能多种多样,对单片机的灵活运用显然还欠缺许多知识,但经过这次的课程设计,相信对单片机的各方面可以慢慢学习渗透,将其融会贯通。

仿真时LCD 无任何字符显示,检查源程序的LCD 初始化是否正确,修改错误,重新载入源程序仿真。

11

显示的转换数据为错乱数据,网上查阅ADC0809芯片功能书发现改芯片的输出口与IO 口的高低位相反,OUT0~OUT7为高位到低位,恰与我们平时定义的相反。

8. 参考文献

《传感器与检测技术》陈杰黄鸿编著

《基于单片机的百叶窗设计》网络文献

《单片机应用实例》网络文献

《沈阳理工大学传感器实验指导书》刘军冯艳君编著

12


相关文章

  • 围绕传感器应用的误差理论教学改革与实践
  • 摘要:误差理论与数据处理是测控技术与仪器专业的核心课程,是仪器设计和工程测试等专业课程学习的重要基础.针对以传感器设计应用和动态测试技术为特色的专业培养体系,提出建立围绕传感器应用的误差理论教学方法改革.通过传感器标定和传感器测量数据处理等 ...查看


  • 传感器课程设计
  • ※※※※※※※※※ ※2009级传感器 ※ ※ ※ ※※课程设计 ※※※※※ ※ ※ ※※ 传感器课程设计报告书 课题名称 公共汽车门是否关闭检测装置 姓 名 张克玺 学 号 20096620 院.系.部 专 业 指导教师 电气工程系 电气 ...查看


  • 我的课程设计
  • 山东理工大学课程设计 汽车电器与电子技术课程设计说明书 课程设计题目:发动机电控系统线路设计与分析 学 院:交通与车辆工程学院 交通运输 1102 李斌 专业班级: 学生姓名: 指导教师: 曲金玉.韩加蓬.邵金菊 1 山东理工大学课程设计 ...查看


  • 仪器科学与技术
  • 仪器科学与技术 080400 (一级学科:仪器科学与技术) 仪器科学与技术学科下设测试计量技术及仪器和精密仪器及机械两个二级学科,本学科是1983年获博士学位授予权的光学仪器学科的主要部分,本学科1986年获得硕士学位授予权,2000年获得 ...查看


  • 从物联网构成看物联网工程专业的知识体系
  • 摘 要:结合物联网技术本身的体系框架,探讨了物联网工程专业所必备的知识体系,并结合二本院校的特点,为这类院校物联网工程专业培养方案的制定提供建议. 关键词:物联网专业:知识体系:培养方案:高校教育 中图分类号:G642.0 文献标识码:A ...查看


  • 电路与系统专业硕士研究生培养方案
  • 电路与系统专业硕士研究生培养方案 华中师范大学信息技术系 2005年10月 一.培养目标 本专业主要培养德.智.体全面发展的,适应社会主义现代化建设需要的电路与系统学专业专门人才,其具体要求是: 1. 较好地掌握马克思主义基本原理,坚持党的 ...查看


  • 机器人课程设计报告范例
  • **学校 机器人课程设计 名称 院 系 电子信息工程系 班 级 10电气3 姓 名 谢士强 学 号 指导教师 宋佳 目录 第一章 绪论 .................................................... ...查看


  • 微机械角速度传感器ADXRS401的原理与使用
  • 科技信息博士·专家论坛 微机械角速度传感器ADXRS401的原理与使用 南京信息职业技术学院电子信息工程系 引言 微机械陀螺是微机械加工技术与陀螺理论相结合的产物, 飞它在20世纪80年代后期才得到发展,已广泛应用于卫星. 机.车辆.舰船等 ...查看


  • "小学Arduino创意机器人"课程纲要
  • "小学Arduino 创意机器人"课程纲要 "小学Arduino 创意机器人"课程是一门交叉了多门学科的综合性课程,涉及到许多基础学科,包括数学.物理.计算机.化学.生物.多媒体等,学生在运用Ardu ...查看


  • 最新课程标准实例(范例)
  • 课程标准实例 汽车运用与维修专业 发动机电控系统检修课程标准 1.前言 1.1课程性质 关键词:课程地位.主要功能.与其他课程的关系 本课程是汽车运用与维修专业课程.通过本课程的学习,使学生掌握发动机电控各系统的组成和工作原理:培养学生检修 ...查看


热门内容