基于PMW调光100303文档格式.docx
《基于PMW调光100303文档格式.docx》由会员分享,可在线阅读,更多相关《基于PMW调光100303文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
比如我们用低电平点亮一个LED灯,我们假设把一个频率周期分为10个时间等份,如果方波中的高低电平占空比是9:
1,这是就是一个比较暗的亮度,如果方波中高低电平占空比是10:
0,这时,全部是高电平,灯是灭的。
如果占空比是5:
5,就是一个中间亮度,如果高低比是1:
9,是一个比较亮的亮度,如果高低是0:
10,这时全部是低电平,就是最亮的。
程序中,通过改变TH0和TL0中的初始数值来实现的。
每次按下按键K1或K2按下时,改变数值为6553,并且LED数码管显示相应的数值。
PWM调光控制还增加了报警功能,当按下K1键按下十次后,LED熄灭,此时蜂鸣器发出报警声。
3.3基于PWM调光总体框图
图1.1基于PWM调光硬件系统框图
四、设计原理及流程图
4.1硬件设计
4.1.1电路设计原理
PWM调光控制还增加了报警功能,当按下K1键按下十次后,LED熄灭,此时蜂鸣器发出报警声
4.1.2原理图(proteus仿真连接图)
图1-4电路仿真连接图
4.2软件设计
4.2.1Proteus软件简介
ProteusISIS是英国Labcenter公司开发的电路分析和实物仿真软件。
它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:
①实现了单片机仿真和数字电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;
有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等;
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片;
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;
同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件;
④具有强大的原理图绘制功能。
总之,该软件是一款集单片机和电路分析于一身的仿真软件,功能极其强大。
4.2.2ProteusISIS界面
双击桌面上的ISIS7Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus7.7Professional”→“ISIS7.7Professional”,出现如图1-8所示
图1-5Proteus启动时的屏幕
图1-6proteus界面
ProteusISIS的工作界面是一种标准的Windows界面,如图5-2所示。
包括:
标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
图1-7ProteusISIS的工作界面
运行Proteus程序后,进入软件的主界面。
通过左侧工具栏中的P(从库中选择元件命令)命令,在PickDevices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,进行连线。
最后载入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试运行。
图1-8Proteus运行按键
在利用Proteus进行仿真的条件下,通过不停的调试和改正,显示屏LCD1602不能显示任何内容,最后还是不能实现密码锁的功能,其Proteus仿真如图5-6所示。
4.2.3软件流程图
五、基于PMW调光元器件
表1-2
元件序号
型号
主要参数
数量
备注
1
单片机AT89C51
2
瓷片电容CAP
2
3
发光二极管led
4
按钮开关BUTTON
3
5
蜂鸣器BUZZER
6
晶振CRYSTAL
12MHz
7
排阻RESPACK-8
8
数码管
7SEG-MPX2-CA
9
电源POWER
10
地线GND
11
示波器
六、器件识别和检测
6.1AT89C51简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,和工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示
AT89C51外形及引脚排列
。
编辑本段主要特性:
·
和MCS-51兼容
4K字节可编程FLASH存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
6.2LED简介
原理:
LED是英文lightemittingdiode(发光二极管)的缩写,它的基
本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环
氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。
LED结构
图如下图所示发光二极管的核心部分是由p型半导体和n型半导体组成的晶
片,在p型半导体和n型半导体之间有一个过渡层,称为p-n结。
在某些半导
体材料的PN结中,注入的少数载流子和多数载流子复合时会把多余的能量以光
的形式释放出来,从而把电能直接转换为光能。
PN结加反向电压,少数载流子
难以注入,故不发光。
这种利用注入式电致发光原理制作的二极管叫发光二极管,
通称LED。
当它处于正向工作状态时(即两端加上正向电压),电流从LED阳
极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱和电
流有关。
6.3示波器简介
示波器是一种用途十分广泛的电子测量仪器。
它能把肉眼看不见的电信号变换成看得见的图象,便于人们研究各种电现象的变化过程。
示波器利用狭窄的、由高速电子组成的电子束,打在涂有荧光物质的屏面上,就可产生细小的光点。
在被测信号的作用下,电子束就好像一支笔的笔尖,可以在屏面上描绘出被测信号的瞬时值的变化曲线。
利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用它测试各种不同的电量,如电压、电流、频率、相位差、调幅度等等。
七.控制系统实现
7.1电路板的仿真
利用keil软件编写源程序。
在protues中画好其电路图如下图1-12所示:
7.2软件调试
在硬件调试完毕的基础上,需要进一步完善程序,也就是进入软件调试阶段。
在本设计中,软件调试主要分两大部分:
数码管子程序调试、按键子程序调试。
将这两部分调试成功,那么整个设计的软件部分也就基本完成了。
图1-12基于PWM调光仿真图
图1-13仿真过程中
7.3C源程序
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
longa=6553;
uintb=0;
uchardata_H,data_L;
bitflag=1;
sbitLED=P1^0;
sbitBEEP=P3^7;
constuchartab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
voiddelayms(uintms)
{
uinti;
while(ms--)
for(i=0;
i<
120;
i++);
}
voiddisplay(void)
data_H=b/10;
data_L=b%10;
P2=0x01;
P0=tab[data_L];
delayms
(1);
P2=0x02;
P0=tab[data_H];
voidint_0()interrupt0
delayms(10);
if(INT0==0)
if(a>
=65536)
a=65534;
b=100;
LED=-1;
else
a=a+6553;
b=b+10;
voidint_()interrupt2
if(INT1==0)
if(a<
0)
a=0;
b=0;
LED=0;
a=a-6553;
b=b-10;
voidtimer0(void)interrupt1
{
if(flag==1)
LED=0;
TH0=65535-((65535-a)/256);
TL0=65535-((655535-a)%256);
if(flag==0)
LED=1;
TH0=(65535-a)/256;
TL0=(65535-a)%256;
flag=~flag;
voidTimer1()interrupt3
uchart;
BEEP=~BEEP;
t++;
if(t<
200)
TH1=0xFD;
TL1=0X44;
elseif(t<
800)
{TH1=0xFA;
TL1=0x88;
else
TR1=0;
t=0;
voidTimer_init(void)
TMOD=0x11;
TL1=0x44;
EA=1;
ET0=1;
ET1=1;
TR0=1;
voidsound()
if(a==65534)
TR1=1;
}
voidINT_init(void)
EX0=1;
IT0=1;
EX1=1;
IT1=1;
voidmain(void)
Timer_init();
INT_init();
while
(1)
display();
sound();
八、课设心得
总结经过将近一个星期的课程设计,PWM控制LED的亮度设计基本完成,系统
功能基本实现,测试运行也基本正常。
该系统基本上完成了模拟PWM控制LED的亮度。
当然这个系统还存在许多有待完善的地方:
功能相对较少,有待于添加,比方说时钟和闹钟功能;
界面设计得不够精致完美;
这次课程设计的时间虽然不算很长,但使我对很多东西有了更深刻的认识。
总结如下:
1.单片机基础知识要熟练掌握。
2.查阅资料和阅读相关文献的重要性,充分利用网络这个大的资料库。
3..向同学请教的重要性以及团队协作的重要性。
4.勤动手的重要性,自己动手,丰衣足食!
在一次次调试代码的过程中,我才明白“代码不是写出来的,是调试出来的”的道理。
5.对待任何事情都要有耐心和恒心,遇到问题要冷静地思考,积极找出症结所在,
逐个解决。
通过本次课程设计,我更深刻的认识到了教学实践在大学课程中的重要性,
同时也发觉到了自己在学习方面存在的许多不足之处,在以后的学习中我会努力
改进这些不足,不断提高自己的动手实践能力。
九、参考文献
1、倪晓军章韵等.单片机原理和接口技术教程.北京:
清华大学出版社,2009
2、AT89C51中文手册
3、谭浩强等.C程序设计.北京:
清华大学出版社,2005
4、王守忠聂元铭.51单片机开发入门和典型实例.北京:
人民邮电出版社,2009
课程设计任务书
学院
信息科学和工程
专业
测控技术和仪器
学生姓名
严松
学号
1003020333
设计题目
(和封面题目一致)
内容及要求:
《keilc程序设计》是测控技术和仪器专业的专业基础课。
本设计是对该课程综合使用能力的检验,在鼓励学生熟悉基本原理的前提下,注重和实际使用相联系,提出自己的方案,完善设计。
1、熟悉单片机及被控对象的工作原理;
2、提出可行设计方案;
3、根据方案设计硬件电路、绘制电路原理图;
4、软件编程并调试;
5、系统调试;
5、完成课程设计报告。
进度安排:
第18周(2012年12月29日-2013年1月7日):
布置设计任务,查资料,完成总体方案设计,系统硬件电路设计,系统软件编写并调试,验收答辩。
指导教师(签字)
2012年11月24日
学院院长(签字)
基于PWM调光设计
摘要
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯和数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发和使用尤为重要。
而51单片机是各类单片机中最为典型和最具代表性的一种。
本实验是基于MCS-51系列单片机所设计的,以单片机芯片AT89C51作为核心控制器,通过硬件电路的制作以及软件程序的编制,实现PWM控制LED的亮度。