智能电动百叶窗单片机课程设计说明书
- 格式:docx
- 大小:766.40 KB
- 文档页数:20
智能电动百叶窗单片机课程设计说明书
单片机课程设计
——智能电动百叶窗
姓名:
班级:机101-3班
专业:机械设计制造及其自动化
学号: 2010*****1310 指导教师: ******
完成时间: 2013年6月5日
目录
一、课程设计任务书--------------------------------- - 4 -
(一)课程设计题目:智能电动百叶窗................................. - 4 -
(二)任务详情: .................................................. - 4 -二、设计项目简介 ---------------------------------- - 4 -
(一)基本要求: .................................................. - 4 -
(二)基本工作原理: .............................................. - 5 -
(三)各元器件资料: .............................................. - 5 -
1.AT89C51单片机------------------------------------------ - 5 -
2.ADC0808------------------------------------------------ - 8 -
3.光敏传感器--------------------------------------------- - 9 -
4.74SEG-MPX4-CA数码管----------------------------------- - 10 -
5.74LS245 驱动------------------------------------------ - 11 -
三、电路原理图 ----------------------------------- - 12 -
(一)复位电路 ................................................... - 12 -
(二)时钟电路 ................................................... - 12 -
(三)数码管显示电路 ............................................. - 12 -
(四)电机控制电路 ............................................... - 13 -
(五)A/D转换电路................................................ - 15 -
(六)总体电路图 ................................................. - 15 -
四、程序框图 ------------------------------------- - 16 -
五、程序清单 ------------------------------------- - 17 -
六、总结 ----------------------------------------- - 19 -
七、参考资料 ------------------------------------- - 20 -
一、课程设计任务书
(一)课程设计题目:智能电动百叶窗
(二)任务详情:
本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。
设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。
按键输入采用中断方式,按键中断请求信号接INT0。
单片机根据设定光强S
1和S
2
(S
2
> S
1
)和实测光强P控制电机M
的动作:
当P<=S
1
时,控制M正转以增加进光量;
当P>S
2
时,控制M反转以减少进光量;
当S
1<P<=S
2
时,M停转。
二、设计项目简介
(一)基本要求:
1、用MCS-51单片机,12MHz时钟,常规的上电手动复位电路
2、3个以上的按键
3、LED或/和数码管/和LED显示及其接口
4、至少2路输入信号,可以使模拟量或数字量
(二)基本工作原理:
本设计就是应用传感器技
术、单片机技术以及直流电机来控
制百叶窗调节杆的旋转角度从而
达到控制百叶窗的目地.设计主要
包括光传感器、单片机控制系统、
直流电机、百叶窗自动机构,电源
用直流电源;电机驱动的电路与电
机连接。
本设计用新型光敏电阻感应室内的光照强度将室内光照强度或手动开关作为输入的模拟信号,通过AD转换将模拟信号转换成数字信号,再经过51单片机处理之后, 将输出信号用来控制直流电机的转向,从而实现百叶窗的开关以及透光角度大小。
(三)各元器件资料:
1.AT89C51单片机
AT89C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、
减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以
及串行通信能力和5个中断源。
采用40引脚双列直插式DIP(Dual In
Line Package),内有128个RAM单元及4K的ROM。
AT89C51有两个
16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,
并有4个8位并行输入口。
AT89C51内部有时钟电路,但需要石英晶
体和微调电容外接,本系统中采用12MHz的晶振频率。
由于AT89C51
的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富
来源广,应用也很成熟,故采用来作为控制核心。
引脚的功能:
图2-311 Proteus 中的
AT89C51
图2-312 AT89C51引脚图
地址总线(AB)
805187518031
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0
P 3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7PSEN EA ALE RST
用户I/O
控制总线(CB)
锁存器
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3 P0.2P0.1P0.0AL E
A15A 14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D 6D5D4D3D2D1
D0
V CC V SS
数据总线(DB)
a)b )
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
INT1、P3.3T0、P3.4T1、P3.5WR 、P3.6RD 、P3.7
XTAL 2XTAL1
V V CC P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA /
ALE/PROG PSEN P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
805187518031
1
234567891011121314151617181920
4039383736353433323130292827262524232221
V CC V SS
RXD 、P3.0 TXD 、P3.1SS
INT0、P3.2
主电源引脚
Vcc(40脚):一般接+5V电源正端。
Vss(20脚):一般接+5V电源地端。
外接晶体振荡器引脚
XTAL1(19脚):外接晶体振荡器的一端。
XLAT2(18脚):外接晶体振荡器的另一端。
RST/VPD(9脚):复位/备用电源线。
ALE:(30脚):地址锁存允许/编程线
PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效。
PSEN(31脚):片外程序存储器选用端,低电平有效。
EA(31脚):片外程序存储器选用端,低电平有效。
P0口(39~32脚):输入/输出线P0.0~P0.7统称为P0口。
P1口(1~8脚):输入/输出线P1.0~P1.7统称为P1口。
P2口(21~28脚):输入/输出线P2.0~P2.7统称为P2口。
P3口(10~17脚):输入/输出线P3.0~P3.7统称为P3口。
以下是P3口第二功能:
引脚第二功能说明
P3.0 RXD 串行口输入端
P3.1 TXD 串行口输出端
P3.2 INT0 外部中断0请求输入
P3.3 INT1 外部中断1请求输入
P3.4 T0 定时器/计数器0计数脉冲输入
P3.5 T1 定时器/计数器1计数脉冲输入
P3.6 WR 外部数据存储器写选通信号输出
P3.7 RD 外部数据存储器读选通信号输出
INT0/INT1:外部中断选择接口,当外部有低电平或脉冲下降沿输入时,出发单片机的终端服务子程序。
中断控制响迅速、准确,电平和脉冲触发已与采集信号、易于控制。
2.ADC0808
图2-321 ADC0808内部结构图
图2-322 ADC0808引脚图
IN7~IN0——模拟量输入通道
ALE——地址锁存允许信号。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
START下降沿时启动芯片,开始进行A/D转换;
在A/D转换期间,START应保持低电平。
A、B、C——地址线。
通道端口选择线,A为低地址,C为高地址,
CLK——时钟信号。
通常使用频率为500KHz的时钟信号
EOC——转换结束信号。
EOC=0,正在进行转换;EOC=1,转换结束。
D7~D0——数据输出线。
D0为最低位,D7为最高
OE——输出允许信号。
OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。
Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
3.光敏传感器
主要运用的是光敏电阻
(RL),它是一种将电阻值随入
射光的强弱而改变的电阻器,
它的工作原理是基于内光电
效应,当入射光强时,内载流
子数目的减少,电阻减小;当
入射光弱时,内载流子数目的
增加,电阻增大.光敏二极管
价格低廉,实用性强,灵敏度高,如图2-331所示。
光敏传感器模块采用的
电压比较器是LM393如图3
所示:电压比较器是对两个
电压VA和VB进行电压高低的一个比较,它有两个输入端:同相输入端(“+”
端) 及反相输入端(“-”端),有一个输出端Vout(输出电平信号)。
同相端输入电压VA,反相端输入VB。
当VA>VB时,Vout输出高电平;当VB>VA时,Vout输出低电平。
在仿真中,用1K的滑动变阻器控制5V电压变化模拟光敏电阻的变化。
4.74SEG-MPX4-CA数码管
图2-341 数码管引脚
选用7段4位一体共阳极数码管显示器,单片机的P2.0、P2.1、P2.2、P2.3为位选,分别控制4位数码管的亮灭,P0~P7为数据线。
图2-342 7段数码管共阳极接法原理图及管脚
令P0-P7分别对应a、b、c、d、e、f、g、dp管段,选取共阳极数码管,则单片机P0口输出为0时,控制段点亮。
则数码管显示数字时对应的P0口输出如表所示:
1 2 3 4 5 6 7 8 9 0
0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H 0C0H 5.74LS245 驱动
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)DIR=“1”,信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。
由于P2口始终输出地址的高8位,接口时74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。
P0口与74LS245输入端相连,E端接地,保证数据线畅通。
8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入
(P0.1←D1),其它时间处于输出(P0.1→D1)。
三、电路原理图
(一)复位电路
图3-1 复位电路
(二)时钟电路
图3-2 时钟电路
(三)数码管显示电路
如图3-3,单片机的P2.0-P2.3由+5V的上拉电压驱动控制数码管显示位,P0口经74LS245输出数码管显示数据:
图3-31 数码管显示电路
图3-32 显示实例
(四)电机控制电路
如图3-4,按钮实现手动控制,上面按钮控制正转,下面按钮实现反转,开关SW1控制手动、自动的切换,按下SW1后,二极管点亮,INT0出现低电平,进入中断控制电动机的正反转或停止,SW3、SW4作为行程开关,当一个方向到达极限是触动行程开关,是继电器断出系统,不再控制。
图3-41 电机控制电路
图3-42 手动控制
图3-43 自动控制
(五)A/D转换电路
如图3-5,使用A/D转换器的IN0通道,故ADD A-ADD C均接地,CLOCK口接500KHZ的方波脉冲,单片机P3.0与START、ALE口连接控制
A/D转换器的启动,EOC口接P2.7传递转换结束信号,单片机P2.6与
A/D转换器OE口连接,控制数据输出。
图3-5 A/D转换电路
(六)总体电路图
图3-6 总电路图
四、 程序框图
主程序框图
N
Y 进入中在取A/D 转数据处理 是否有控制LED 显
Y N
主程初始化数启动A/D A/D 转
程序
五、程序清单
LED_0 EQU 31H ;存放三个数码管
LED_1 EQU 32H
LED_2 EQU 33H
AD EQU 30H ;存放AD转换后的数据的段码
ORG 0000H
LJMP MAIN
ORG 0003H ;中断0起始地址
LJMP ZD0
ORG 0030H
MAIN: MOV LED_0,#00H ;给显示赋初值0
MOV LED_1,#00H
MOV LED_2,#00H
SETB EA
SETB EX0
SETB IT0 ;低电平触发
;在A/D转换器内取数值:
WAIT: SETB p3.0
CLR p3.0 ;启动AD转换
JNB p2.7,$ ;等待转换结束
SETB p2.6 ;允许输出
MOV AD ,P1 ;暂存转换结果
CLR p2.6 ;关闭输出
LCALL BCD ;调用数据处理子程序
LCALL LED ;调用显示程序,显示转换的值
SJMP WAIT
;将AD转换输出的数据转换成相应的电压值:
BCD: MOV A,AD ;将AD转换结果转换成BCD码 MOV B,#51 ;255/51=5.00V
DIV AB
MOV LED_2,A ;个位数字存入LED_2中
MOV A,B
CLR F0
SUBB A,#1AH
MOV F0,C
MOV A, #10
MUL AB
MOV B,#51
DIV AB
JB F0,LOOP1
ADD A,#5
LOOP1: MOV LED_1,A ;十分位存入LED_1中
MOV A,B
CLR F0
SUBB A,#1AH
MOV F0,C
MOV A, #10
MUL AB
MOV B,#51
DIV AB
JB F0,LOOP2
ADD A,#5
LOOP2: MOV LED_0,A ;百分位存入LED_0中
RET;
;控制数码管显示程序:
LED: CLR P2.0
MOV A,LED_0
MOV DPTR,#TABLE1 ;送段码表首地址
MOVC A,@A+DPTR
SETB P2.3 ;允许百分位输出
MOV P0,A ;将位段码送给P0口
LCALL DELAY ;调用延时程序
CLR P2.3 ;关闭百分位显示
MOV A,LED_1
MOV DPTR,#TABLE1 ;送段码表首地址
MOVC A,@A+DPTR
SETB P2.2 ;允许十分位输出
MOV P0,A ;将位段码送给P0口
LCALL DELAY ;调用延时程序
CLR P2.2 ;关闭十分位显示
MOV A,LED_2
MOV DPTR,#TABLE2 ;送段码表首地址
MOVC A,@A+DPTR
SETB P2.1 ;允许个位输出
MOV P0,A ;将位段码送给P0口
LCALL DELAY ;调用延时程序
CLR P2.1 ;关闭个位显示
RET
;中断服务子程序0:
ZD0: CLR P2.4 ;清除电机控制端数据CLR P2.5
MOV A,AD
CLR C ;清除CY位
CJNE A,#150,CONTROL ;将A/D转换后的数与150比较
SJMP RETURN
CONTROL: JNC ZHENG ;若大于,则跳至正转CJNE A,#110,FAN ;若小于,则与110比较
SJMP RETURN
FAN: JC ZHUAN ;若大于110,则返回SJMP RETURN
ZHUAN: CLR P2.5 ;若小于,则反转
SETB P2.4
LCALL DELAY
SJMP RETURN
ZHENG: CLR P2.4 ;输出正转指令
SETB P2.5
LCALL DELAY
RETURN: RETI
;延时服务子程序
DELAY: MOV R6,#2 ;延时1MS子程序
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
;数码管显示表格
TABLE1: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H, 82H,0F8H, 80H,90H ;共阳极0~9十个段码TABLE2: DB 40H,79H,24H,30H,19H,14H ;带小数点的0~5六个段码END
六、总结
本文介绍了智能电动百叶窗的设计,较为详细的介绍了只能电动百叶窗从硬件电路设计到软件设计的一系列步骤。
设计主要采用直流电动机执行元件,以光敏电阻作为传感元件,89C51单片机作为控制芯片,从而实现了智能电动百叶窗的设计。
同时,由于设计的时间和能力有限,没有对智能电动百叶窗的许多其他功能和技术没有进行进一步的研究,如电机旋转速度和光杆强度的优化等,没有完成实物的设计。
但是,通过智能电动百叶窗课题设计,不仅让我掌握了关于单片机系统和电子操作软件等各方面的知识,更是将所学电工电子有效的与单片机结合在了一起。
在实践和动手能力方面更是有了很大的提升。
七、参考资料
1、
2 、
3、查电子元器件资料: /
4、胡汉才编著,单片机原理及系统设计,清华大学出版社
5、张建民编著,机电一体化系统设计,高等教育出版社。