摘要目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用尤为重要。而51单片机是各类单片机中最为典型和最具代表性的一种。本实验是基于MCS-51系列单片机所设计的,以单片机芯片AT89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,实现PWM控制LED的亮度。关键词:AT89C51、PWM、LED目录1项目概述和要求....................................................................................11.1单片机基础知识.................................................................................11.3项目设计任务与设计思路.................................................................22系统设计................................................................................................32.2元件清单..............................................................................................32.2.1AT89C51芯片...................................................................................................32.2.2LED...................................................................................................................42.2.3其它元件...........................................................................................................63软件设计.................................................................................................93.1程序......................................................................................................94系统的仿真与调试..............................................................................114.1硬件调试...........................................................................................114.2软件调试...........................................................................................124.3软硬件调试.......................................................................................125总结........................................................................................................14参考文献..................................................................................................15信息工程学院课程设计报告11项目概述和要求1.1单片机基础知识单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲,一块芯片就成了一台计算机。单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机MCS-51单片机是美国INTEL公司于1980年推出的产品,与MCS-48单片机相比,它的结构更先进,功能更强,在原来的基础上增加了更多的电路单元和指令,指令数达111条,MCS-51单片机可以算是相当成功的产品,一直到现在,MCS-51系列或其兼容的单片机仍是应用的主流产品,各高校及专业学校的培训教材仍与MSC-51单片机作为代表进行理论基础学习。MCS-51系列单片机主要包括8031、8051和8751等通用产品。增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。信息工程学院课程设计报告21.3项目设计任务与设计思路设计任务:基于电位器控制LED亮度设计思路:LED一般是恒流操作的,如何改变LED的亮度呢?答案就是PWM控制。在一定的频率的方波中,调整高电平和低电平的占空比,即可实现。比如我们用低电平点亮一个LED灯,假设我们把一个频率周期分为10个时间等份,如果方波中的高低电平占空比是9:1,这是就是一个比较暗的亮度,如果方波中高低电平占空比是0:10,这时,全部是高电平,灯是灭的。如果占空比是5:5,就是一个中间亮度,如果高低比是9:1,是一个比较亮的亮度,如果高低是10:0,这时全部是低电平,就是最亮的。实际上应用中,电视屏幕墙中的几十百万LED象素都是这样控制的,而且每一个象素都有红绿蓝3个LED,每个LED可以变化的亮度是几百到几万或者更多的级别,以实现真彩色的显示。还有在您的手机中,背光灯的亮度如果是可以变化的,也应该是这种工作方式。目前的城市彩灯也有很多都使用了LED,需要控制亮度是也是PWM控制。信息工程学院课程设计报告32系统设计2.1系统电路原理图图2-1利用PWM信号控制LED亮度的驱动电路2.2元件清单2.2.1AT89C51芯片AT89C51芯片图如下图2-2-1所示。信息工程学院课程设计报告4图2-2-1AT89C51芯片图①简介:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。②主要特性:与MCS-51兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。2.2.2LED◆LED灯显示的原理原理:LED是英文lightemittingdiode(发光二极管)的缩写,它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护内部芯线的作用,所以LED的抗震性能好。LED结构信息工程学院课程设计报告5图如下图所示发光二极管的核心部分是由p型半导体和n型半导体组成的晶片,在p型半导体和n型半导体之间有一个过渡层,称为p-n结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。图2-2-1LED实物图信息工程学院课程设计报告6图2-2-2LED电路图2.2.3其它元件其它元件图如下图2-6所示。信息工程学院课程设计报告7图2-2-3其它元件图信息工程学院课程设计报告93软件设计3.1程序#defineucharunsignedchar//定义一下方便使用#defineuintunsignedint#defineulongunsignedlong#includereg52.h//包括一个52标准内核的头文件sbitP10=P1^0;//要控制的LED灯sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitP14=P1^4;sbitP15=P1^5;sbitP16=P1^6;sbitP17=P1^7;ucharscale;//用于保存占空比的输出0的时间份额,总共10份charcodedx516[3]_at_0x003b;//这是为了仿真设置的//模拟PWM输出控制灯的10个亮度级别voidmain(void)//主程序{uintn;RCAP2H=0xF3;//赋T2的预置值,溢出1次是1/1200秒钟RCAP2L=0x98;TR2=1;//启动定时器ET2=1;//打开定时器2中断EA=1;//打开总中断while(1)//程序循环{;//主程序在这里就不断自循环,实际应用中,这里是做主要工作for(n=0;n50000;n++);//每过一会儿就自动加一个档次的亮度scale++;if(scale==10)scale=0;}}//1/1200秒定时器2中断timer2()interrupt5{信息工程学院课程设计报告10staticuchartt;//tt用来保存当前时间在一秒中的比例位置TF2=0;tt++;if(tt==10)//每1/