单片机课程设计照明控制系统教材.docx
- 文档编号:24023807
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:16
- 大小:121.06KB
单片机课程设计照明控制系统教材.docx
《单片机课程设计照明控制系统教材.docx》由会员分享,可在线阅读,更多相关《单片机课程设计照明控制系统教材.docx(16页珍藏版)》请在冰豆网上搜索。
单片机课程设计照明控制系统教材
河南理工大学
《单片机应用与仿真训练》设计报告
照明控制系统
姓名:
李兵
学号:
311208001611
专业班级:
自动化12-1班
指导老师:
王新
所在学院:
电气工程与自动化学院
2014年1月17日
摘要
本设计是一种新型智能控制仪表,它可以根据不同季节不同天亮天黑时间,按照人们不同的需要通过按键对路灯的点亮和熄灭时间进行设置。
在本系统设计中,综合各方面因素考虑,采用了STC公司生产的89C52单片机,利用单片机自身的定时计数器控制实时时间,通过程序设置,时间精度可以达到相关要求。
通过I/O口的按键可以调整实时时间,点亮路灯时间,熄灭路灯时间。
本设计硬件电路简单成本低,性能可靠,操作简单,实现了52单片机在在智能控制当中的应用。
利用52单片机本身的两个外部中断来设置调节路灯的点亮时间和熄灭时间,通过外部按键进入中断子程序,利用P2口的3个按键来改变路灯点亮与熄灭时间的时、分、秒。
用一个P3^5口的一个按键来出中断(时间设置完毕)。
利用P0口带上拉1K的电阻向八段共阴极码管输入段选码,利用P1的前面六个I/O口向六位数码管输入位选码。
51单片机的P0口当程序给其赋1的时候,I/O口显示的是高阻态而不是高电平。
另外单片机I/O口所能提供的电流只有几毫安,不足以点亮八段数码管。
所以利用P0口的高阻态和上拉电阻,在端口赋1的时候,电流从单片机外部输入,通过单片机位选端口流出,直接点亮数码管。
目录
1概述………………………………………………………3
2系统总体方案及硬件设计………………………………………………4
2.1方案设计………………………………………………………………4
2.2设计原理................................................................................................4
2.3硬件设计…………………………………………………4
3软件设计…………………………………………………………………6
4Proteus软件仿真………………………………………………………7
5课程设计体会……………………………………………………………10
参考文献
附1:
源程序代码…………………………………………………………11
附2:
系统原理图…………………………………………………………16
1概述
本设计是基于AT89C52单片机的照明控制系统
该照在众多的单片机系列中,AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,也适用于常规编程。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。
AT89C52具有以下标准功能:
8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。
故此选用AT89C52单片机。
该照明控制系统是一种新型智能控制仪表,它可以根据不同季节不同天亮天黑时间,按照人们不同的需要通过按键对路灯的点亮和熄灭时间进行设置。
在本系统设计中,综合各方面因素考虑,采用了STC公司生产的89C52单片机,利用单片机自身的定时计数器控制实时时间,通过程序设置,时间精度可以达到相关要求。
通过I/O口的按键可以调整实时时间,点亮路灯时间,熄灭路灯时间。
本设计硬件电路简单成本低,性能可靠,操作简单,实现了52单片机在在智能控制当中的应用。
2系统总体方案及硬件设计
2.1方案设计
利用52单片机本身的两个外部中断来设置调节路灯的点亮时间和熄灭时间,通过外部按键进入中断子程序,利用P2口的3个按键来改变路灯点亮与熄灭时间的时、分、秒。
用一个P3^5口的一个按键来出中断(时间设置完毕)。
利用P0口带上拉1K的电阻向八段共阴极码管输入段选码,利用P1的前面六个I/O口向六位数码管输入位选码。
51单片机的P0口当程序给其赋1的时候,I/O口显示的是高阻态而不是高电平。
另外单片机I/O口所能提供的电流只有几毫安,不足以点亮八段数码管。
所以利用P0口的高阻态和上拉电阻,在端口赋1的时候,电流从单片机外部输入,通过单片机位选端口流出,直接点亮数码管。
2.2设计原理
图1设计原理图
2.3硬件设计
硬件电路的设计主要包括单片机系统及显示电路、控制电路和调节电路三部分,单片机采用AT89C52。
采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差,利用P2^3,P2^4,P2^5的按键分别改变时间的时、分、秒。
通过3个按键改变实时时间,路灯点亮时间,路灯熄灭时间的小时,分钟秒数。
分别用两个按键进入点亮时间和熄灭时间设置模式,分别用两个LED灯显示两个不同的模式加以区别。
图2硬件设计电路图
3.软件设计
本设计采用了STC公司生产的89C52单片机,利用单片机自身的定时计数器控制实时时间,通过程序设置,时间精度可以达到相关要求。
通过I/O口的按键可以调整实时时间,点亮路灯时间,熄灭路灯时间。
本设计硬件电路简单成本低,性能可靠,操作简单,实现了52单片机在在智能控制当中的应用。
程序说明:
采用三组,每组三个全局变量分别来控制实时时间,点亮时间和熄灭时间的时、分、秒。
使用外部中断0和1来调整点亮时间和熄灭时间。
利用定时计数器0来计数当前时间。
主程序可改变实时时间的数值,比较三组时间的数值,判断是否点亮路灯。
4软件仿真
附图1未进入工作状态时的仿真图
附图2进入设置点亮时间状态时的仿真图
附图3到达设置时间路灯点亮时的仿真图
附图4进入设置熄灭时间状态时的仿真图
附图5到达设置时间路灯熄灭时的仿真图
5课程设计体会
我从这次的设计中还感受到坚持的重要性。
做事情不能轻言谈放弃,虽然过程不顺利,与想象中相去甚远。
但是只要我们能坚持,朝着自己既定的目标前进,就一定会走到终点。
一点小小的挫折实际上是在为最后的美景做铺垫,当我们守得云开见月明的时候,就会发现,沿途的曲折其实是在考验我们的目标是否坚定。
坚持下来,我们会收获丰硕的果实。
电子课程设计,不仅让我们的知识更加牢固,还让我意识到我们所学的知识可以与生活紧密的联系起来。
这让我对自己有了更多的信心,因为我们在大学里面不是混日子,而是在学习真正对我们的生活有帮助的知识和能力。
一个小小的课程设计,却让我有了大大的希望。
我会更加珍惜现在这么好的学习环境,努力学习知识,让自己在激烈的社会竞争中立足,也把自己所学的知识运用到生活实际中来回报社会。
参考文献
[1]王思明.单片机原理及应用系统设计.北京:
科学出版社,2012.
附1源程序代码
#include
#defineucharunsignedchar
#defineuintunsignedint
charcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
charcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
sbita=P2^0;
sbitb=P2^1;
sbitshic=P2^5;
sbitfenc=P2^4;
sbitmiaoc=P2^3;
sbitoutin=P3^5;
sbitinlamp1=P1^0;
sbitinlamp2=P1^1;
sbitludeng=P2^7;
ucharhour=0,min=0,second,STH,STM,STS,LH,LM,LS;
uintaa=0;
voidyan(intv)
{
intx,j;
for(x=v;x>0;x--)
for(j=10;j>0;j--);}
voidxianshi(ucharh,ucharm,uchars)
{
ucharhhour,lhour,hmin,lmin,hsecond,lsecond;
hhour=h/10;
lhour=h%10;
hmin=m/10;
lmin=m%10;
hsecond=s/10;
lsecond=s%10;
b=1;
P0=0xfe;
b=0;
a=1;
P0=table[hhour];
a=0;
yan(5);
b=1;
P0=0xfd;
b=0;
a=1;
P0=table[lhour];
a=0;
yan(5);
b=1;
P0=0xfb;
b=0;
a=1;
P0=table[hmin];
a=0;
yan(5);
b=1;
P0=0xf7;
b=0;
a=1;
P0=table[lmin];
a=0;
yan(5);
b=1;
P0=0xef;
b=0;
a=1;
P0=table[hsecond];
a=0;
yan(5);
b=1;
P0=0xdf;
b=0;
a=1;
P0=table[lsecond];
a=0;
yan(5);
}
voidmain()
{ludeng=0;
EA=1;
TMOD=0x01;
TH0=0x4b;
TL0=0xfd;
TR0=1;
ET0=1;
EX0=1;EX1=1;IT0=1;IT1=1;
PX0=1;PX1=0;
while
(1)
{
if(shic==0)
{yan
(2);if(shic==0){hour++;}
if(hour==24)hour=0;
while(shic!
=1)xianshi(hour,min,second);}
if(fenc==0)
{yan
(2);if(fenc==0){min++;}
if(min==60)min=0;
while(fenc!
=1)xianshi(hour,min,second);}
if(miaoc==0)
{yan
(2);if(miaoc==0){second++;}
if(second==60)second=0;
while(miaoc!
=1)xianshi(hour,min,second);}
if(hour==STH)
{if(min==STM)
{if(second==STS)ludeng=1;}
}
if(hour==LH)
{if(min==LM)
{if(second==LS)ludeng=0;}
}
xianshi(hour,min,second);
}
}
voidtime0()interrupt1//定时器0用来控制实时时间
{
TH0=0x3c;
TL0=0xaf;
aa++;
if(aa==20)
{
aa=0;
second++;
if(second==60)
{
second=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}
voidtimedot()interrupt0//设置点亮时间
{
inlamp1=0;
inlamp2=1;
while(outin==1)
{
if(shic==0)
{yan
(2);if(shic==0)STH++;
if(STH==24)STH=0;
while(shic!
=1)xianshi(STH,STM,STS);}
if(fenc==0)
{yan
(2);if(fenc==0)STM++;
if(STM==60)STM=0;
while(fenc!
=1)xianshi(STH,STM,STS);}
if(miaoc==0)
{yan
(2);if(miaoc==0)STS++;
if(STS==60)STS=0;
while(miaoc!
=1)xianshi(STH,STM,STS);}
xianshi(STH,STM,STS);
}
inlamp1=1;
}
voidtimelong()interrupt2//设置熄灭时间
{
inlamp2=0;
while(outin==1)
{
if(shic==0)
{yan
(2);if(shic==0)LH++;
if(LH==24)LH=0;
while(shic!
=1)xianshi(LH,LM,LS);}
if(fenc==0)
{yan
(2);if(fenc==0)LM++;
if(LM==60)LM=0;
while(fenc!
=1)xianshi(LH,LM,LS);}
if(miaoc==0)
{yan
(2);if(miaoc==0)LS++;
if(LS==60)LS=0;
while(miaoc!
=1)xianshi(LH,LM,LS);}
xianshi(LH,LM,LS);
}
inlamp2=1;
}
附2:
系统原理图
系统原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 照明 控制系统 教材