基于51单片机霓虹灯

合集下载

基于单片机的霓虹灯控制系统设想

基于单片机的霓虹灯控制系统设想
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线0生高不产中仅工资22艺料22高试可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料22荷试,下卷而高总且中体可资配保料置障试时23卷,23调需各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看2工且55作尽22下可2都能护1可地关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编5试求写、卷技重电保术要气护交设设装底备备4置。高调、动管中试电作线资高气,敷料中课并3设试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

毕业设计(论文)基于单片机的智能霓虹灯控制系统设计

毕业设计(论文)基于单片机的智能霓虹灯控制系统设计

基于单片机的智能霓虹灯控制系统设计目录摘要 (i)Abstract (ii)引言 (7)1绪论 (8)1.1单片机发展概述 (8)1.2总体方案设计 (10)1.3硬件电路的设计 (11)1.3.1 单片机系统 (11)1.3.2 LED概述 (12)1.3.3 外部时钟方式电路 (13)1.3.4 手动复位电路 (14)1.4 MSC-51芯片简介 (15)1.5 74LS373简介 (20)1.6 PROTEL DXP 简介 (21)2系统功能简介 (22)3系统流程图 (23)4硬件设计原理 (24)4.1最小系统模块 (24)4.1.1电源模块 (25)4.1.2串口模块 (26)4.1.3单片机模块 (26)4.1.4时钟电路模块 (27)4.1.5复位电路模块 (28)4.2驱动模块 (28)4.3 LED显示模块 (30)4.4激光传感器模块 (30)5软件部分 (30)5.1核心算法设计流程图 (31)5.2系统程序 (32)6系统调试 (35)6.1软件调试 (35)6.2硬件调试 (36)6.3测试结果 (36)6.4结果分析 (36)7总结 (37)7.1整个系统的设计思路 (37)7.2商业开发价值 (37)参考文献 (38)致谢 (39)ContentsAbstract (ii)Preface (7)1 Introduction (8)1.1 SCM development outline (8)1.2 The general scheme design (10)1.3 Hardware circuit design (11)1.3.1 Single-chip microcomputer system (11)1.3.2 LED overview (12)1.3.3 External clock mode circuits (13)1.3.4 Manual reset circuit (14)1.4 MSC - 51 chip profile (15)1.5 74LS373 profile (20)1.6 PROTEL DXP profile (21)2 Systemic function (22)3 System chart (23)4 Design principle (24)4.1Smallest system module (24)4.1.1Power module (25)4.1.2 Serial interface module (26)4.1.3 Microcontroller module (26)4.1.4 Clock circuit module (27)4.1.5 Reset circuit module (28)4.2 Driver module (28)4.3 Video module of led (30)4.4 Laser sensor module (30)5 The design of system software (30)5.1 Core algorithm design flow chart (31)5.2 System program (32)6 Conclusion (35)6.1 Software debugging (35)6.2 Hardware debugging (35)6.3 Test result (36)6.4 Results (36)7 Summarize (37)7.1 The whole system design ideas (37)7.2 Commercial development value (37)Reference (38)Acknowledgement (39)智能霓虹灯控制系统设计作者:指导教师:【摘要】近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。

基于51单片机的霓虹灯

基于51单片机的霓虹灯

实训报告基于单片机的霓虹灯设计姓名:xxx学号:xxxxxxxxxxxxxxx2012/5/311.模块功能简介1.1 STC89C52单片机及其引脚说明89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。

引脚说明:·V CC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL 逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

在这种模式下,P0口具有内部上拉电阻。

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。

程序校验时需要外接上拉电阻。

·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL 逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(I IL)。

·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(I IL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @ DPTR)时,P2口送出高8位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。

当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。

基于单片机控制的霓虹灯控制器【开题报告】

基于单片机控制的霓虹灯控制器【开题报告】

开题报告通信工程基于单片机控制的霓虹灯控制器一、课题研究意义及现状随着人们生对生活环境的要求越来越高,我们将更容易在各个场合看到彩色霓虹灯。

LED彩灯灯光色彩丰富,造价低廉以及控制简单,用彩灯来装饰接到和城市建筑物已经成为一种时尚。

霓虹灯控制器(LED controller)就是通过芯片处理控制LED灯电路中的各个位置的开关。

霓虹灯控制技术的发展相当迅速,电子变压器以及控制器技术的发展对霓虹灯行业的发展起到了举足轻重的作用,从机械式霓虹灯控制器发展到电子式控制器,从普通跳变式控制器发展到渐变(七彩)式微电脑控制器,未来的霓虹技术将会朝无铅无汞环保型;机械化批量生产,色泽和动感效果更加丰富等方面健康发展。

目前有3种类型的霓虹灯控制器,分别是:低压型LED产品大功率控制器;高压型LED产品控制器;低压型LED产品串行控制器。

常用的控制系统:灵星雨控制系统;德普达控制系统DBT-Q2007;中庆控制系统V5,V6;逐点校正控制系统;异步控制系统。

使用基于单片机的霓虹灯控制器的软件控制,亮灯模式多而且样式多样,用户可操作性强,亮灯效果好,也可以插入不同的音乐和语音信息。

本课题设计的霓虹灯控制器,在制作的过程中包括8051单片机控制器、LED灯管、语音提示及数据显示系统等。

这些部件的结合起来,使8051单片机起到数据处理、控制中心和协调作用。

充分发挥了8051芯片的强大运算和控制功能。

实现了控制LED亮灯方式的功能。

通过本次设计能充分了解所学的专业知识,使理论在实际中得到充分的应用,不但巩固加深了所学的专业知识,更拓宽了知识面,锻炼了独立思考问题以及独立选择项目方案和独立完成项目的能力。

二、课题研究的主要内容和预期目标本课题的主要内容是设计一个的霓虹灯控制器,采用单片机作为主控芯片。

其具体要求为:使该设计能利用单片机硬件电路和软件程序设计实现控制128个霓虹灯(LED灯)形成不同的图案和花样,图案和花样不能小于10种。

基于单片机的LED彩灯控制器

基于单片机的LED彩灯控制器

基于单片机的LED彩灯控制器1 引言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

led 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。

但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。

这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。

此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。

因此有必要对现有的彩灯控制器进行改进。

本文提出了一种基于AT89S51单片机的彩灯控制方案,实现对LED彩灯的控制。

2 设计原理2.1 MCS51引脚说明MCS单片机都采用40引脚的双列直插封装方式。

图1为引脚排列图, 40条引脚说明如下:(1)主电源引脚Vss和Vcc① Vss接地② Vcc正常操作时为+5伏电源(2)外接晶振引脚XTAL1和XTAL2① XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。

当采用外部振荡器时,此引脚接地。

② XTAL2内部振荡电路反相放大器的输出端。

是外接晶体的另一端。

当采用外部振荡器时,此引脚接外部振荡源。

图1 8051引脚排列图(3)控制或与其它电源复用引脚RST/VPD,ALE/PROG,EA和/Vpp① RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。

② ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。

因此,它可用作对外输出的时钟,或用于定时目的。

-基于单片机AT89C51的广场霓虹灯控制设计

-基于单片机AT89C51的广场霓虹灯控制设计

毕业设计(论文)说明书题目基于AT89C51广场霓虹灯控制系统设计日基于单片机AT89C51的广场霓虹灯控制设计摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。

单片机是一种集成在电路芯片,是采用超大规模集成电路技术的计算机系统,具有灵活、强大的控制功能,在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,以便实时监控系统的输入量、控制系统的输出量,实现自动控制。

霓虹灯是城市的美容师,每当夜幕降临时,华灯初上,五颜六色的霓虹灯就把城市装扮得格外美丽。

霓虹灯的亮、美、动特点,是任何电光源所不能替代的,在各类新型光源不断涌现和竞争中独领风骚。

因此如何设计出变换更为多样的霓虹灯这一课题就具有了时代意义。

本设计中的广场霓虹灯是基于89C51单片机设计的,具有显示、红外通信、音乐这三大功能。

针对广场霓虹灯变换的多样性这一特点,设计了五种变换方案,通过编写软件程序来实现。

本设计针对广场霓虹灯的设计具有结构简单、可扩展性强的特点,具备电气可行性和经济可行性。

关键词:霓虹灯;89C51单片机;自动控制Design of square neon lights control based on 89C51AbstractIn recent years, with the rapid development of science and technology, SCM applications are constantly deepening. Single chip is an integrated circuit chip, is a computer system with very large scale integrated circuit technology, has the control function of flexible, powerful, in the MCU application of real-time detection and automatic control system, microcontroller as a core component to use, output to input, and real-time monitoring system, to achieve automatic control.The neon lights are the city's beautician, when night fell, lights, neon lights be riotous w ith colour of dress took exceptionally beautiful city. Neon light of bright, beautiful, dynamic characteristics, is any electric light source is not a substitute for, to play the leading role in a ll kinds of new light source are emerging and competition. Therefore, how to design a transf ormation for the subject to neon variety has the significance of the times.Square neon lamp in this design is based on 89C51 single-chip design, display, infrared communication, the voice of the three functions. According to the characteristics of diversity square neon lights transform, designed five kinds of transformation, achieved by writing software. The design for the design of square of neon lamp has the advantages of simple structure, strong scalability, electrical and economic feasibility.Keyword:neon light;89C51;automatic control目录摘要 ................................................................................................................................. I Abstract............................................................................................................................... I I 1 绪论 .. (1)1.1 课题研究的目的和意义 (1)1.2 霓虹灯研究情况概述 (2)1.3 论文主要研究内容 (4)2 系统方案设计 (6)2.1 系统总体设计方案 (6)2.2 通信模块的确定 (7)2.3 显示模块与音乐模块的确定 (7)2.4 电源模块的确定 (8)2.5 单片机控制部分的确定 (8)3 AT89C51单片机概述 (9)3.1 AT89C51特性 (9)3.2 单片机最小应用系统 (9)3.2.1 时钟电路 (9)3.2.2 复位电路 (10)3.3 I/O接口的扩展 (11)3.4 掉电保护设计和硬件―看门狗‖ (12)3.4.1 微处理器监控器MAX690A简介 (12)3.4.2 电路工作原理 (13)4 硬件部分的设计 (14)4.1 红外通信模块的设计 (14)4.1.1 实现目标 (14)4.1.2 元器件选型 (14)4.1.3 电路设计 (116)4.2 显示模块的设计 (16)4.2.1 LED数码管的显示原理 (16)4.2.2 显示方案及接线 (18)4.3 音乐模块的设计 (19)4.3.1 模块组成 (19)4.3.2 音乐模块接线图 (20)4.4 电源模块的设计 (20)5 软件部分设计 (22)5.1 软件说明 (22)5.2 系统总流程介绍 (23)5.3 显示与音乐模块流程介绍 (24)5.4 红外通信流程介绍 (25)6 结论 (26)参考文献 (28)谢辞 (29)附录 (30)1 绪论1.1 课题研究的目的和意义霓虹灯是一种低气压冷阳极辉光放电发光的光源。

基于单片机的霓虹灯控制系统设计

基于单片机的霓虹灯控制系统设计

目录0. 前言.................................................... 错误!未定义书签。

1. 总体方案设计............................................ 错误!未定义书签。

2. 硬件电路的设计.......................................... 错误!未定义书签。

2.1 单片机系统......................................... 错误!未定义书签。

2.2 LED概述............................................ 错误!未定义书签。

2.3 外部时钟方式电路................................... 错误!未定义书签。

2.4 手动复位电路....................................... 错误!未定义书签。

2.5 霓虹灯控制电路..................................... 错误!未定义书签。

3 软件设计................................................. 错误!未定义书签。

3.1中断服务流程........................................ 错误!未定义书签。

3.2霓虹灯控制电路流程 ................................. 错误!未定义书签。

4.联合调试................................................. 错误!未定义书签。

5. 课设小结及进一步设想.................................... 错误!未定义书签。

参考文献................................................... 错误!未定义书签。

基于单片机的霓虹灯控制系统设计

基于单片机的霓虹灯控制系统设计

基于无线传输的仓库多点温度智能监控系统设计目录摘要关键词一.前言二.总体设计方案三.硬件电路设计3.1 单片机系统3.2 LED概述3.3 外部时钟方式电路3.4 手动复位电路3.5 霓虹灯控制电路四.软件设计五.软件调试六.总结附录基于单片机的霓虹灯控制系统设计摘要:单片机技术是一门应用性很强的专业课,其理论与实践技能是从事机电类专业技术工作的人员所不可少的。

本次程设计是选择AT80C51为核心控制元件,利用取表的方法,使端口P1 做单一灯的变化:左移2 次,右移2 次,闪烁2 次(延时的时间0.2 秒),设计了单片机霓虹灯控制系统,使其产生有规律的闪烁和移动。

关键字 T80C51 LED灯霓虹灯一. 前言单片机,亦称单片微电脑或单片微型计算机。

它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。

它是一种集计数和多中接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而51单片机是个单片机中最为典型和最有代表性的一种。

随着城市建设和市场经济的飞速发展,城市的美化和日益激烈的广告竞争越来越得到社会的关注,作为城市装饰和广告宣传的霓虹灯的需求量也越来越大。

过去霓虹灯控制器多采用E2PROM和相应的逻辑电路来完成,现在也有采用一些专用霓虹灯控制芯片的控制器。

前者所需电路较多,制作不易改变,且所需控制的霓虹灯路数越多,扩展起来也比较繁杂;而后者由于电路已作定,控制方式不能随意改变,功能较为单一。

然而市场上需要低成本高性能的霓虹灯控制技术。

我们此次设计的霓虹灯控制系统就符合市场需求。

二. 总体方案设计在本次设计中,硬件部分由单片机系统、LED发光二极管组成。

原理图如图1所示。

单片机选用的是AT89C51单片机,利用其中的一个定时器设定灯光闪烁的时间,时钟电路选用的是11.0592M的晶振。

基于51单片机霓虹灯

基于51单片机霓虹灯

实训报告基于单片机的霓虹灯设计姓名:xxx学号:xxxxxxxxxxxxxxx2018/5/311. 模块功能简介1.1 STC89C52 单片机及其引脚说明89C52是一种高性能低功耗的采用CMOS工艺制造的8 位微控制器,它提供下列标准特征:4K 字节的程序存储器,128字节的RAM,32条I/O 线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。

引脚说明:·V CC:电源电压·GND:地·P0口:P0口是一组8 位漏极开路型双向I/O 口,作为输出口用时,每个引脚能驱动8个TTL 逻辑门电路。

当对0 端口写入 1 时,可以作为高阻抗输入端使用。

当P0 口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

在这种模式下,P0 口具有内部上拉电阻。

在EPROM编程时,P0 口接收指令字节,同时输出指令字节在程序校验时。

程序校验时需要外接上拉电阻。

P1口:P1口是一带有内部上拉电阻的8 位双向I/O 口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写 1 时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1 口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流<I IL )。

·P2口:P2是一带有内部上拉电阻的8位双向的I/O 端口。

P2口的输出缓冲能驱动4 个TTL 逻辑门电路。

当向P2 口写 1 时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流<I IL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器<例如MOVX@DPTR)时,P2口送出高8 位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出 1 时。

基于51的可控霓虹灯控制器(串口和按键控制)

基于51的可控霓虹灯控制器(串口和按键控制)

/***********************************************************************设计人:* * *时间:2011年6月22日21:08:51功能:霓虹灯控制器功能说明:在ROM中事先保存有一定数据1. 进入运行后进行自动运行,在12864上显示延时时间,以及引脚。

(其中时间以100ms为单位,引脚以十进制数为说明)2. 在自动模式下,可进入手动控制,按键P3^4 ,在手动控制下按键P3^4可返回自动模式3. 在自动模式下,可按键P3.2 进入手动设置界面手动设置界面:在手动设置界面下按照12864上的提示首先输入要点亮的引脚2个然后再输入时间,重复反复运行若在设置时间按后按键P3.3 则跳出设置,进入自动运行模式(按照之前的设置在自动运行模式)4. 可通过串口通信进行设置,详情见串口通讯函数说明注1 :设置智能设置7以内包括7组引脚点亮位置和时间,进行循环注2 :在程序中有一段保留代码,此代码是I2C通信的FLASH的驱动程序但是由于52单片机的内部程序存储空间只有8K程序生成的HEX文件已经超过无法运行,故作保留程序此程序设计是为了上电的时候能够直接读取FLASH中的数据,运行上次设置的数据以及每次设置之后的数据存储。

(也可通过它来扩大存储的点亮引脚和时间的数量)(之所以多字节数据多次读写,是由于多字节数据读写数据有限)***********************************************************************/#include "LCMDRV_12864.h"#include <reg52.h>#include <string.h>//#include <I2C.h>//#include <I2C.c>//#define cat_adr 0xa0 //i2c地址器件#define uchar unsigned char#define uint unsigned int//8155控制定义#define COMM_8155 (*((unsigned char volatile xdata *) 0x7f00))#define PA_8155 (*((unsigned char volatile xdata *) 0x7f01))#define PB_8155 (*((unsigned char volatile xdata *) 0x7f02))#define PC_8155 (*((unsigned char volatile xdata *) 0x7f03))/************按键定义*****************/sbit key_enter = P3^2;//手动设置进入和确定按键sbit key_exit = P3^3;//手动设置退出按键sbit key_man_ctrl = P3^4; //手动控制进入和退出按键//sbit key_sub = P3^5;sbit lcd_rst = P3^5;/*************标志位********************/uchar key_man; //手动控制标志位uchar key_set; //按键设置标志位uchar timer_10ms_flag; //定时器标志位uchar ctrl_mod; //0为自动,1为手动uchar uart_flag; //串口通信结束标志位1时使能/*****************数据定义**********************///串口数据保存unsigned char uart_cnt=0;//自动运行所需数据uchar auto_data[25] = {0XFF,0XAA,0X55,0X0A,0X55,0xAA,0x0A,0x0F,0xF0,0x0B,0xF0,0x0F,0x0C,0x00,0x00}; uchar uart_data[25];uchar auto_num =15;//数据显示uchar dis_data[25];/*****************函数定义**********************///初始化函数void initial(void);//自动控制功能主程序void auto_ctrl(void);void mannual_ctrl(void);void mannual_set(void);void main(void){uchar i;//unsigned char *temp;initial();while(1){/*************串口设置***************串口数据发送完毕标志位:uart_flag == 1进入函数处理设置完毕之后,设置为自动运行模式************************************/if(uart_flag == 1){uart_cnt--;uart_flag = 0;auto_num = uart_cnt;uart_cnt = 0;ctrl_mod = 0;for(i=0 ; i<25;i++)auto_data[i] = uart_data[i];/*将最新设置的值写入flashI2C_ACK=0;temp = auto_data;for(;I2C_ACK == 0;)I2C_ACK = I2C_ISendBytes(cat_adr,0x00,temp,8);temp = temp + 8;I2C_ACK=0;for(;I2C_ACK == 0;)I2C_ACK = I2C_ISendBytes(cat_adr,0x08,temp,8);temp = temp + 8;I2C_ACK=0;for(;I2C_ACK == 0;)I2C_ACK = I2C_ISendBytes(cat_adr,0x10,temp,9);*/}/************手动设置***********************按键key_enter进入手动设置注意:设置范围应该在10次以内*********************************************/if((key_enter == 0) || (key_set == 1)){DelayX10us(10); //按键消抖if((key_enter == 0) || (key_set == 1)){/*****************后面记得打开************************/mannual_set();}}/********************************************************手动控制按键控制key_man_ctrl标志位key_man功能:从PB口读取数据,实时反映在LED灯的显示上控制要求:当按键key_man_ctrl时进入按键控制模式置位标志位关闭串口中断不接受串口信息在按键控制模式中循环直到重新按key_man_ctrl打开串口中断同时清标志位********************************************************/{DelayX10us(10);if(key_man_ctrl == 0){mannual_ctrl();ctrl_mod = 0;}}/***************************************自动控制:直接通过保存在auto_data数组中的数据自动控制显示***************************************/if(ctrl_mod == 0)auto_ctrl();}}/**********************************************手动设置函数根据提示手动设置设置时led灯会显示设置的时间或者点亮位置**********************************************/void mannual_set(void){unsigned char temp0,temp1,temp2;unsigned char PB_data,PC_data;P1=0xff;// unsigned char *temp;LCM_Init(1);strcpy(dis_data,"key_set mode!");LCM_DispStrXY(3,1,dis_data);for(temp0=0;temp0<25;temp0++)auto_data[temp0] = 0;DelayX100ms(15);key_set = 1; //打开手动设置标志位ctrl_mod = 1; //停止运行自动模式标志ES = 0; //关闭串口中断temp0=0;while(key_set == 1){if(temp0 == 0){auto_data[0] = 0xff;temp0++;}else if(temp0%3 != 0){if(temp0%3 == 2)temp2 = temp1;LCM_Init(1);strcpy(dis_data,"input the port!");LCM_DispStrXY(3,1,dis_data);temp1=0;while(1){PB_data = PB_8155;PB_data = ~PB_data;if((PB_data&temp1) == 0 ){temp1 =temp1 + PB_data;PA_8155 = temp1;}if((key_enter==0)){auto_data[temp0] = temp1;temp0++;while(key_enter == 0);break;}}}else if(temp0%3 == 0){LCM_Init(1);strcpy(dis_data,"the port1 is:");LCM_DispStrXY(2,1,dis_data);LCM_DispUIntXY(2, 14,temp1);strcpy(dis_data,"the port2 is:");LCM_DispStrXY(3,1,dis_data);LCM_DispUIntXY(3, 14,temp1);strcpy(dis_data,"input the time!");LCM_DispStrXY(4,1,dis_data);temp1=0;while(1){PB_data = PB_8155;PB_data = ~PB_data;if((PB_data&temp1) == 0x00 ){temp1 = temp1 + PB_data;PA_8155 = temp1;}PC_data = PC_8155;if((key_enter == 0)||(key_exit == 0)){auto_data[temp0] = temp1;temp0++;if(key_exit == 0){auto_data[temp0] = 0x00;temp0++;auto_data[temp0] = 0x00;auto_num = temp0;key_set = 0; //关闭手动设置标志位ctrl_mod = 0; //打开自动模式标志ES = 1; //打开串口中断/*将最新设置的值写入flashI2C_ACK=0;temp = auto_data;for(;I2C_ACK == 0;)I2C_ACK = I2C_ISendBytes(cat_adr,0x00,temp,8);temp = temp + 8;I2C_ACK=0;for(;I2C_ACK == 0;)I2C_ACK = I2C_ISendBytes(cat_adr,0x08,temp,8);temp = temp + 8;I2C_ACK=0;for(;I2C_ACK == 0;)I2C_ACK = I2C_ISendBytes(cat_adr,0x10,temp,9);*/}while(key_enter == 0);break;}}}}}/**********************************************手动设置函数根据提示手动设置设置时led灯会显示设置的时间或者点亮位置**********************************************/ void mannual_ctrl(void){unsigned char PB_data;P1 = 0XFF;LCM_Init(1);strcpy(dis_data,"mannual mode!");LCM_DispStrXY(3,1,dis_data);ES = 0; //关闭串口中断;key_man = 1;while(key_man_ctrl == 0);while(key_man == 1){PB_data = PB_8155;PA_8155 = ~PB_data;if(key_man_ctrl == 0){key_man = 0;ES = 1;while(key_man_ctrl == 0);break;}}ES = 1; //打开串口中断;}/************************************************自动控制函数通过保存在auto_data数组中的数据自动运行控制输出并且显示出所存在的数据************************************************/void auto_ctrl(void){unsigned char i;LCM_Init(1);strcpy(dis_data,"auto mode!");LCM_DispStrXY(3,1,dis_data);DelayX100ms(15);if(auto_data[0]==0xff) //判断是否有起始位{while(1){if((key_enter == 0)||(key_exit == 0)||(key_man_ctrl == 0))break;if(uart_flag == 1)break;for(i=1;i<=auto_num-2 ;){if((key_enter == 0)||(key_exit == 0)||(key_man_ctrl == 0)||(uart_flag == 1)) break;if(uart_flag == 1)break;if(i%3 != 0){LCM_Init(1);strcpy(dis_data,"the port1 is:");LCM_DispStrXY(2,1,dis_data);LCM_DispUIntXY(2, 15,auto_data[i]);strcpy(dis_data,"the port2 is:");LCM_DispStrXY(3,1,dis_data);LCM_DispUIntXY(3, 15,auto_data[i+1]);strcpy(dis_data,"the time is:");LCM_DispStrXY(4,1,dis_data);LCM_DispUIntXY(4, 15,auto_data[i+2]);P1 = auto_data[i+1];PA_8155 = auto_data[i];i++;i++;}else{DelayX100ms(auto_data[i]);i++;}}}}else //否则数据错误,自动进入手动设置{key_set = 1;ctrl_mod = 1;}}/*******************初始化函数初始化内容:LCM12864初始化欢迎界面;标志位初始化;8155初始化定时器定时初始化;串口通信初始化;自动控制数据初始化****************************/void initial(void){//unsigned char *temp;/*/设定定时器定时,并设定一个标志位*//*/设定定时器定时,并设定一个标志位*/SCON = 0x50; /* uart in mode 1 (8 bit), REN=1 */TMOD = TMOD | 0x20 ; /* Timer 1 in mode 2 */TH1 = 0xFD; /* 9600 Bds at 11.059MHz */ TL1 = 0xFD; /* 9600 Bds at 11.059MHz */ES = 1; /* Enable serial interrupt*/EA = 1; /* Enable global interrupt */TR1 = 1; /* Timer 1 run *//*/设定串口通信比特率为9600bit/s *///串口定时器1/*设定8155控制字*/COMM_8155 = 0x01;/***** 欢迎界面****/LCM_Init(1);strcpy(dis_data,"welcome!");LCM_DispStrXY(3,1,dis_data);strcpy(dis_data,"nam:sup_mov");LCM_DispStrXY(4,1,dis_data);strcpy(dis_data,"num:20085016");LCM_DispStrXY(5,1,dis_data);strcpy(dis_data,"cla:auto_0801");LCM_DispStrXY(6,1,dis_data);DelayX100ms(40);/***********************************初始化标志位***********************************/timer_10ms_flag = 0 ;ctrl_mod = 0;uart_flag = 0;key_man = 0;key_set = 0;/**************************************自动运行初始化读取flash中的值**************************************//* I2C_ACK = 0;temp = auto_data;for(;I2C_ACK == 0;)I2C_ACK = I2C_IRcvBytes(cat_adr,0x00,temp,8);temp = temp + 8;I2C_ACK=0;for(;I2C_ACK == 0;)I2C_ACK = I2C_IRcvBytes(cat_adr,0x08,temp,8);temp = temp + 8;I2C_ACK=0;for(;I2C_ACK == 0;)I2C_ACK = I2C_IRcvBytes(cat_adr,0x10,temp,9);*/}/****************************************************************************** *串口数据发送方式0xff(数据起始位)0xXX(点亮的灯管)0xXX(延时时间)0xXX(点亮的灯管)…………………………0x00 0x00(数据发送结束标志)注:其中延时时间以100毫秒为单位计算即每次最大延时时间为25.6s手动设置方式相同设置范围应该在10次以内******************************************************************************* /void serial_IT(void) interrupt 4{if (RI == 1){RI = 0;uart_data[uart_cnt] = SBUF;SBUF = uart_data[uart_cnt];if(uart_data[uart_cnt]== 0x00){if(uart_data[uart_cnt-1]==0x00){uart_flag = 1;ctrl_mod = 1; //停止接受标志0xff为起始接收标识位}}uart_cnt++;//开始接受标志(0xff)或者信息}elseTI = 0;}。

毕业设计(论文)-基于单片机控制霓虹灯控制器

毕业设计(论文)-基于单片机控制霓虹灯控制器

基于单片机控制的霓虹灯控制器摘要:本设计采用AT89S51单片机实现对霓虹灯的控制。

系统由单片机控制部分和显示部分组成。

显示部分的128个发光二极管成8行16列矩阵式分布。

单片机I/O口输出的信号经三极管放大驱动二极管发光。

不同的控制信号使发光二极管以不同的方式和花样显示。

关键字:单片机发光二极管矩阵式Neon Light Controller Based on Singlechip Abstract: This design adopts singlechip AT89S51 to control the neon light. The system is made up of the part of singlechip controller and the part of show. The part of show is 8 lines of 16 row matrix types. Signal from singlechip is enlarged by triode transistor to drive the LBD. The different control signal makes LBD to give out light with the pattern in different way.Keyword: singlechip LBD matrix目录第一章绪论 (4)1.1 霓虹灯发展历史 (4)1.2 霓虹灯的原始模型 (4)1.3 霓虹灯在我国的发展历程 (5)1.4 单片机概述 (5)1.5 MCS-51的引脚说明: (7)第二章系统设计 (9)2.1设计要求 (9)2.2总体设计方案 (9)2.2.1设计思路 (9)2.2.2方案论证与比较 (9)2.2.3系统组成 (10)第三章单元电路设计 (11)3.1显示部分电路 (11)3.2控制部分电路 (11)第四章软件设计 (13)4.1程序流程图 (13)第五章结论 (14)参考文献 (15)附录1 元器件明细表 (16)第一章绪论1.1 霓虹灯发展历史可以说霓虹灯的问世是建立在真空及气体放电的技术发展之上的。

毕业论文---基于单片机的霓虹灯控制器的设计【范本模板】

毕业论文---基于单片机的霓虹灯控制器的设计【范本模板】

基于单片机的霓虹灯控制器的设计摘要本设计采用AT89C52单片机实现对霓虹灯的控制.系统由红外遥控模块、单片机控制模块、显示模块、语音模块四部分组成。

红外遥控模块分红外发射部分和红外接收部分,通过单片机译码后,取出红外发射按钮的地址,从而实现红外遥控器对霓虹灯显示图案的远距离控制。

红外接收管也只占用一个IO口。

显示部分为16×16的点阵模块,通过单片机控制显示不同的图案以及想要的文字,并让字能够移动、暂停,以及从当前文字切换其它文字。

语音模块采用的语音芯片是ISD1730,可以录制想要的语音,通过录音可以对设计进行介绍.语音的播放支持暂停、下一首、调节音量和复位。

由于单片机的IO口不够用,本设计采用74HC154对其扩充,将四线扩充到十六线.该系统具有电路结构简单、易操作、成本低等优点,具有较强的实用价值.关键词:单片机;红外遥控;点阵;译码器;霓虹灯The Design of the Neon Lights controller Based on SCMAbstractThis design uses the AT89C52 single chip microcomputer to control the neon lights. The system is composed by the infrared remote control module, the single-chip microcomputer control module, the display module and the speech module. Infrared remote control module is divided into the infrared transmitter and infrared receiver parts。

After decoding through the single chip microcomputer, the infrared emission button address can be taken out in order to realize the remote control of infrared neon lights display. The infrared receiving tube only takes up one IO port. The display part uses the dot matrix module with 16 plus 16,through the single—chip control, it can display different patterns and the text,and make the word to move,pause,and switch from the current text to the other。

基于单片机的霓虹灯控制系统方案设计书

基于单片机的霓虹灯控制系统方案设计书

0. 前言11. 总体方案设计12. 硬件电路的设计22.1 单片机系统22.2 LED概述32.3 外部时钟方式电路42.4 手动复位电路42.5 霓虹灯控制电路53 软件设计63.1中断服务流程63.2霓虹灯控制电路流程64.联合调试85. 课设小结及进一步设想9参考文献9附录I 元件清单10附录II 整体电路图11附录III 源程序清单12基于单片机的霓虹灯控制系统设计:本文主要设计一个基于单片机的霓虹灯控制系统。

以AT89C51单片机为控制核心电路,应摘要用片内定时器实现对霓虹灯的控制。

该系统由单片机的控制部分和显示部分组成,运用中断定时器控制发光二极管(或LED),使其产生有规律的闪烁和移动。

关键字:单片机;发光二极管;定时中断0.前言随着时代的进步,人们对物质生活的迫切追求,使周边环境发生翻天覆地的变化。

从钻木取火走到今天灯火阑珊,各种繁华夜景层出不穷,让人叹为观止。

这些辉煌景象都离不开电子技术。

事实证明电子技术对社会的发展产生了深远的影响。

随着电子技术和计算机技术的发展,特别是单片机的发展,使传统的测量仪器在原理、功能、精度及自动化水平等方面发生了巨大的变化,形成了一种完全突破传统概念的新一代测试仪器——智能仪器。

智能仪器是以微处理器为核心的电子仪器,它不仅要求设计者熟悉电子仪器的工作原理,而且还要求其掌握微型计算机硬件和软件的原理。

目前,有很多的传统电子仪器已有相应的替代产品,而且还出现不少全新的仪器类型和测试系统体系。

在科学技术高速发展的今天,如何用简单便宜、性能良好的元器件制造出对人类生活有用的产品,已经成为人们研究的主要趋势。

在自动化技术中,无论是过程控制技术还是数据采集技术还是测控技术,都离不开单片机,在工业自动化的领域中,机电一体化技术发挥越来越重要的作用。

1.总体方案设计在本次设计中,硬件部分由单片机系统、LED发光二极管组成。

原理图如图1所示。

单片机选用的是AT89C51单片机,利用其中的一个定时器设定灯光闪烁的时间,时钟电路选用的是11.0592M的晶振。

51单片机技术应用教程(C语言版)项目四 花样霓红灯的设计与制作

51单片机技术应用教程(C语言版)项目四 花样霓红灯的设计与制作

函数 atoi atol atof strtod strtol strtoul
rand srand calloc free init_mempool
malloc realloc
功能 将字符串sl转换成整型数值并返回这个值 将字符串sl转换成长整型数值并返回这个值 将字符串sl转换成浮点数值并返回这个值 将字符串s转换成浮点型数据并返回这个值 将字符串s转换成long型数值并返回这个值 将字符串s转换成unsigned long型数值并返回这个值
5.请写出二维数组的格式,并举例说明。
51单片机技术应用活页式教程(C语言版)
项目四 花样霓虹灯的设计与制作
4.1 C51库函数
知识 链接
4.2 用户自定义函数 4.3 C51数组
【知识点4.1】 C51库函数
• 函数有库函数和自定义函数两类。 • C51的库函数由C51的编译器提供,每个库函数的原型放
使单片机程序产生延时 对字节中的一位进行测试
【知识点4.2】用户自定义函数
• 1.用户自定义函数的形式
• (1)无参数函数。此种函数被调用时,既无参数输入,也不返回结果给调用函数,它 是为完成某种操作过程而编写的。
• (2)有参数函数。在定义此类函数时,必须定义与实际参数一一对应的形式参数,并 在函数结束时返回结果给调用该函数的程序使用,函数的返回值是通过函数中的return 语句获得的。调用时必须提供实际的输入参数。
如果P1口接了8个LED灯,该程序的功能是:
51单片机技术应用活页式教程(C语言版)
项目四 花样霓虹灯的设计与制作
【引导学习】
2. 请接合第1题程序,请写出有参与无参、形参与实参的含义。
3.请用字符型数组定义LED,存放流水灯8种显示状态,存放在程 序存储器中。 4.请用一维数组定义LED数码管的0-9的显示编码。

基于单片机的简易霓虹灯控制器设计

基于单片机的简易霓虹灯控制器设计

摘要摘要霓虹灯在现代社会中有广泛的应用,但传统的霓虹灯控制器利用移位寄存器的移位方式,只能实现几种有限的花式,因此市场迫切需要一种低成本高性能的霓虹灯控制器。

本设计采用AT89C51单片机实现对霓虹灯的控制。

系统的设计由霓虹灯的硬件电路设计和软件设计两部分组成。

硬件设计分为发光二极管的设计、复位电路、时钟电路、按键设计、外设接口设计五个模块组成,按键主要功能是实现人为控制霓虹灯,实现单片机控制显示不同的图案以及想要的各种花样闪烁,并能实现各种闪烁模式的互相切换。

软件部份是运用Keil软件基于C 语言进行编写的程序。

该系统具有电路结构简单、易操作等优点,具有较强的实用价值。

并且有较强的实用性,操作简单,扩展功能强。

如需要增加功能可方便更改程序,灵活性强。

该系统主要由单片机的主控部分、键盘输入部分和LED显示部分组成,运用I/O口输出的信号驱动发光二极管和数码管,使其产生有规律的闪烁和移动。

该控制器电路实现简单,成本低,具有较高的性价比。

关键词:单片机,Keil,C语言,发光二极管I目录目录第一章设计任务与要求 (1)1.1、总体方案设计 (2)1.2、要求完成的主要任务内容: (2)第二章方案选择 (4)2.1、控制芯片、LED恒流源模块方案选择 (4)2.1.1、控制器模块 (4)2.1.2、LED恒流源模块 (4)2.1.3、时钟模块 (4)2.1.4、理论分析与参数计算 (5)第三章系统设计与模块化硬件电路设计 (7)3.1、系统总体设计 (7)3.2、单元电路设计及工作原理分析 (7)3.2.1、电路的恒流源的设计 (7)3.2.2、复位电路 (8)3.2.3、驱动LED灯电路 (10)3.2.4、振荡电路 (12)3.2.5复位控制电路 (13)3.2.6时钟电路 (15)3.2.7、整体单片机控制电路 (15)第四章软件系统设计 (17)II目录4.1 程序总体结构 (17)4.2 程序总体流程 (17)4.3 程序编写 (17)第五章系统调试 (24)5.1测试方法与数据 (24)5.1.1 测试方案与方法 (24)5.1.2 元件清单 (25)附录 (26)致谢 (27)参考文献 (28)III第一章设计任务与要求第一章设计任务与要求前言现代科学技术飞速发展,日新月异。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实训报告基于单片机的霓虹灯设计姓名:xxx学号:xxxxxxxxxxxxxxx2018/5/311.模块功能简介1.1 STC89C52单片机及其引脚说明89C52是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器, 一个5中断源两个优先级的中断结构,一个双工的串行口, 片上震荡器和时钟电路。

引脚说明:·V CC:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL 逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

在这种模式下,P0口具有内部上拉电阻。

在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。

程序校验时需要外接上拉电阻。

·P1口:P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流<I IL)。

·P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL 逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流<I IL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器<例如MOVX @ DPTR)时,P2口送出高8位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。

当利用8位地址线访问外部数据存储器时<例MOVX @R1),P2口输出特殊功能寄存器的内容。

当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。

·P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。

P3口的输出缓冲能驱动4个TTL 逻辑门电路。

当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流<I IL)。

·RST:复位输入。

当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。

·ALE/PROG:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。

当在Flash编程时还可以作为编程脉冲输出<PROG)。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。

但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。

·PSEN:程序存储允许时外部程序存储器的读选通信号。

当AT89C52执行外部程序存储器的指令时,每个机器周期PSEN两次有效,除了当访问外部数据存储器时,PSEN将跳过两个信号。

·EA/V PP:外部访问允许。

为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,EA必须同GND相连接。

需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。

当执行内部编程指令时,EA应该接到V CC端。

·XTAL1:振荡器反相放大器以及内部时钟电路的输入端。

·XTAL2:振荡器反相放大器的输出端。

1.2 单片机的最小系统电路本次实训用到的晶振为12M,30PF的无极性电容两个,主要作用是帮助振荡器起振,晶体的振荡频率范围是 1.2~13MHZ。

晶体振荡频率高,则系统的时钟频率也高,单片机运行的速度也就越快在最小系统中用到一个轻触按键,用于单片机的复位,接单片机的第9脚.单片机最小系统连线如图1所示:图1 单片机最小系统1.3电路中的发光二极管的接法共阳接法主控模块采用的是AT89S52单片机,AT89S52是一个8位单片机,片内ROM全部采用FLASH ROM 技术,与MCS-51系列完全兼容,它能以3V的超低电压工作,晶振时钟最高可达24MHz。

AT89S52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。

第31引脚需要接高电位使单片机选用内部程序存储器;第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS 引脚之间接0.1μF高频滤波电容。

第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号。

芯片与电路图:LED发光二极管如图3所示:图3 LED发光二极管连接图1.4 LED发光二极管LED发光二极采用共阳接法,因为单片机I/O口输出功率比较小.如果把发光二极管阳极接在I/O 口的话,会导致二极管亮度不够.共阳接法使得发光二极管获得比较大的功率。

实训中用到16个470欧的电阻,起到限流的作用,保护LED发光二极管。

该霓虹灯是以单片机AT89S52为核心来完成的,在硬件电路中采用P2口作为8位LED数码管的驱动接口。

单片机的八个输出端P0口同时又用来控制数码管的显示。

8个三极管,再接于数码管阳极用于驱动数码管。

因为共阳的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的8位LED数码管均用共阳极的数码管。

在8位LED显示时,为了简化电路,降低成本,8个LED显示器共用一个8位的I/O, 8位LED数码管的位选线分别由相应的端口控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。

主控模块采用的是AT89S52单片机,AT89S52是一个8位单片机,片内ROM全部采用FLASH ROM技术,与MCS-51系列完全兼容,它能以3V的超低电压工作,晶振时钟最高可达24MHz。

AT89S52是标准的40引脚双列直插式集成电路芯片,有4个八位的并行双向I/O端口,分别记作P0、P1、P2、P3。

第31引脚需要接高电位使单片机选用内部程序存储器;第9引脚是复位引脚,要接一个上电手动复位电路;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS,通常在VCC和VSS 引脚之间接0.1μF高频滤波电容。

第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号。

2 方案要求2.1 课题设计要求、系统方案介绍设计一个霓虹灯,采用LED模拟,要有多重花样.用单片机的P0口控制8盏发光二级管,P2口控制8盏发光二级管,P1口控制一个共阳数码管。

P0,P2口控制的 16盏灯排成4×4矩阵,数码管显示灯的花样种类,方案中总共有12种花样,数码管显示数字为0,1,2,3,4,5,6,7,8,9,H,F。

在设计的过程中,P0口要加上上拉电阻,这是单片机系统内部决定的。

在方案中用到三个按键,按键S1是单片机复位键,按键S2是中断控制灯的闪亮速度,按键S3是选择灯的花样,按键每按下一次,切换花样一次。

3单片机的选择方案一:8031芯片内部无ROM,需要外扩程序存储器,由此造成电路焊接的困难,况且使用8031还需要另外购买其他的芯片,从而造成成本较高,性价比低。

方案二:89C51芯片内部有ROM,且片内ROM全部采用Flash ROM,它能于3V的超低压工作,与MCS-51系列单片机完全兼容,但是其不具备ISP在线编程技术,需把程序编写好以后再放到编程器中烧写,才可以进行硬件电路的调试,倘若程序编写出现问题,调试电路就比较麻烦,而且其芯片内存也只有4KB。

方案三:采用STC89C52, STC89C52单片机是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

4 实训总结在看到题目后,第一件事是根据据自己的情况选择一个题目,因为自己对单片机的掌握能力还处于入门级别,所以选择霓虹灯的设计,大致制定了一下计划,初步设计通过三个通讯端口输出来控制霓虹灯,在程序设计上基本上是按照要实现的功能来实现,因为时间的问题,程序没有简化,所以先对而言看起来比较的复杂,在硬件的焊接过程中,板子质量比较差,在焊接要求上比较的严格,焊接完成的后,先检测了一下硬件的焊接无误,然后测试了一下基本功能,然后开始设计霓虹灯样式,设计用keil软件进行设计,设计完成通过protues仿真。

所有功能设计完毕后,将程序烧录进单片机,基本设计完毕,通过这次实训,加深了对单片机的认识,对于焊接技术也有相应的提高,虽然这次的设计比较简单,但是这是一个开始,通过这次简单的开始可以慢慢的深入。

元件清单程序清单#include<reg52.h>#define unit unsigned int voiddelayms(unit>。

void main(> {while(1>{P0=0xff。

P1=0xff。

P2=0xff。

delayms(2000>。

P0=0x16。

P1=0x56。

P2=0x06。

delayms(1000>。

P0=0xfe。

P1=0xfe。

P2=0xfe。

delayms(80>。

P0=0x06。

P1=0x56。

P2=0x06。

delayms(1000>。

P0=0xfe。

P1=0xfe。

P2=0xfe。

delayms(80>。

P0=0x7e。

P1=0x7e。

P2=0x06。

delayms(1000>。

P0=0xfe。

P1=0xfe。

P2=0xfe。

delayms(80>。

P0=0x06。

P1=0x56。

P2=0x46。

delayms(1000>。

P0=0xfe。

P1=0xfe。

P2=0xfe。

delayms(80>。

P0=0x16。

P1=0x56。

P2=0x46。

delayms(1000>。

P0=0xfe。

P1=0xfe。

P2=0xfe。

delayms(80>。

P0=0x1e。

P1=0xde。

P2=0x06。

delayms(1000>。

P0=0xfe。

P1=0xfe。

P2=0xfe。

delayms(80>。

P0=0x56。

相关文档
最新文档