精品可控流水灯单片机课程设计报告(c语言)-定
单片机流水灯课程设计报告书
目录1 设计任务与要求 (1)1.1设计任务 (1)1.2设计要求 (1)2 设计方案 (1)2.1 设计思路 (1)2.2 器件介绍与作用 (1)2.2.1 STC89C52RC简介 (1)2.2.2 STC89C52RC参数 (3)2.2.3 STC89C52RC特性 (3)2.2.4 STC89C52RC单片机的P2口介绍 (4)2.2.5 LED灯介绍 (5)3 硬件电路设计 (6)3.1 原理图 (6)3.2 LED被点亮的原理 (7)4 软件设计 (8)4.1设计流程 (8)4.2 源程序 (15)5 调试过程 (17)5.1实物连接图 (17)5.2调试 (18)5.3出现的问题 (18)6 总结 (19)7 附录 MSC-51系列单片机指令表 (20)参考文献 (25)1 设计任务与要求1.1设计任务设计一个通过单片机P2口控制流水灯的系统1.2设计要求(1)至少8个灯;(2)可实现不同的亮灯(如左循环,右循环,间隔闪等)。
2 设计方案2.1 设计思路整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。
于STC89C52单片机的彩灯控制方案,实现对LED红灯的控制。
本方案以STC89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。
在主控模块上设有晶振电路和8个LED灯,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。
2.2 器件介绍与作用2.2.1 STC89C52RC简介STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
基于c语言单片机流水节日彩灯课程设计
课程设计报告课程名称:单片机课程设计报告题目:节日彩灯控制学生姓名:所在学院:专业班级:学生学号:指导教师:2013年12月25日课程设计任务书摘要彩灯是我国普遍流行的传统的民间的综合性的工艺品。
彩灯艺术也就是灯的综合性的装饰艺术。
新中国成立后,彩灯艺术得到了更大的发展,科学技术的发展,彩灯艺术更是花样翻新。
节日彩灯以成为我们生活中常见的装置,在各种场合我们都能看见它,它使我们的生活更加的丰富多彩。
它集中运用了单片机, LED, 自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样,键一可以使彩灯依次从上到下循环点亮,健二可以使彩灯停止流动,所有的灯为暗,键三可以使彩灯上向下流动,健四可以使彩灯下向上流动,键五可以使所有的彩灯从亮到暗到亮循环。
通过按键可以达到不同的效果。
关键词节日彩灯;循环;AT89C51;目录一、概述 (1)二、方案设计与论证 (1)1.方案比较 (1)2.方案论证 (3)3.方案选择 (3)三、单元模块设计 (3)3.1 矩阵键盘的控制 (3)3.2 流水灯的控制 (4)四、总原理图 (6)五、结论与心得 (6)六、参考文献 (8)附录一:程序清单 (10)一、概述传统的制灯工艺和现代科学技术紧密结合,将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化。
它的主要器件是寄存器。
现如今寄存器是数字系统常见的重要部件,除在计算机中广泛用于存放中间数据外,它在其他方面的应用,目前在教材中只介绍可构成环形或扭环形计数器。
单片机流水灯课程设计
单片机流水灯课程设计第一篇:单片机流水灯课程设计单片机原理及系统课程设计报告基于AT89C51单片机的流水灯引言1.1 课题简介单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:在智能仪器仪表上的应用,例如精密的测量设备;在工业控制中的应用,用单片机可以构成形式多样的控制系统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
单片机在医用设备领域中的应用,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等;在各种大型电器中的模块化应用,如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
可控流水灯设计(单片机课程设计报告)汇编语言编写
单片机课程设计报告题目:可控流水灯摘要单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。
这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
对可控流水灯设计通过编写代码实现8个LED灯5种流水灯显示方式。
在设计中主要采用80C51这款芯片作为控制主体,用发光二极管来作为显示灯,用按钮来切换流水灯的发光方式同时外接一个七段显示发光二极管来显示流水灯的发光模式。
系统通过P2口外接8个发光二极管,P1口接3个按键,一个按键进行方式选择,数码管显示方式编号;用两个键来控制流水灯流动的速度。
数码管接在80C51的P0口上,而流水灯的放光二极管经过排阻接在P2口上。
设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。
关键词单片机80C51发光二极管流水灯目次1 引言 (1)2 课题综述 (1)2.1课题来源与意义 (1)2.2面临的问题 (1)3 系统设计 (1)3.1总体设计 (1)3.2模块设计 (2)3.3硬件设计 (5)4 代码编写 (6)5 系统调试 (7)6 系统运行结果与分析 (8)结论 (9)致谢 (10)参考文献 (11)附录 (12)1 引言单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。
现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2 课题综述2.1课题来源与意义随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。
单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑控制的主力军。
单片机流水灯设计报告
第一部分:实训准备1.摘要:近年来,随着电子技术和微型计算机的发展,单片机的档次不断提高,起应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终子电路有明显的优越性,控制硬件电路比较简单,软件方面程序也不复杂,因此制作的远离简单,但功能作用并不低于电子电路设计的,由于它的小巧方便、通俗易懂,所以我们往往采用单片机来做流水灯。
3.系统设计1.硬件框图2.总设计图3.选用AT89C51的引脚功能 STC89C51 复位电路 键盘震荡电路 流水灯电路XTAL1:单芯片系统时钟的反向放大器输入端。
XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。
个控制。
当按下S2后能实现D1和D7同时亮其他不亮,然后D2和D6亮,依此类推。
当按下复位S1,然后按下S2实现LED灯从D7到D1循环亮,按下S1然后按下S3实现LED从D1到D7的循环亮。
硬件详细设计1.复位电路部分如图所示,当要对晶片重置时,只要按此开关就能完成LED和开关的重置。
2.晶振部分产生时钟信号3.开关部分S2、S3、S4 分别控制3种LED显示效果,这里就不用详细说明了。
4.LED显示部分限流电阻为470欧姆,经过的电流大概为10mA。
4.软件详细设计1.软件框图开始检查是否有键按下读取键值根据键盘指令执行流水灯显示效果执行结束5.Protuce仿真Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。
本设计利用Keil μVision3,在新建Keil项目时选择AT89C51单片机作为CPU,将C语言源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生(2) 在wave 6000软件仿真平台上输入源程序,并进行编译、生产机器码。
单片机课程设计报告流水灯(WORD档)
XX工程学院单片机课程设计报告题目:流水灯学生姓名:学号:系部名称:职业技术学院班级:机电一体化Z11-1 指导教师:目录摘要 (3)一、课程设计题目 (4)二、设计任务及要求 (4)三、实验方案 (4)四、流程图 (4)五、硬件电路 (6)六、软件设计 (6)1 主体程序 (6)2 键扫描子程序 (6)3 闪烁控制程序 (6)4 延时子程序 (6)5 源程序设计 (7)七、功能调试 (12)八、设计总结 (12)九、参考文献 (13)【摘要】单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
一、课程设计题目:流水灯二、设计任务及要求:任务:完成对接在P1,P3口的发光二极管闪亮控制程序的设计1.用程序延时方法让P1的一个LED小灯每隔1S交替闪亮2.用程序延时方法让P1的8个LED小灯循环(每个亮50MS)闪亮3.用程序延时方法让P1的8个LED小灯追逐闪亮(50MS间隔变化)4.用程序延时方法让P1、P3的16个LED小灯循环(每个亮50MS)闪亮要求:1. 根据硬件电路原理,画出接线2. 设计出相应的软件程序三、实验方案:方案:单片机采用40脚的89C52标准双列直插系列,有4个标准输入/输出端口共32位控制端口。
本次设计采用并行口低电平(吸电流)直接驱动LED发光管发光形式,选择了P1和P3口的16个端口进行模拟LED小灯控制,如要多些小灯单元可再将P2口、P0口及其他空余端口用LED小灯驱动控制。
因系统功能要求能控制灯亮的方式,在P0.0—P0.3端口接了4个按键小开关,每个小开关可控制一种亮灯方式。
在端口较紧张的情况下,LED小灯驱动也可用串入/并出移位寄存器(如74HC595),单片机用并行移位方式进行驱动。
单片机流水灯实验报告
单片机流水灯实验报告
单片机流水灯实验报告
本次实验是单片机灯光控制实验,主要目的是培养学生使用突变端口控制灯光的实操能力。
实验分为程序设计、硬件组装、调试调试几个部分。
程序设计:根据实验要求编写了一个流水灯程序,主要利用单片机控制实现开关控制和常开及常闭特性,以及设置灯的渐变和闪烁的速度。
硬件组装:在板子上安装单片机和电路原件,并连接灯光电路,可以把单片机连接到PC,以便烧录程序。
调试调试:将程序烧录到单片机上,使板子上的灯光依次亮起,调整每个灯光闪烁或连续亮起的间隔,使灯光更好地结合实验要求。
本次实验让我深刻体会到用单片机编码语言思考问题的重要性,以及如何解决具体的技术问题。
实验操作让我加深了对单片机现象和面向对象编程的理解,让我更加熟练灵活地运用单片机配合硬件的概念和编程技术,全面提高了自己的应用水平。
可控流水灯单片机课程设计报告(c语言)-精品
目录1 引言 (1)2课题综述 (1)2.1 课题的来源 (1)2.2课题的意义 (1)2.3预期的目标 (1)2.4面对的问题 (1)2.5课题的技术 (2)3系统分析 (2)3.1涉及的基础知识 (2)3.280C51单片机引脚图及引脚功能介绍 (2)3.3 解决问题的基本思路 (3)3.4总体方案 (3)4系统设计 (3)4.1硬件设计 (3)4.2 软件设计 (4)4.3元件清单 (4)4.4硬件原理图 (5)4.5 硬件焊接图 (6)4.6设计主要功能 (6)5代码编写 (6)6程序调试 (7)结论 (8)致谢 .................................................................................................. 错误!未定义书签。
参考文献 .............................................................................................. 错误!未定义书签。
1 引言单片机课程设计主要是为了让我们增进对80C51单片机电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
2课题综述2.1课题的来源当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。
而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。
而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。
2.2课题的意义这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。
单片机流水灯实验报告
单片机流水灯实验报告单片机流水灯实验报告一、实验目的本实验旨在通过单片机控制八个LED灯,实现流水灯效果。
通过本实验,我们希望达到以下目的:1.深入理解单片机的I/O端口的工作原理和使用方法。
2.掌握单片机定时器/计数器的工作原理和使用方法。
3.学会编写简单的单片机程序,实现特定的LED灯控制。
4.通过实践操作,提高单片机软硬件的综合应用能力。
二、实验设备1.单片机开发板2.电脑一台3.八个LED灯4.杜邦线若干5.电阻、电容等电子元件三、实验原理本实验采用AT89C51单片机作为主控芯片。
八个LED灯分别连接到P1端口的P1.0到P1.7。
通过编程控制P1端口的每一个引脚,实现对LED灯的亮灭控制。
使用定时器/计数器实现延时,达到流水灯效果。
四、实验步骤和内容1.搭建硬件电路将八个LED灯、一个上拉电阻以及相应的杜邦线连接至单片机开发板。
确保电源正确连接,并注意LED灯的长脚为正极,短脚为负极。
2.编写程序使用Keil C51编写程序,实现如下功能:点亮每个LED灯一定的时间,然后熄灭。
重复此过程,形成流水灯效果。
代码如下:#include <reg51.h> //包含51单片机的头文件#define LED P1 //定义LED为P1端口void delay(unsigned int time) //延时函数{unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<1275;j++);}void main() //主函数{while(1) //程序一直循环执行{unsigned char i=0; //定义一个变量i,用于循环控制LED灯while(i<8) //循环点亮每个LED灯{LED=~(0x01<<i); //点亮第i个LED灯delay(50000); //延时50ms(50*1275us)i++; //变量i加1,控制下一个LED灯}}}3.编译程序将程序编译为二进制文件,生成HEX文件。
单片机流水灯课程设计
单片机流水灯课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和结构,掌握流水灯的设计方法。
2. 学生能描述流水灯程序的设计流程,包括电路连接、编程语言及指令的运用。
3. 学生了解并能够解释流水灯中涉及的电子元件功能,如电阻、电容、LED 等。
技能目标:1. 学生能够独立完成流水灯电路图的绘制,并正确搭建电路。
2. 学生能够运用指定的编程软件,编写并调试出流水灯的程序代码。
3. 学生通过动手实践,提高问题解决能力和团队协作能力。
情感态度价值观目标:1. 学生通过完成流水灯的制作,培养对电子制作的兴趣,激发创新精神。
2. 学生在团队合作中学会相互尊重、倾听意见,培养良好的沟通能力和团队意识。
3. 学生能够意识到科技在生活中的应用,增强实践是检验真理的唯一标准的认识。
课程性质:本课程为实践操作性强的电子技术课程,结合理论知识与动手实践,培养学生对单片机应用的基本技能。
学生特点:假设学生为八年级,已具备基本的物理知识和逻辑思维能力,对电子制作有好奇心,动手能力强。
教学要求:教师应注重理论与实践相结合,鼓励学生动手实践,关注个体差异,提供个性化指导,确保学生在掌握知识技能的同时,培养积极的情感态度价值观。
通过具体的学习成果分解,后续教学设计和评估将更有针对性。
二、教学内容1. 理论知识:- 单片机基本原理与结构介绍,关联教材第3章。
- 流水灯电路设计原理,关联教材第4章。
- 编程语言基础及指令运用,关联教材第5章。
2. 实践操作:- 电路图绘制,关联教材第6章。
- 流水灯电路搭建,包括元件识别、电路连接,关联教材第7章。
- 程序编写与调试,关联教材第8章。
3. 教学大纲安排:- 第一课时:介绍单片机基本原理与结构,让学生了解流水灯项目背景。
- 第二课时:讲解流水灯电路设计原理,进行电路图绘制练习。
- 第三课时:学习编程语言基础及指令运用,为学生编写程序打下基础。
- 第四课时:分组进行流水灯电路搭建,并进行程序编写与调试。
单片机课程设计流水灯
单片机课程设计流水灯一、课程目标知识目标:1. 理解单片机的基本原理和功能,掌握流水灯的设计方法;2. 学会使用特定编程语言(如C语言)编写单片机程序,实现流水灯效果;3. 了解单片机在现实生活中的应用,培养学生对电子科技的兴趣。
技能目标:1. 能够运用所学知识,独立设计并搭建简单的流水灯电路;2. 掌握单片机编程技巧,具备调试程序的能力;3. 培养学生动手实践、解决问题的能力,提高创新思维和团队协作能力。
情感态度价值观目标:1. 培养学生对单片机课程的兴趣,激发学习热情,形成主动学习的习惯;2. 培养学生面对挑战时,勇于尝试、不断调整的心态,增强自信心;3. 培养学生关注科技发展,认识到单片机在科技领域的广泛应用,树立为国家科技事业做贡献的远大志向。
课程性质:本课程为实践性较强的课程,要求学生结合理论知识,动手实践,实现具体的项目。
学生特点:本课程针对初中或高中年级学生,他们对单片机有一定了解,具备基本的编程知识,喜欢动手实践。
教学要求:教师应注重理论与实践相结合,关注学生个体差异,提供个性化指导,确保学生能够完成课程目标。
同时,注重培养学生的团队协作能力和创新思维,提高学生的综合素质。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 理论知识:a. 单片机原理与结构:讲解单片机的内部组成、工作原理及性能特点;b. 编程语言基础:回顾C语言基础知识,强调在单片机编程中的应用;c. 流水灯原理:介绍流水灯的工作原理,分析其电路设计和程序设计要点。
2. 实践操作:a. 电路搭建:指导学生搭建流水灯电路,熟悉各种电子元器件的使用;b. 程序编写:教授学生编写流水灯程序,掌握程序调试方法;c. 项目实施:引导学生将理论知识应用于实践,独立完成流水灯项目。
3. 教学大纲:第一课时:单片机原理与结构介绍,C语言基础知识回顾;第二课时:流水灯原理讲解,电路设计和程序设计要点分析;第三课时:电路搭建及元器件使用方法教学;第四课时:程序编写及调试方法教学;第五课时:项目实践,学生独立完成流水灯项目。
单片机流水灯c语言实现
//------------------------------------------------
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE []=
red_a=1;yellow_a=1;green_a=0;
red_b=0;yellow_b=1;green_b=1;
delayMs(2000);
Operation_Type=2;
break;
case 2://东西向黄灯开始闪烁,绿灯关闭
delayMs(300);
yellow_a=!yellow_a; green_a=1;
while(x--)
{
for(i=0;i<120;i++);
}
}
//---------------------------------------------
//交通灯切换子程序
void Traffic_Light()
{
switch (Operation_Type)
{
case 1://东西向绿灯亮与南北向红灯亮
{
uchar i;
P2=0x01;//P2端口初始化
while(1)//死循环
{
for(i=0;i<7;i++)//i自加1,当i=7时执行第二个for语句
{
P2=_crol_(P2,1);//P2端口循环左移1位
delayMs(150);
}
for(i=0;i<7;i++)
基于单片机的流水灯课程设计报告书
基于单片机的流水灯课程设计报告书.****课程设计报告书系别: 机械与电子工程学院专业:学生姓名: 学号: 课程设计题目: 基于单片机的流水灯设计起迄日期:课程设计地点:指导教师:下达任务书日期: 2013 年 12 月 16 日.第一章设计背景 ..................................................................... ..... 3 第二章硬件设计 ..................................................................... .. (4)2.1硬件组成 ..................................................................... ........................................................................ . (4)2.2 AT89C51引脚功能 ..................................................................... (4)2.3晶振 ..................................................................... ........................................................................ (6)2.4 复位状态 ..................................................................... ........................................................................ (7)2.5流水灯硬件原理图 ..................................................................... (8)MCS-51系列单片机内部采用模块式结构 ..................................................................... ......................... 9 2.62.7元件清单 ..................................................................... ........................................................................ . (9)2.8程序流程图 ..................................................................... ........................................................................ .. 10 第三章软件编程 ..................................................................... . (11)3.1位控法 ..................................................................... ........................................................................ . (11)3.2 C语言编程 ..................................................................... .........................................................................123.2.1 C语言程序 ..................................................................... . (12)3.2.2编程注意事项 ..................................................................... (13)3.3仿真结果 ..................................................................... ........................................................................ ...... 15 实验总结 ..................................................................... ........... 16 参考文献: .................................................................... . (17)第 2 页共 17 页第一章设计背景单片机的应用已经广泛的渗透到国民经济的各个领域,随着在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未有的速度被单片机智能控制系统所取代,它已经成为工科大学生的必修课程之一。
单片机应用技术课程报告~流水灯的设计
单片机应用技术课程报告
实验名称流水灯的设计实验时间2020年 7月 9 日学生姓名实验地点钉钉群线上
同组人员专业班级
1、实验目的
(1)掌握C51程序循环结构及循环语句的使用,掌握C51程序结构的形式,掌握延时子程序设计的基本方法;
(2)学会二进制转换为十六进制方法;学会单片机控制LED显示器的电路设计及控制方法。
2、任务设计要求
组装一个简易流水灯显示器,单片机外接8个发光二极管,要求系统上电后,8个发光二极管依次循环点亮。
3、总体设计方案
根据实验任务要求,通过功能分析,设计的系统总体方案如图所示。
AT89C51单片机电源
时钟电路复位电路
LED显示
(2)程序清单
#include<reg51.h>//包含头文件reg51.h voiddelay(unsignedcharj);//延时函数声明voidmain()
{
while(1){
P1=0Xfe;
delay(100);
P1=0Xfd;
delay(100);
P1=0Xfb;
delay(100);
P1=0Xf7;
delay(100);
(3)性能指标测试及结果分析。
单片机跑马灯(流水灯)控制实验报告
单片机实验报告姓名: 学号:一、 实验实现功能:1:计数器功能2:流水灯二、 具体操作:1、计数器功能数码管的动态显示。
每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。
2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。
三、 程序流程图开始 定时器T0 设置初值,启动定时器,打开中断复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开四、程序#include <reg51.h>typedef unsigned char uint8;typedef unsigned int uint16; //类型定义sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit P2_4 = P2^4; //位声明四个数码管开关sbit Key2 = P3^2;sbit Key3 = P3^3; //位声明2个按键K2和K3sbit Ledk = P2^0 ; //LED 开关void delay(uint16 i); //延时函数声明void refresh (); // 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main() //主函数{TMOD = 0x01; //定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18; //定时器初值使每次循环为1msTR0 = 0; //定时器0开始作ET0 = 0; // 定时器中断关EA = 0; // 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j; // 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++) //四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20); //延时消抖}}/*************定时器的中断服务函数**************/void Timer0_Overflow() interrupt 1 //定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1; //中断开放ET0 = 1; //定时器0中断开while(1){Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{P0=~(1<<j++); //控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{j=0;}}}。
单片机课程设计可控流水灯设计
摘要单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
可控流水灯设计要求:对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。
在设计中主要采用8051单片机作为主要控制元件;在单片机P2接上8个发光二极管作为流水指示灯,在P0口接上数码管显示编号,显示当前流水灯的流水模式,数码管采取共阳极接法;在P1口的4、5、6位上各接一个按键,一个按键进行方式选择,另外两个按键控制流水灯的流动的速度。
在接上复位电路,时钟电路,电源电路以及一些必要的设计与电路,就能设计出一款可控流水灯。
关键词 8051单片机发光二极管数码管流水灯目录1 引言 (1)2 课题综述 (1)2.1 课题的来源 (1)2.2 课题的目的与意义 (1)2.3 面临的问题 (1)3 系统设计 (1)3.1 总体设计 (1)3.2 硬件原理图 (2)3.3 硬件焊接图 (3)3.4 软件设计 (4)4 代码编写 (4)5 系统调试 (8)总结 (9)致谢 (10)参考文献 (11)1 引言单片机课程设计主要是为了让我们增进对80C51单片机电路的的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握硬件设计过程、方法及实现,为以后实现应用打下基础。
另外,通过简单课题的设计练习,使我们了解各项工程部分,达到巩固并运用所学知识解决实际问题的目的。
2 课题综述2.1 课题的来源当今社会,由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在各个领域,而流水灯在生活中的应用更是广泛,较为贴近生活。
所以选择可控流水灯设计这个课题,也是对本学期学习单片机课程的加深与巩固。
单片机流水灯课程设计
单片机流水灯课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,了解流水灯的制作流程。
2. 使学生掌握C语言编程的基本方法,并能够运用到单片机编程中。
3. 帮助学生理解并运用数字电路基础知识,实现流水灯的功能。
技能目标:1. 培养学生动手操作能力,能够独立完成流水灯电路的搭建和程序编写。
2. 培养学生问题解决能力,能够分析和解决流水灯制作过程中遇到的问题。
3. 提高学生的团队协作能力,学会在小组内共同完成任务。
情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养创新精神和实践能力。
2. 培养学生严谨、细心的学习态度,养成认真检查、反复验证的好习惯。
3. 增强学生的自信心,培养面对困难和挑战时的积极心态。
本课程针对中学生设计,注重理论知识与实践操作的相结合,旨在提高学生的动手能力、编程技能和团队协作能力。
课程要求学生在掌握基本原理的基础上,能够独立完成流水灯的制作,并通过实际操作,培养学生的创新意识和实际操作能力。
课程目标具体、可衡量,便于教师进行教学设计和评估。
二、教学内容1. 单片机基础知识:介绍单片机的结构、工作原理,引导学生了解51单片机的特点和应用领域。
2. C语言编程基础:复习C语言基础知识,重点讲解与单片机编程相关的数据类型、运算符、控制语句等。
3. 流水灯原理与设计:讲解流水灯的工作原理,分析电路设计,使学生了解并掌握数字电路基础知识。
4. 单片机编程实践:教授流水灯程序编写方法,引导学生运用所学的C语言知识,编写并调试程序。
5. 流水灯电路搭建:指导学生动手搭建流水灯电路,培养学生实际操作能力。
6. 程序下载与调试:介绍程序下载到单片机的方法,教授调试技巧,帮助学生解决实际问题。
教学内容依据课程目标,紧密结合教材,分为理论教学和实践操作两部分。
理论部分主要包括单片机基础知识、C语言编程基础和流水灯原理;实践部分主要包括单片机编程实践、流水灯电路搭建和程序下载调试。
单片机AT89C51可控流水灯课程设计报告(汇编语言)参考模板
目录目录 (1)第一章课题的意义及应用 (2)第二章系统的总体设计 (3)2.1 设计方法 (3)2.2 数码管显示方案 (3)2.3 键盘输入方案 (4)第三章硬件电路设计 (4)3.1电路原理 (4)3.2单片机最小系统 (5)3.3系统工作流程 (5)第四章程序设计 (6)4.1系统总体结构框图 (6)4.2 系统流程图 (6)第五章调试 (7)5.1正常现象 (7)5.2出现的故障 (7)第六章心得体会 (9)参考文献 (9)附录1 (10)程序: (10)附录2 (19)仿真电路图: (19)实验箱接线图: (19)流程图: (20)第一章课题的意义及应用当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。
计算机作为一种快速通用的计算工具方便了用户的使用。
计算机可谓是我们最亲密的电子伙伴之一。
本设计着重在于分析计算机软件和开发过程中的环节和步骤,并从实践经验出发对计算机设计做了详细的分析和研究。
单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中。
单片微型计算机是微型计算机称单片机,特别适用于控制领域,故又称为微控制器。
单片机的应用日益广泛,如应用在仪器仪表,家用电器和专卖装备的智能化以及过程控制等方面,单片机在人们的日常生活和工作中正扮演着越来越重要的角色。
本系统就是充分利用了AT89C51芯片的I/O引脚。
系统以采用MCS-51系列单片机为中心器件来设计LED流水灯系统,实现8个LED流水灯的各种显示方式,并实现循环的速度可调,暂停及复位功能。
通过本次课题设计,应用《单片机原理及接口技术》等所学相关知识及查阅资料,完成可控流水灯设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。
实验2 流水灯控制的C语言实现
实验2 流水灯控制的C语言实现一、实验目的1、应用PROTEUS仿真工具软件绘制硬件连接图2、使用Keil C 完成程序的编写和调试3、初步了解C51程序的编写与调试二、实验内容本任务就是在单片机电路板上安装电路,以P1作为输出口,控制8个LED灯(可发红、绿或黄光),模拟流水灯控制。
三、实验电路原理图图4-1 流水灯控制电路原理图四、实验步骤1、在PROTEUS中画好电路原理图。
2、在KEIL中编写流水灯控制的程序。
编好后调试产生HEX文件。
编程要求如下:状态1:8个LED,从左到右逐个点亮,状态2:8个LED,从右到左逐个点亮,状态3:8个LED,从左到右依次点亮,状态4:8个LED,从右到左依次熄灭。
转至状态1循环该程序对应的流程图如图4-2所示。
3、将HEX文件写入电路图中的单片机,仿真出流水灯控制的现象。
五、实验源代码1、汇编程序:ORG 0000HLJMP MAINORG 0040HMAIN: MOV SP,#60HLOOP1:MOV R0,#8; R0=8MOV A,#0FEH;A=1111_1110LP1: MOV P1,A; P1=1111_1110MOV R3,#5; R3=101LCALL DELAY; 调用延时函数RL A; 将A循环左移DJNZ R0,LP1; 将R0-1->R0,如果R0!=0,则循环LOOP2:MOV R0,#8MOV A,#7FHLP2: MOV P1,A____________________________________________LOOP3:MOV R0,#8MOV A,#0FEHLP3: MOV P1,AMOV R3,#5________________________________________________LOOP4:MOV R0,#8MOV A,#80HLP4: MOV P1,AMOV R3,#5LCALL DELAYSETB CRRC ADJNZ R0,LP4LJMP LOOP1DELAY: MOV R2,#0FFH ; 延时子程序R2=255 DELAY1: MOV R1,#0C3H ;R1=12x16+3=195_______________________________________RETEND2、C51程序:#include<reg51.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint n) /*1ms延时函数*/{ uint k,j;for(k=0;k<n;k++)for(j=0;j<121;j++);}main(){ uchar i;uint aa;while(1){ aa=0xfe;//aa=1111_1110for(i=0;i<8;i++){P1=aa;//P1=1111_1110delay(500);aa=(aa<<1)|0x01;//aa=1111_1100 | 0000_0001=1111_1101}aa=0x7f;//aa=0111_1111for(i=0;i<8;i++){P1=aa;delay(500);aa=(aa>>1)|0x80;//aa=1011_1111}aa=0xfe;//aa=1111_1110for(i=0;i<8;i++){P1=aa;delay(500);aa=aa<<1;//aa=1111_1100}aa=0x80;//aa=1000_0000for(i=0;i<8;i++){P1=aa;delay(500);aa=(aa>>1)|0x80;aa=1100_0000}}}图4-2 程序流程图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1 引言 (1)2课题综述 (1)2.1 课题的来源 (1)2.2课题的意义 (1)2.3预期的目标 (1)2.4面对的问题 (1)2.5课题的技术 (2)3系统分析 (2)3.1涉及的基础知识 (2)3.280C51单片机引脚图及引脚功能介绍 (2)3.3 解决问题的基本思路 (3)3.4总体方案 (3)4系统设计 (3)4.1硬件设计 (3)4.2 软件设计 (4)4.3元件清单 (4)4.4硬件原理图 (5)4.5 硬件焊接图 (6)4.6设计主要功能 (6)5代码编写 (6)6程序调试 (7)结论 (8)致谢 .................................................................................................. 错误!未定义书签。
参考文献 .............................................................................................. 错误!未定义书签。
1 引言单片机课程设计主要是为了让我们增进对80C51单片机电路的感性认识,加深对理论方面的理解。
了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。
另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。
2课题综述2.1课题的来源当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。
而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。
而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。
2.2课题的意义这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。
能够让学生深入真是的体会到所学的理论知识和实践相结合的过程。
找出自身的不足并加以改正。
2.3预期的目标对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。
2.4面对的问题这次课程设计是通过80C51位单片机实现。
但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。
而更为严峻的就是设计的最后还要将软硬件相结合。
首先我们需要通过protel将设计的实物的电路图画出来,再根据电路图连接实物电路。
2.5课题的技术LED灯的显示方式、模式切换按钮的控制、亮灯速度的按键控制等技术。
3系统分析3.1涉及的基础知识电路焊接:制造电子产品的重要手段。
80C51单片机指令系统:规定80C51单片机内操作的语句或命令。
LED数码管的显示:向数码的显示送数,控制系统的显示部分。
3.280C51单片机引脚图及引脚功能介绍本次实习的目的在于加深80C51单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:图3.1 80C51的引脚图单片机的39个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
1.电源:(1)VCC:芯片电源,接+5V;(2)VSS:接地端;2.时钟:XTAL1、XTAL2 :晶体振荡电路反相输入端和输出端。
3.控制线:控制线共有4根,(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
(2)PSEN:外ROM读选通信号。
(3)RST/VPD:复位/备用电源。
RST(Reset)功能:复位信号输入端。
VPD功能:在Vcc掉电情况下,接备用电源。
(4)EA/Vpp:内外ROM选择/片内EPROM编程电源。
EA功能:内外ROM选择端。
Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
4.I/O线80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
3.3解决问题的基本思路因为选定用循环移位法来实现亮灯程序的,所以在一种设计好一种亮灯方式的前提下编程实现一个循环结构体,分别来实现五种不同的亮灯方式。
另外再编一个实现延时控制的调用程序,来提供亮灯速度的控制。
3.4总体方案在做本次课程设计之前将小组内人员分为两小组:一组分负责硬件设计,另一组负责软件编程。
硬件小组负责实物的连接和焊接,并进行硬件测试;软件小组负责实现流水灯的各部分程序设计,并进行软件的仿真测试。
最后将完成的软硬件相结合,从而达到实现课程设计的效果。
4系统设计4.1硬件设计按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
80C51单片机是本次课程设计运用的主要原件。
流水灯控制设计是用一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
4.2软件设计单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。
软件编程是单片机应用系统中的一个重要的组成部分,也是本次课程设计的重点和难点。
我们编程实现流水灯的方法是循环移位法,下面我们就来简述一下循环移位法的工作原理。
循环移位法是采用循环程序结构进行编程。
我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。
另外,由于80C51系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样也可以实现“流水”效果。
4.3元件清单表4-1 元件清单图4-1硬件原理图图4-2硬件焊接图4.6设计主要功能打开电路开关,按下第一个模式控制键,8个LED数码管会从右向左一个接着一个亮灯,LED显示器会显示数字“1”来表示当前的亮灯方式是模式1。
在8个LED 数码管全部亮后再次按下第一个模式控制键,8个LED数码管会从又向左2个一组的一次亮灯,同时LED显示器会显示数字“2”来表示当前的亮灯方式是模式2。
以此类推,一共有5种显示模式。
而第2、3个按键分别控制亮灯速度的快慢。
5代码编写#include <reg51.h>void delay(float);char LED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void main(){while(1){int i;for(i=0;i<8;i++){P1=LED[i];delay(300);}for(i=7;i>=0;i--){P1=LED[i];delay(300);}for(i=0;i<8;i++){P1=LED[i]; delay(50);}for(i=7;i>=0;i--){P1=LED[i]; delay(50);}for(i=0;i<8;i++){P1=LED[i];}for(i=0;i<8;i--){P1=LED[i];delay(0);}}}void delay(float z){int j;float i;for(i=z;i>0;i--)for(j=0;j<=300;j++);}6程序调试本程序运行过程中没有错误。
但对于双键控制流水灯亮灯速度的功能并没有得到实现。
将电路板用数据线连接,打开开关,按钮用来切换模式,一共有五种流动方式,每按一次按钮就会有一种方式,并在LED显示器上面显示出该模式的序号。
结论由于本次课程设计含括了软件和硬件知识,所以在完成课程设计的同时也让我们了解到了我们在软硬件设计和制作方面的不足。
在这一周的设计过程中我所担任的工作是对电路板各元器件的连接和焊接工作,虽然看似简单,但做起来却是一个细致的工作,尤其是对于三极管以及双电阻并联的焊接工作,更是要细中再细,因为这些元器件的引脚距离都是比较近的,一旦将不该连接的引脚焊接到了一起,该元器件就会失它原来的工作效果,还很有可能将整个电路短路。
对于软件方面,是由我们小组的其他成员编辑完成的,虽然最终并没有实现所有要求的设计效果,但对于我们来说,设计实现的功能已经是一个不小的收获了。
负责硬件焊接的我在最初看到代码的时候还是一头雾水,经过组内成员的一起讲解和讨论,最后还是理解的如何运用左移法实现流水灯亮灯的工作原理。
并对如何使用程序调用也有了一定的了解。
当软件和硬件都完成之后,接下来就是将软件的控制程序写入到硬件里面,从而实现软硬结合的过程,来实现设计要求。
在这个环节中我们还是遇到了或多或少的问题,例如蜂鸣器哑声以及LED显示器不工作等问题都让我们困惑了很久,最后还是通过不断的完善代码来实现各个元器件的工作。
通过这次课程设计,我知道了团队的力量,只有互相团结,才能把事情做好,组员分工合作,每个人根据自己的能力范围负责不同的工作,达到事半功倍的效果。
而在这一周的设计过程中让我深深的了解了我在软件、硬件方面的许多不足之处,对于今后的学习和工作都有了一次很好的借鉴经验。