当前位置:文档之家› 单片机开关控制LED

单片机开关控制LED

单片机开关控制LED
单片机开关控制LED

单片机开关控制LED

专业班级:

学生姓名:

指导教师:

完成日期:

电气与信息工程系课程设计任务书

教研室主任(签名)系(部)主任(签名)年月日

新疆工业高等专科学校电气与信息工程系

课程设计评定意见

设计题目:单片机开关控制LED

学生姓名:徐涛专业工业网络技术班级工网09-2班评定意见:

评定成绩:

指导教师(签名):年月日评定意见参考提纲:

1.学生完成的工作量与内容是否符合任务书的要求。

2.学生的勤勉态度。

3.设计或说明书的优缺点,包括:学生对理论知识的掌握程度、实践工作能力、表现出的创造性和综合应用能力等。

摘要

1)摘要正文

本设计基于Protuse自动设计能力、高速有效的编辑功能、简捷方便的设计过程管理PDM,并且可以完整地实现单片机的仿真,从单片机概念设计到生成物理生产数据的全过程,以及这中间的所有分析、仿真和验证功能详细阐述了电路原理图的绘制、实现功能。本设计还基于keil软件的使用编写程序,生成可被protuse软件识别的.hex文件,实现自己设计想要的功能。以及在自学过程和制作过程中所遇到的种种问题。并且给了相应的解决方法。

2)关键词:

Protuse软件; keil软件;仿真;程序;

目录

1、单片机 (1)

1.1、单片机介绍 (1)

1.2、单片机分类 (1)

1.3、单片机应用: (1)

1.4、AT8951系列优点: (3)

1.5、PIC系列 (4)

1.6、AVR系列 (5)

1.7单片机类型 (5)

1.8、中国主要应用51单片机的总类 (7)

2、Proteus软件 (8)

2.1、功能介绍 (8)

2.2、独有特点 (8)

2.3功能模块 (8)

2.5、丰富资源 (10)

3、Keil (11)

3.1、系统概述 (11)

3.2、Keil C51单片机软件开发系统的整体结构 (12)

4、本组设计 (13)

4.1、以下是本人利用protuse软件的绘图过程 (13)

4.2、下面是我利用keil软件编写的程序 (17)

4.3、仿真 (21)

总结 (24)

致谢 (25)

参考文献 (26)

1、单片机

1.1、单片机介绍

单片机在一块半导体材料上集成了CPU、存储器、I/O接口等各种功能部件,具有体积小、功耗低、价格便宜、功能强、可靠性好和使用方便灵活的特点,使单片机在工业控制、数据采集、智能化仪表、办公自动化以及家用电器方等各个领域中得到了越来越广泛的应用。将单片机技术与测量控制技术相结合,可以使工业自动控制变得更方便、控制效果更佳。在机电一体化方面,单片机也发挥了它的特殊作用,使许多传统产业发生了巨大的变化,使许多工业产品体积缩小,能耗降低,功能增加,操作方便。由于单片机在如此广泛的领域里获得了应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,其中,MCS-51系列单片机以其优越的性能、成熟的技术和高可靠性,占领了工业控制的主要市场。特别是在我国,MCS-51系列单片机,成为单片机应用领域的主流。

1.2、单片机分类

目前的单片机分通用型和专用型两种。MCS-51系列单片机是属于通用型的单片机,通用型的单片机把开发资源全部公开,用户可以根据自己的应用系统进行设计,适用面广,应用灵活。制造单片机的材料也从TTL材料发展到CMOS材料,通常工作电压是5V,如5V±5%或5V±10%,也有3V/3.3V电压的产品,更低的可在1.5V工作。现在单片机又出现了宽电压范围型,在2.5~6.5V内都可正常工作。低功耗是单片机所追求的一个指标,目前低功耗单片机的静态电流可以低至μA或nA级。有的单片机还有等待、关断、睡眠等多种工作模式以降低功耗。单片机的低功耗在智能化仪表中有重要的应用。封装有双列直插和贴片系列,体积变得更小,另外,单片机的时钟频率也达到20MHz 以上。单片机的种类很多,在工业中应用最广泛的是MCS-51系列单片机,MCS-51系列的片内程序存储器分掩膜ROM、EPROM和无ROM存储器三种。一般情况下,片内有掩膜ROM的芯片用于程序已经固定的大批量生产场合。片内带EPROM的适合于做样机,便于修改程序,做试验。而外接EPROM的适用于做小批量产品或用于ROM大于8K的场合。

1.3、单片机应用:

1、单片机在数据处理中的应用

单片机在应用中的数据处理有数制转换的处理、查表计算、函数计算

等多种运算。可以利用单片机进行函数计算来处理数据,可以进行矩阵运算和微积分之类的复杂运算。

2、单片机在工业控制中的应用

在工业控制中的控制器,可以应用软件的方法,实现复杂的控制过程,改变控制算法方便。有丰富的逻辑判断和位操作指令,可以在开关量控制、顺序控制、逻辑控制中发挥作用。目前,在加热控制、电机控制、锅炉控制、汽车电器、数控机床等各个领域,单片机得到了广泛的使用,并取得了很好的效果。

3、智能化仪器

在仪表中引入单片机后,可以利用单片机完成数据的采集、处理、零位校正、数字显示、报警、记录打印等工作。使仪表具有智能化的功能,有温度计、流量计、气体分析仪、转速表、电子秤、血压计、万用表、电度表等。

4、家用电器

在家电产品中,为了改善产品的性能,使操作使用更人性化,在电冰箱、微波炉、空调、电视机、音响设备、洗衣机、玩具中,大量使用了单片机技术。单片机正在迅速渗透到各个方面,改变了原有产品的现状。

1.4、AT8951系列优点:

1、AT89C51系列:内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少见。

2、AT89C51系列在片内RAM区间还特别开辟了一个双重功能的地址区间,十六个字节,单元地址20H~2FH,它既可作字节处理,也可作位处理(作位处理时,合128个位,相应位地址为00H~7FH),使用极为灵活。这一功能无疑给使用者提供了极大的方便,因为一个较复杂的程序在运行过程中会遇到很多分支,因而需建立很多标志位,在运行过程中,需要对有关的标志位进行置位、清零或检测,以确定程序的运行方向。而实施这一处理(包括前面所有的位功能),只需用一条位操作指令即可。

3、AT89C51系列的另一个优点是乘法和除法指令,这给编程也带来了便利。八位除以八位的除法指令,商为八位,精度嫌不够,用得不多。而八位乘八位的乘法指令,其积为十六位,精度还是能满足要求的,用的较多。作乘法时,只需一条指令就行了,即MULAB(两个乘数分别在累加器A和寄存器B中。积的低位字节在累加器A中,高位字节在寄存器B中)。很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便

4、AT89C51系列中,还有一条二进制-十进制调整指令DA,能将二进制变为BCD码,这对于十进制的计量十分方便。而在其他的单片机中,则也需调用专用的子程序才行。

5、AT89C51系列I/O口特点:

AT89C51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;而为高电平时,输出电流仅数十μA甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。其原因是高电平时該脚也同时作输入脚使用,而输入脚必须具有高的输入阻抗,因而上拉的电流必须很小才行。作输出脚使用,欲进行高电平驱动时,得利用外电路来实现,如上拉电阻,I/O脚不通,电流经R驱动LED发光;低电平时,I/O脚导通,电流由该脚入地,LED灭(I/O脚导通时对地的电压降小于1V,LED的域值1.5~1.8V)。

1、PIC单片机系列是美国微芯公司(Microchip)的产品。CPU采用RISC 结构,分别有33、35、58条指令(视单片机的级别而定),属精简指令集。而51系列有111条指令,AVR单片机有118条指令,都比前者复杂。采用Harvard 双总线结构,运行速度快(指令周期约160~200ns),它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外),这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。

2、PIC系列单片机共分三个级别,即基本级、中级、高级。其中又以中级的PIC16F873(A)、PIC16F877 (A) 用的最多。

3、PIC系列单片机的I/O口是双向的,其输出电路为CMOS互补推挽输出电路。I/O脚增加了用于设置输入或输出状态的方向寄存器(TRISn , 其中n对应各口,如A、B、C、D、E等),从而解决了51系列I/O脚为高电平时同为输入和输出的状态。当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸入电流达25mA,高电平输出电流可达20mA。相对于51系列而言,这是一个很大的优点,它可以直接驱动数码管显示且外电路简单。它的A/D为10位,能满足精度要求。具有在线调试及编程(ISP)功能。

4、数据的传送和逻辑运算基本上都得通过工作寄存器W(相当于51系列的累加器A)来进行,而51系列的还可以通过寄存器相互之间直接传送(如:MOV 30H,20H;将寄存器20H的内容直接传送至寄存器30H中),因而PIC 单片机的瓶颈现象比51系列还要严重,但价钱便宜、功耗低(但要频率够低);程序代码空间很节省,对c语言支持不好;最实用的资源是a/d转换器(而且比单独的a/d便宜);位性能较好(延迟上电复位、上电复位、掉电复位);看门狗也不错,而且抗干扰性好,在许多应用中不用外加辅助电路;特别适用于低成本应用

1、AVR单片机是Atmel公司推出的较为新颖的单片机,其显著的特点为高性能、高速度、低功耗。它取消机器周期,以时钟周期为指令周期,实行流水作业。AVR单片机指令以字为单位,且大部分指令都为单周期指令。而单周期既可执行本指令功能,同时完成下一条指令的读取。通常时钟频率用4~8MHz,故最短指令执行时间为250~125ns。该系列的型号较多,但可用下面三种为代表:AT90S2313(简装型)、AT90S8515、AT90S8535(带A/D转换)。

2、通用寄存器一共32个(R0~R31),前16个寄存器(R0~R15)都不能直接与立即数打交道,因而通用性有所下降。而在51系列中,它所有的通用寄存器(地址00~7FH)均可以直接与立即数打交道,显然要优于前者。

3、AVR系列没有类似累加器A的结构,它主要是通过R16~R31寄存器来实现A的功能。在AVR中,没有像51系列的数据指针DPTR,而是由X(由R26、R27组成)、Y(由R28、R29组成)、Z(由R30、R31组成)三个16位的寄存器来完成数据指针的功能(相当于有三组DPTR),而且还能作后增量或先减量等的运行,如:例5:LDRd, X ;将X所指的地址的内容装入寄存器Rd中。LDRd,Y+;将Y所指的地址的内容装入寄存器Rd中,然后Y的地址增1。LDRd,-X ;将X的地址减1所指的地址的内容装入寄存器Rd中。

4、在51系列中,所有的逻辑运算都必须在A中进行;而AVR却可以在任两个寄存器之间进行。

5、AVR的专用寄存器集中在00~3F地址区间,无需像PIC那样得先进行选存储体的过程,使用起来比PIC方便。AVR的片内RAM的地址区间为0060~$00DF(AT90S2313) 和0060~025F(AT90S8515、AT90S8535),它们占用的是数据空间的地址,这些片内RAM仅仅是用来存储数据的,通常不具备通用寄存器的功能。当程序复杂时,通用寄存器R0~R31就显得不够用;而51系列的通用寄存器多达128个(为AVR的4倍),编程时就不会有这种感觉。

6、AVR的I/O脚类似PIC,它也有用来控制输入或输出的方向寄存器,在输出状态下,高电平输出的电流在10mA左右,低电平吸入电流20mA。虽不如PIC,但比51系列强。

7、以上的三种AVR型号其管脚与对应的51系列兼容,如AT90S2313与51系列的AT89C2051的管脚兼容(PDIP-20脚),AT90S8515、AT90S8535与51系列的AT89C51兼容(PDIP-40脚)等等。

1.7单片机类型

STC单片机:

STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码

完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID 号,加密性好,抗干扰强.

PIC单片机:

是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片.

EMC单片机:

是台湾义隆公司的产品,有很大一部分与PIC 8位单片机兼容,且相兼容产品的资源相对比PIC的多,价格便宜,有很多系列可选,但抗干扰较差.

ATMEL单片机(51单片机):

ATMEl公司的8位单片机有AT89、AT90两个系列,AT89系列是8位Flash 单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC 结构、全静态工作方式、内载在线可编程Flash的单片机,也叫AVR单片机.

PHLIPIS 51PLC系列单片机(51单片机):

PHILIPS公司的单片机是基于80C51内核的单片机,嵌入了掉电检测、模拟以及片内RC振荡器等功能,这使51LPC在高集成度、低成本、低功耗的应用设计中可以满足多方面的性能要求.

HOLTEK单片机:

台湾盛扬半导体的单片机,价格便宜,种类较多,但抗干扰较差,适用于消费类产品.

TI公司单片机(51单片机):

德州仪器提供了TMS370和MSP430两大系列通用单片机.TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式,适用于复杂的实时控制场合;MSP430系列单片机是一种超低功耗、功能集成度较高的16位低功耗单片机,特别适用于要求功耗低的场合

松翰单片机(SONIX):

是台湾松翰公司的单片,大多为8位机,有一部分与PIC 8位单片机兼容,价格便宜,系统时钟分频可选项较多,有PMW ADC 内振内部杂讯滤波。缺点RAM空间过小,抗干扰较好。

1.8、中国主要应用51单片机的总类

自从单片机诞生至今,已经发展到70多个系列近500个机种。目前国内外比较有名,而且影响较大的公司和它们的产品如下:

Intel公司的MCS-48,MCS-51,MCS-96系列产品;

Motorla公司的6801、6802、6803、6805、68HCC11系列产品;

Zilog公司的Z8、super-8系列产品;

仙童公司和Mostek公司的F8、3870系列产品;

NEC公司的μCOM-87系列产品;

Rockwell工地的6500、6501系列产品。

由于它们各具特色,因而在国际市场上都有一定的地位。据国外资料,Intel 公司的单片机在市场上占有量约为67%,其中MCS-51系列产品又占54%。在我国所应用的单片机中仍然以MCS-48 ,MCS-51,MCS-96为主要系列。如下图1-1

图1-1 AT89C51

2、Proteus软件

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

2.1、功能介绍

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:

(1)原理布图

(2)PCB自动或人工布线

(3)SPICE电路仿真

2.2、独有特点

(1)互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

(2)仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

2.3功能模块

(1)智能原理图设计(ISIS)

丰富的器件库:超过27000种元器件,可方便地创建新元件;

智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;

智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时

间;

支持总线结构:使用总线器件和总线布线使电路设计简明清晰;

可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。

(2)完善的电路仿真功能(Prospice)

ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;

超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;

多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav 文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入;

丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;

生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动;

高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。

(3)独特的单片机协同仿真功能(VSM)

支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;

支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED 七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信

实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;

编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、

AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。

(4)实用的PCB设计平台

原理图到PCB的快速通道:原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;

先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理;

完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览;

多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。

2.5、丰富资源

(1)Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。

(2)Proteus可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。

(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。

(4)Proteus可提供的调试手段Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。

仿真功能

在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。

3、Keil

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

Keil C51开发系统基本知识Keil C51开发系统基本知识

3.1、系统概述

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

3.2、Keil C51单片机软件开发系统的整体结构

C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

使用独立的Keil仿真器时,注意事项

* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

* 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

* 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

4、本组设计

我们这个小组的设计为单片机机控制开光的LED灯

4.1、以下是本人利用protuse软件的绘图过程

步骤一、在确认计算机已安装了protuse软件后,用鼠标点击桌面上的→“protuse软件”图标,即可进入protuse软件。启动protuse软件以后会出现以下窗口界面,如图4-1所示。

4-1 窗口

步骤二、然后打开搜索软件对话框,如图4-2

图4-2 搜索软件的对话框

步骤三、在对话框中选择AT89C51单片机元件,如图4-3

步骤四、选择所画图所用到的元件,如下图4-4

图4-4 选好的元件

步骤五、选好元件后,我们该将选好的元件放入界面上。如图4-5

图4-5放置AT89C51

步骤六、放置外围时钟电路(晶振12MHz),如下图4-6

图4-6外围时钟电路

用单片机控制的LED流水灯设计(电路、程序全部给出)

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATM EL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz 工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要

基于单片机的声光控制灯

基于单片机的声光控制模拟路灯 (程序部分) 前言:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。本次我们采用at89c51单片机设计一种基于单片机控制的声光控制模拟路灯。该灯有声控,光控,声光同时控制楼道灯三种模式,经过调查,现在绝大多数小区的楼道灯都是纯电路形式实现声光控制的,这较之智能控制缺乏功能多样性,稳定性,而未来肯定是智能化的天下,所以我们用单片机模拟这一个多功能灯的系统。 关键字:单片机,at89c51,智能社区,楼道灯 目录: 一、设计目的 (2) 二、总体设计 (2) 方案选择: (2) 三、硬件设计 (3) 原理说明: (3) 四、软件设计 (3) 主要程序清单: (3) 程序框图: (5) 五、实验结果 (6) 六、总结 (6)

通过此次设计,主要是为了巩固我们的单片机相关知识及对单片机的相关应用,培养电子系统设计与实践的能力,学会设计使用简易的声、光传感器,并能用这些传感器设计一个声光控制的路灯(楼道灯)。 完成功能: 1)、声控灯模式。当传感器接收到声音信号时,单片机控制灯亮,并在5秒后灯自动熄灭。 2)、光控等模式。当光电传感器接收到为暗光时,灯自动点亮,接收到为亮光时,等自动熄灭。 3)、楼道灯模式。声光控制结合,即模拟当天暗并且楼道里有人走过的时候灯自动点亮5秒后熄灭。 二、总体设计 此次设计的声光控制灯包括三个基本模块,即声音处理模块、光处理模块、单片机小系统。总体设计框图如下: 图1、总体设计框图 方案选择: 1)、单片机部分。由于此次设计对单片机的要求较低,所以我们选择最为常用的at89c51单片机作控制部分。 2)、声控部分 一:选择专用的声音传感器模块来完成,能得到正确的波形、电压、频率等参数,且设计电路简单省事,但成本较高。 二:用驻极体话筒通过相应的信号处理电路对声音信号进行处理,成本较低,但电路设计麻烦。 综上所述:我们选择方案二,因为此次设计对声音信号的波形等参数要求较小,只要单片机接收到并能判断为高电平即可。 3)、光控部分 一:用光敏二极管作光电元件,光敏二极管对光转换为相应的电流。 二:用光敏电阻作光电元件,光敏电阻对光转换为相应的电阻。 综上所述:我们选用光敏电阻作光控部分的核心元件,因为光敏二极管转换成的是电流,而我们需要判断的是电压信号,将电流转换为电压信号的电路较复杂。

基于单片机控制LED灯亮度调节 邓宇锋

基于单片机控制LED灯智能亮度调节 系部:机电工程系 学生姓名:邓宇锋 专业班级:电气 11C3 班 学号: 6 指导教师:茅阳 2014年3月10日

声明 本人所呈交的基于单片机控制LED灯亮度调节,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 2014年3月10日

摘要 本文介绍LED灯智能亮度调节驱动电路设计,智能照明控制系统在确保灯具能够正常工作的条件下,给灯具输出一个最佳的照明功率,既可减少由于过压所造成的照明眩光,使灯光所发出的光线更加柔和,照明分布更加均匀,又可大幅度节省电能,智能照明控制系统节电率可达20%-40%。智能照明控制系统它可在照明及混合电路中使用,适应性强,能在各种恶劣的电网环境和复杂的负载情况下连续稳定地工作,同时还将有效地延长灯具寿命和减少维护成本。 【关键词】:智能控制;LED;智能光补

目录 引言 (1) 一、智能的概述 (2) (一)智能的定义 (2) (二)智能的分类 (2) 二、LED发光二极管的认识 (2) (一)LED的构造 (2) (二) LED的发光原理 (3) (三)LED的优势 (3) 三、LED亮度控制系统 (3) (一)脉冲宽度调制 (3) (二)调制LED的驱动电流 (3) (三)线性调光法 (3) 四、单片机及程序设计 (3) (一)概述 (4) (二)单片机STC89C51芯片简介 (4) (三)程序 (7) 此套控制分主程序与子程序,截取主程序代码在附件中。 (7) 五、控制系统电路设计 (7) (一)LED驱动电路 (7) (二)光电传感器的选择 (8) (三)电气原理图 (9) 六、实物调试 (9) 总结 (1) 参考文献 (2) 谢辞 (3) 附件 (4)

51单片机控制LED灯程序设计

51单片机:LED灯亮灯灭程序设计 1.功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。 程序: 01: MOV A , #11111110B ; 存入欲显示灯的位置数据 02: MOV P1,A ; 点亮第一只灯 03: JMP $ ; 保持当前的输出状态 04: END ; 程序结束 2.功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。 程序:

01:START: MOV A , #00010010B ; 存入欲显示灯的位置数据 02:MOV P1,A ; 点亮灯 03:JMP START ; 重新设定显示值 04:END ; 程序结束 3.功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。 程序: 01:START: MOV R0, #8 ;设左移8次 02:MOV A, #11111110B ;存入开始点亮灯位置

03:LOOP: MOV P1, A ;传送到P1并输出 04:RL A ;左移一位 05:DJNZ R0, LOOP ;判断移动次数 06:JMP START ;重新设定显示值 07:END ;程序结束 4.功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。 程序: 01:START: MOV R0, #8 ;设右移8次

02:MOV A, #01111111B ;存入开始点亮灯位置03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序05: RR A ;右移一位 06: DJNZ R0, LOOP ;判断移动次数07: JMP START ;重新设定显示值08: DELAY: MOV R5,#50 ; 09:DLY1: MOV R6,#100 ; 10: DLY2: MOV R7,#100 ;

单片机C语言LED灯点亮程序完全版

单片机C语言L E D灯点亮 程序完全版 Prepared on 24 November 2020

1例子1第二个灯亮 #include<> voidmain() { P1=0xfd; } #include<> SbitD1=P1^0; Voidmain() { D1=0 } 注意:稍微改程序时需重新hex化 例子2第一个灯亮 #include<>include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 voidmain() //主函数 { unsignedinti;//定义一个int型变量 while(1) { i=50000;//变量赋初值为50000 led1=0; //点亮灯 while(i--);//延时 i=50000; led1=1;//熄灭灯 while(i--); } } 3例子1357灯同时亮

#include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 sbitled3=P1^2;//单片机管脚位声明 sbitled5=P1^4;//单片机管脚位声明 sbitled7=P1^6;//单片机管脚位声明 voidmain() //主函数 { led1=0; //将单片机口清零 led3=0; //将单片机口清零 led5=0; //将单片机口清零 led7=0; //将单片机口清零 while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子21357同时亮 #include<>//52单片机头文件 voidmain() //主函数 { P1=0xaa; while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子3流水灯一个一个接着亮不循环 #include<>//52单片机头文件 voidmain() //主函数 { unsignedinti;//定义一个int型变量

用单片机控制LED亮灭

用单片机控制LED亮灭 1.实验任务如图所示,监视开关K1(接在P3.0端口上),用发光二极管 L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打 开,L1熄灭。2.电路原理图3.系统板上硬件连线(1).把“单片机系统”区 域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上;(2).把“单片机系统”区域中的P3.0端口用导线连接到“四路拨动开关”区域中 的K1端口上;4.程序设计内容(1).开关状态的检测过程单片机对开关状态 的检测相对于单片机来说,是从单片机的P3.0端口输入信号,而输入的信号只 有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断 开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用 JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。(2).输出控制如图3所示,当P1.0端口输出高电平,即P1.0=1时,根据发 光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电 平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 ?5.程序框图 ? ? ?6.汇编源程序ORG 00HSTART: JB P3.0,LIG CLR P1.0 SJMP STARTLIG: SETB P1.0 SJMP START END7.C语言源程序#includesbit K1=P3;sbit L1=P1;void main(void){ while(1) { if(K1==0) { L1=0; //灯 亮} else { L1=1; //灯灭} }}

单片机中断控制LED灯(精)

/* TCNT0定时中断,TCNT1定时输出,LED灯闪烁并逐渐变亮 */ #include #include int main(void { DDRD |= 0xff;//LED灯端口,按位或运算 TCNT0 = 55;//计数器0初值 TIMSK |= (1< 使能 T/C0 溢出中断 sei(;//开全局中断 TCCR0 |= 0B00000010; //64分频 TCCR1A |= 0B10100000;/*OC1A、OC1B端口设为输出,比较匹配时清零,TOP时置位,OC1A__PD5,OC1B__PD4*/ TCCR1A |= 0B00000000;//相位与频率修正PWM模式 TCCR1B |= 0B00010000; TCCR1B |= 0B00000010;//8分频 ICR1H = 0XFF;//TOP值 ICR1L = 0XFF; OCR1AH = 0X00;//输出比较寄存器A OCR1AL = 0X7f; OCR1BH = 0X00;//输出比较寄存器B OCR1BL = 0X7f; TCNT1H = 0X00;//计数器1初值

while(1; } /*中断服务程序,LED灯逐渐变亮*/ volatile unsigned int cnt = 0; SIGNAL(SIG_OVERFLOW0 { TCNT0 = 55; cnt ++; if(cnt == 10000//延时约1秒=1/(16000000/8*200*10000 { OCR1AH = 0X00;//输出比较寄存器A OCR1AL = 0XFF; OCR1BH = 0X00;//输出比较寄存器B OCR1BL = 0XFF; } if(cnt == 20000//延时约1秒 { OCR1AH = 0X08; OCR1AL = 0XFF; OCR1BH = 0X08; OCR1BL = 0XFF; } if(cnt == 30000//延时约1秒 {

用单片机控制的LED流水灯

用单片机控制的LED流水灯 设计报告 专业:电子信息工程(自动化方向) 班级:09级 姓名:

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用A T89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。A T89C51单片机是美国A TMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz 工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 其具体硬件组成如图1所示。 图1 流水灯硬件原理图

从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED 灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 3.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下: ORG 0000H ;单片机上电后从0000H地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为60H CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭 CLR P1.1 ;P1.1输出低电平,使LED2点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED2熄灭 CLR P1.2 ;P1.2输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序

单片机控制LED灯闪烁原理

一、电路图 二、原理 对于较长时间的定时,应采用复合定时的方法。这里使T/C0工作在定时器方式1,定时100ms,定时时间到后P1.0反相,即P1.0端输出周期200ms的方波脉冲。另设T/C1共作的计数器方式2,对T1输出的脉冲计数,当计数满5次时,定时1时间到,将P1.7端反相,改变灯的状态! 三、源程序 #include /*头文件的定义*/ sbit P1_0=P1^0; /* 定义p1.0端口*/ sbit P1_7=P1^7; timer0() interrupt 1 using 1 { /* 定时器0的中断服务程序*/ P1_0=!P1_0; /* P1.0取反*/ TH0=(65536-50000)/256; /* 赋高八位初值*/ TL0=(65536-50000)%256; /* 赋低八位初值*/ } timer1() interrupt 3 using 2 { /*定时器1中断服务程序*/ P1_7=!P1_7; /*p1.7取反*/ } main() { /*主函数*/ P1_7=0; /* 置灯初始灭*/ P1_0=1; /* 保证第一次反相便开始计数*/ TMOD=0x61; /* 定时器定时和计数*/ TH0=(65536-50000)/256; /* 赋初值*/ TL0=(65536-50000)%256; /* */ TH1=256-5; TL1=256-5; IP=0x08; /* 设置寄存器优先级*/ EA=1; /* CPU开中断*/ ET0=1; /* 开T/C0中断*/ ET1=1; /* 开T/C1中断*/ TR0=1; /* 启动T/C0 */ TR1=1; /* 启动T/C1 */ for(;;)/* */ { } } 四、Keil调试程序过程与结果: 1.新建一个项目

单片机实现发光二极管的循环点亮控制讲解

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华

学生:钟静茹 学号:09210202 机电工程学院 2010年6月 单片机最小应用系统设计报告 目录 一、设计题目 (3) 二、设计内容与要求 (3) 三、设计目的意义 (3) 四、系统硬件电路图 (4) 五、程序流程图与源程序 (6) 5.1流程图 (6) 5.2源程序 (7) 5.2.1程序设计思想 (7) 5.2.2源程序清单 (7) 六、系统功能分析与说明 (9) 6.1系统主要组成部分 (9) 6.2指示灯显示部分 (10) 6.3 电路板的制作 (10) 6.3.1 PCB图的制作 (11) 6.3.2 电路板的腐蚀、钻孔和元器件的焊接 (13)

七、设计体会 (11) 八、参考文献 (12) 一、设计题目 用8031单片机实现发光二极管的循环点亮控制。采用3个按键分别控制发光二极管的启动、停止及每个灯点亮的时间的更换,定时时间有软件控制。 二、设计内容与要求 用8031单片机控制8个发光二极管循环点亮。要求用按键控制点亮时间(如每个灯点亮0.5秒或者1秒等,各灯点亮时间相同)。按启动键开始循环点亮;按停止键后停止。 三、设计目的意义 1、掌握单片机系统中扩展简单I/O接口的方法。 2、掌握单片机的硬件接口电路、8031单片机的内部结构及其编程方法。 3、掌握单片机的最小系统的设计。 4、掌握电路板的设计与制作。。 5、了解程序编写与调试的方法和技巧。 6、综合掌握所学的单片机指令系统和硬件接口电路知识,进行简单的最小系统开

发。 四、系统硬件电路图 系统硬件图(图1)包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、外电路接通显示部分、及电源显示部分。 设计硬件电路图时,其基本思想:先通过万能板搭建试验平台,将编好的程序下载到51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。

利用单片机PWM控制LED

/*******************************************************************/ // PWM 控制LED 灯渐亮渐灭程序 // 晶振为11.0592M // 利用定时器控制产生占空比可变的PWM 波 // 按K1,PWM值增加,则占空比减小,LED 灯渐暗。 // 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警。 /*********************************************************/ #include < reg51.h > //#include < intrins.h > #define uchar unsigned char uchar PWM sbit K1 =P1^0 ; sbit BEEP =P1^5 ; void Beep(); void delayms(uchar ms); void delay(uchar t); /*********************************************************/ void main() { P1=0xff; TMOD=0x21 ; TH0=0xfc ; //1ms延时常数 TL0=0x66 ; //频率调节 EA=1; ET0=1; ET1=1; TR0=1 ; while(1) { do{ if(PWM!=255) { PWM++ ;delayms(10); } else Beep() ; } while(K1==0); }

/*********************************************************/ // 定时器0中断服务程序. /*********************************************************/ void timer0() interrupt 1 { TR1=0 ; TH0=0xfc ; TL0=0x66 ; TH1=PWM ; TR1=1 ; P3=0x00 ; //启动输出 } /*********************************************************/ // 定时器1中断服务程序 /*********************************************************/ void timer1() interrupt 3 { TR1=0 ; P3=0xff ; //结束输出 } /*********************************************************/ //蜂鸣器子程序 /*********************************************************/ void Beep() { uchar i ; for (i=0 ;i<100 ;i++) { delay(100) ; BEEP=!BEEP ; //Beep取反 } BEEP=1 ; //关闭蜂鸣器 delayms(100); } /*********************************************************/ // 延时子程序 /*********************************************************/ void delay(uchar t)

89C51单片机练习示例:LED灯点亮与熄灭操作

89C51单片机练习示例:LED灯点亮与熄灭操作 基本要求: 1、八个LED灯循环点亮,间隔1秒,最后全亮; 2、八个LED灯依次熄灭,间隔1秒,最后全灭; 3、八个LED灯同时点亮,保持1秒; 4、八个LED灯同时熄灭,保持0.5秒; 再将第三、四步重复4遍,最后整个程序重复N遍。 ORG 0000H MAIN:MOV R5,#03H; ACALL PRO1;依次点亮,最后全亮 ACALL PRO2;先灯亮,依次灭灯,后全灭 ACALL PRO3;八个灯同时亮,保持1秒;八个灯同时灭,保持1秒 ACALL PRO4;重复第三步操作,使灯点亮、熄灭4次 LJMP MAIN; PRO1: MOV A,#01H;从0号灯开始点亮 MOV R4,#08;亮灯个数记录 DIANLIANG:MOV R0,A; MOV P0,A;点灯子程序 RL A; ORL A,R0; ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 DJNZ R4,DIANLIANG;全亮 ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 RET PRO2: MOV A,#0FFH;先亮灯 CLR CY;清零CY值 MOV R4,#09H;灭灯个数记录 XIMIE:MOV R0,A; MOV P0,A;

RLC A; ANL A,R0; ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序DJNZ R4,XIMIE;全灭 ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序RET PRO3:MOV A,#0FFH; 先点亮,后熄灭MOV P0,A; ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ANL A,#00H; MOV P0,A; ACALL DELAY;调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序RET PRO4:ACALL PRO3;重复点亮,熄灭四次DJNZ R5,PRO4; RET DELAY:MOV R2,#0FFH;延时子程序 DEL1:MOV R3,#0FFH; DEL2: NOP; NOP; DJNZ R3,DEL2; DJNZ R2,DEL1; RET END

单片机课程设计 8个LED灯来回点亮

目录 第一章绪论--------------------------------------------------------3 第二章设计目的及要求-----------------------------------------5 1.1 设计目的--------------------------------------------------------5 1.2 设计要求--------------------------------------------------------5 第三章设计电路原理----------- -------------------------------7 3.1 控制部分的设计与选择-------------------------------------7 3.2 LED显示方案-----------------------------------------------8 第四章硬件系统------------------------------------------------9 4.1 原件清单-------------------------------------------------------9 4.2 单片机AT89C51---------------------------------------------9 4.3 单片机时钟电路--------------------------------------------10

4.4 单片机复位电路---------------------------------------------11 4.5 工作电路------------------------------------------------------12 第五章软件设计------------------------------------------------13 5.1 程序流程图--------------------------------------------------13 5.2 编辑源程序--------------------------------------------------14 第六章系统调试与仿真结果--------------------------------16 6.1系统调试-----------------------------------------------------16 6.2仿真结果----------------------------------------------------16 总结------------------------------------------------------------- 19 参考文献--------------------------------------------------------20 第一章绪论

单片机开关控制LED

单片机开关控制LED 专业班级: 学生姓名: 指导教师: 完成日期: 电气与信息工程系课程设计任务书

教研室主任(签名)系(部)主任(签名)年月日 新疆工业高等专科学校电气与信息工程系 课程设计评定意见

设计题目:单片机开关控制LED 学生姓名:徐涛专业工业网络技术班级工网09-2班评定意见: 评定成绩: 指导教师(签名):年月日评定意见参考提纲: 1.学生完成的工作量与内容是否符合任务书的要求。 2.学生的勤勉态度。 3.设计或说明书的优缺点,包括:学生对理论知识的掌握程度、实践工作能力、表现出的创造性和综合应用能力等。

摘要 1)摘要正文 本设计基于Protuse自动设计能力、高速有效的编辑功能、简捷方便的设计过程管理PDM,并且可以完整地实现单片机的仿真,从单片机概念设计到生成物理生产数据的全过程,以及这中间的所有分析、仿真和验证功能详细阐述了电路原理图的绘制、实现功能。本设计还基于keil软件的使用编写程序,生成可被protuse软件识别的.hex文件,实现自己设计想要的功能。以及在自学过程和制作过程中所遇到的种种问题。并且给了相应的解决方法。 2)关键词: Protuse软件; keil软件;仿真;程序;

目录 1、单片机 (1) 1.1、单片机介绍 (1) 1.2、单片机分类 (1) 1.3、单片机应用: (1) 1.4、AT8951系列优点: (3) 1.5、PIC系列 (4) 1.6、AVR系列 (5) 1.7单片机类型 (5) 1.8、中国主要应用51单片机的总类 (7) 2、Proteus软件 (8) 2.1、功能介绍 (8) 2.2、独有特点 (8) 2.3功能模块 (8) 2.5、丰富资源 (10) 3、Keil (11) 3.1、系统概述 (11) 3.2、Keil C51单片机软件开发系统的整体结构 (12) 4、本组设计 (13) 4.1、以下是本人利用protuse软件的绘图过程 (13) 4.2、下面是我利用keil软件编写的程序 (17) 4.3、仿真 (21) 总结 (24) 致谢 (25) 参考文献 (26)

LED灯的单片机控制

开发研究 LED灯的单片机控制 谭志鹏,王伟 (沈阳工学院,辽宁沈阳113122) 摘要:本文探讨单片机控制LED灯方式,并采用单片机的外部中断方式进行编程控制。 关键词:外部中断;单片机控制 1单片机控制器 单片机是一种集成电路芯片,是一个微型计算机系统。由中央处理器、存储器、I/O口、定时器、寄存器等部分组成。单片机由于质量轻、体积小、价格低廉,广泛应用于各个领域。2外部中断程序的编制 程序的编制采用单片机外部中断控制模式。单片机外部中断过程:先采样,再查询,后响应。采样是第一步,若在2个连续周期采样电平先高后低则中断请求有效,IEO/IE1置“1”,否则继续为“0”。查询就是由CPU检测中断请求的发生,确定是哪一个中断请求。响应就是对中断请求的接受,在查询之后进行,当查询确定后就进行1次中断响应。 8个LED小灯闪烁,按下按钮,则LED小灯变成顺序依次闪烁,依次闪烁3次后变为原来的同时闪烁。 2.1程序如下 #include #define LED Pl void delaylms(int); void left(int); mainO {IE=0x81; IT0=l; LED=0x00; while(l) {delaylms(250); LED—LED;}} void my_intO(void)interrupt0 {unsigned saveLED=LED; left⑶; LED=saveLED;} 通讯作者:王伟(1957-),男,汉族,山东菜州市人。沈阳工学院教师,工学硕士,副教授,研究方向:机电一体化技术,机床电气与PLC技术. void delaylms(int x) lint i,j; for(i=0;i

单片机控制LED调光系统的实现开题报告

杭州电子科技大学信息工程学院毕业设计(论文)开题报告 题目单片机控制LED调光系统的实现 系电子通信 专业电子信息工程 姓名 班级 学号 指导教师

一、综述本课题国内外研究动态,说明选题的依据和意义 1.国内外研究动态 随着经济的发展,LED照明产业的美好发展前景使人们对LED照明市场充满信心,受21世纪能源短缺的情况下国家政府大力支持以提倡节能环保政策下,众多企业不断的加大在LED照明市场的投入与支持。随着LED照明灯具的迅速发展,由最先应用于户外照明如道路照明、景观照明等得到广泛的应用,至今LED照明灯具的发展应用有节奏地推广趋向室内照明即普通家用照明、商业照明等这么巨大潜力的照明应用领域。 LED照明市场中的渗透率预计在2015年将达到16.8%。报告中亦提到在政府政策的刺激之下,家用照明与路灯在LED应用中的渗透率将大幅提升,例如中国大陆的十 日光灯管在日本市场也逐年成长,主要的原因是来自于2011年三月份的大地震之后,日本政府的补助政策与节能意识的抬头。与此同时,许多新的LED供应商加入战局,并且很快的开始生产。 全球照明行业市场发展迅速主要得益于:1)民用照明市场:节能灯具替代传统白炽灯具的步伐进一步加快,除美国、欧洲等发达国家以外,中国、俄罗斯、巴西等新兴国家和经济体也加入了节能灯具普及的潮流。由于节能灯具价格相对较高,使全球照明市场规模进一步扩大;2)商用照明市场:半导体LED 灯具在商用照明领域的发展呈现快速增长态势。目前LED 灯具的价格较普通灯具高出数倍,使全球照明市场规模进一步扩大。 2.选题依据和意义 通过一种LED的照明驱动装置,能够方便的控制LED的光强。随着二极管技术的发展,LED由于其长寿命,低功耗及色彩可控方面的优势,使其在景观照明、牌匾照明以及大屏幕显示器等方面显示出越来越广泛的发展前景和发展潜力。 作为一种新的、最有潜力的光源,LED照明以其节能、环保的优势越来越受到人们重视。加上国家和地方政府的政策鼓励,我国的LED照明产业进入了加速发展阶段,运用市场迅速增长。近年来,随着能源短缺现象越来越严重,节能成为全世界共同关注的话题。绿色节能照明的研究也越来越受到重视。 LED近年来在各行业应用得到快速发展。目前,LED应用主要集中在两个方面:一个是低亮度应用场合,包括手机、PDA等小型电子产品的背光照明,电子仪表的照明等。另一种是需要高亮度的应用场合,主要采用高功率大晶粒LED光点集中,可以得到较高的亮度,利于光学设计。

实验2单片机控制LED灯点亮

实验2 单片机控制LED灯点亮 一、实验目的 1、熟悉实验板的电路结构。 2、完成简单的功能,并掌握程序调试的方法。 二、实验准备 1.实验电路连接 实验板LED电路图 2.实验中常见问题: ●区别中英文字符,区别字母O和数字0 ●注意关键字的拼写 include、void、main ●SFR寄存器需要大写 三、实验内容

一、基础实验 (一)、点亮1个LED 分别用汇编和C语言编程,对比2种语言的相同和不同 1.用汇编语言编写 ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR CLR ;可随意指定一个输出口作为驱动,点亮LED灯 END 2.用C语言编写 #include <> //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 sbit P1_0=P1^0;// 用sbit 关键字定义LED到端口, //LED是自己任意定义且容易记忆的符号 /*---------------主函数-------------------*/ void main (void) { P1_0=0; //将口赋值0,对外输出低电平 } (二)、1个LED闪烁 分别用汇编和C语言编程,对比2种语言的相同和不同 问题:若想改变闪烁的频率,应该修改程序的哪部分? 1.用汇编语言编写 ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR ;点亮LED灯 CLR LCALL DELAY SETB ;熄灭LED灯

SETB LCALL DELAY LJMP MAIN DELAY: M OV R6,#125 ;延时50ms子程序 LOOP2: MOV R7,#200 LOOP1: DJNZ R7,LOOP1 DJNZ R6,LOOP2 RET END 2.用C语言编写 #include "" sbit P1_0=P1^0; //延时50ms子程序 void delay50ms() { unsigned char i,j; for (i=125;i>0;i--) { for(j=200;j>0;j--) {} } } //主程序段 void main() { while(1) //重复循环执行,实现闪烁 { P1_0=0; delay50ms(); P1_0=1; delay50ms(); } } 思考: 对比2中语言编写的延时子程序的相同和不同

基于51单片机控制的LED点阵显示屏(c 语言)

基于51单片机控制的LED点阵显示屏(c 语言) 本点阵屏由单片机控制4块8x8点阵,显示一个16x16点阵的汉字,如下图所示。 一个汉字循环显示的50次。这里采用的芯片有74LS254(增大单片机P0、P2的驱动能力)、行扫描由P1.0~P1.3经74LS154译码后产生标号为ROW0~ROW15的16控制行线。列数据由P0、P2分别提供高8位和低8位。这里的P0口做普通的I\O口用。 程序:

#include #define uint unsigned int #define uchar unsigned char uchar code table[]={ 0x08,0x80,0x08,0x44,0x0F,0xFE,0x10,0x00,0x10,0x08,0x37,0xFC,0x50,0x00, 0x90,0x08,0x17,0xFC,0x10,0x00,0x13,0xF8,0x12,0x08, 0x12,0x08,0x12,0x08,0x13,0xF8,0x12,0x08, /*信*/ 0x02, 0x00, 0x04, 0x10, 0x1F, 0xF8, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x1F, 0xF0, 0x10, 0x10, 0x10, 0x10, 0x1F, 0xF0, 0x02, 0x00, 0x51, 0x84, 0x50, 0x92, 0x90, 0x12, 0xF, 0xF0 /*息*/ }; uint a,b,c,i,j,d; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void xianshi() { for(j=0;j<50;j++) { a=0; b=0; c=d; for(i=0;i<16;i++) { a=b; //a=0; P1=a; b++; a=c; P0=table[a]; c++; a=c; P2=table[a]; c++; delay(1); P0=0; P2=0; } } } void main()

相关主题
文本预览
相关文档 最新文档