单片机节日彩灯设计,C语言版
基于单片机的节日彩灯设计课程设计

基于单片机的节日彩灯设计课程设计辽宁工业大学单片机原理及接口技术课程设计(论文)题目: 基于单片机的节日彩灯设计院(系):专业班级:学号:学生姓名:指导教师:起止时间:本科生课程设计(论文)课程设计(论文)任务及评语摘要节日彩灯时生活中常常用到的装饰物品。
由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
它集中地运用了单片机、LED、自动控制等技术,是典型的机遇单片机的电子产品。
彩灯控制电路时近年来随着电子技术发展而产生的一种控制装置。
它能使彩灯按照要求有序地被点亮。
本彩灯控制器可控制八个彩灯的一次点亮,能营造出平面上色彩变化的场景,本电路结构简单适合初学者学习。
本文以AT89C51单片机为控制核心,采用模块化得设计方案,运用LED彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮方法。
按键可以再彩灯使用的时候选择不同的亮法,使彩灯变化多样,按键一可以使彩灯常亮,按键二可以使彩灯闪烁,三号按键键使流水线亮,四号按键使彩灯单数等闪亮累计5次后,换双数灯闪亮5次,依次交换。
通过按键能方便使用者选择不同样的亮法。
关键词:LED彩灯;循环;AT89C51III本科生课程设计(论文)目录第1章绪论 .............................................1 第2章课程设计的方案 (3)2.1 概述 (3)2.2 系统组成总体结构 (3)5第3章硬件设计 .........................................3.1 单片机最小系统设计 (5)3.1.1 单片机选择 (5)3.1.2 时钟电路设计 (8)3.1.3 复位电路设计 (8)3.1.4 锁存控制电路 (9)3.1.5 单片机最小系统 (10)3.2 按键控制电路 (11)3.3 LED彩灯显示模块 (12)3.4 系统总电路图 (14)第4章软件设计 (15)4.1 按键扫描子程序设计 (15)4.2 主程序设计 (16)第5章课程设计总结 ..................................... 21 参考文献 (22)IV本科生课程设计(论文)第1章绪论节日彩灯是生活中常常用到的装饰物品。
单片机课程设计简易节日彩灯

单片机课程设计——节日彩灯一、需求分析:1.应用场合应用于各种场合,如学校,企事业单位,家庭等可以应用于节日彩灯的控制、广告灯控制等场所。
2.设计目的1)了解单片机的基本原理以及基本应用;2)提高动手制作单片机开发板的能力;3)掌握基本I/O口的输入输出方法;4)掌握中断的处理方法以及编程方法;5)掌握焊接单片机开发板所需要的最基本的最小系统电路。
3.立题意义通过这个实验,能够对同学们的动手能力有所提高和培养,提高同学对单片机的基本原理的理解,学会一些单片机的简单应用。
二、硬件设计方案在设计中用到单片机最小系统:复位电路以及时钟(晶振)电路、程序烧写电路以及各种颜色的彩灯。
复位电路:复位是单片机的初始化操作,目的是使CPU以及各个寄存器处于一个确定的初始状态。
分为手动复位方式和上电自动方式。
时钟电路:51单片机的时钟信号可由芯片内部的震荡电路产生,也可以由外部产生。
程序烧写电路:在使用串口进行烧写电路时,用到MAX232芯片以及几个104瓷片电容。
用STC软件进行程序烧写。
三、软件设计方案首先单片机执行四种方案的程序等待中断。
中断中判断是第几次执行相应的程序。
程序流程图如图所示:图1-1 程序流程图四、系统调试问题一:在焊接电路过程中,电源正负极电压为2V解决方法:在焊接中将电源指示灯直接连接在正负极上,没有加限流电阻导致,经修改后电路正常。
问题二:在系统软件调试中,中断执行时不能返回程序解决方法:在中断中灯的延时指令for(i=0;i<200;i++) for(j=0;j<200;j++);修改为for(i=0;i<149;i++)for(j=0;j<149;j++);后,单片机正常执行指令。
五、总结通过本次课程设计,加强了我的动手操作能力,将课堂上所学的知识应用到实践中来,并且了解了单片机的基本工作原理和使用方法,在实践过程中练习了IO口的输入输出方式,熟练的掌握了中断的处理及其编程方法,掌握焊接单片机开发板所需要的最基本的最小系统电路。
51单片机彩灯课程设计

51单片机彩灯课程设计一、课程目标知识目标:1. 理解51单片机的基本原理,掌握其内部结构及功能;2. 学习并掌握C语言编程基础,能编写简单的程序控制51单片机;3. 掌握51单片机I/O口的应用,理解彩灯电路的原理及程序设计方法;4. 了解电子元器件的选择原则,能正确选用元器件并进行电路搭建。
技能目标:1. 能够运用C语言编写51单片机控制彩灯的程序;2. 学会使用相关开发工具和调试设备,具备独立搭建和调试彩灯电路的能力;3. 提高动手实践能力,培养解决实际问题的能力。
情感态度价值观目标:1. 培养学生对单片机及电子技术的兴趣,激发学习热情;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 培养学生严谨、细致、勇于创新的科学态度,增强自信心。
本课程针对高年级学生,结合学科特点,注重理论与实践相结合,旨在提高学生的编程能力、动手实践能力和创新能力。
通过课程学习,使学生能够独立完成51单片机彩灯的设计与制作,为后续深入学习电子技术打下坚实基础。
二、教学内容1. 51单片机原理及结构:介绍51单片机的内部结构、工作原理及特点,使学生了解单片机的基本组成和功能。
教材章节:《单片机原理与应用》第一章。
2. C语言编程基础:学习C语言的基本语法、数据类型、运算符、控制语句等,为编写单片机程序打下基础。
教材章节:《C语言程序设计》第一章至第四章。
3. 51单片机I/O口应用:讲解51单片机I/O口的使用方法,分析彩灯电路原理,使学生掌握I/O口编程及电路设计。
教材章节:《单片机原理与应用》第三章。
4. 彩灯程序设计:学习彩灯控制程序编写方法,包括流水灯、闪烁灯等效果的设计与实现。
教材章节:《单片机原理与应用》第四章。
5. 电子元器件选择与电路搭建:介绍常用电子元器件,学习元器件的选择原则,掌握电路搭建方法。
教材章节:《电子技术基础》第一章。
6. 开发工具与调试:学习使用51单片机开发工具(如Keil、Proteus等),掌握程序下载、调试及排错方法。
基于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)一、概述传统的制灯工艺和现代科学技术紧密结合,将电子、建筑、机械、遥控、声学、光导纤维等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一。
在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化。
它的主要器件是寄存器。
现如今寄存器是数字系统常见的重要部件,除在计算机中广泛用于存放中间数据外,它在其他方面的应用,目前在教材中只介绍可构成环形或扭环形计数器。
基于单片机的节日彩灯设计

单片机课程设计题目:院(系):专业:学号:姓名:指导教师:摘要彩灯控制器在我们的日常生活中有着重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。
本次报告中设计的花样彩灯控制器是其中较简单的,但这是进行复杂设计的基础。
查阅相关资料,用简单的输入输出端口等硬件,结合实际彩灯的亮灭控制过程进行设计。
利用键盘上的灯实现灯的各种形式的变换,使彩灯变换的样式更多,克服了节日彩灯变换样式单调的缺点,使节日彩灯朝着变换多种多样的方式发展。
关键词:可编程节日彩灯;循环;控制高低电平;实现对彩灯的控制目录目录引言 (4)1、设计目的与要求 (5)2、设计总体方案 (5)3、模块电路的设计 (7)4、独立设计部分 (10)5、焊接制作与调试结果及其分析 (12)6、设计过程中的问题及其解决方案 (13)7、心得体会 (13)8、改进工作展望 (14)参考文献 (14)附录一 (15)附录二 (17)附录三 (19)1 设计目的与要求1.1引言在现代生活中,彩灯作为一种景观,安装在建筑物的适当地方。
一是作为装饰增添节日气氛,二是有一种广告宣传的作用:用在舞台上增强晚会灯光效果。
彩灯控制器在我们的日常生活中有着重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。
本次报告中设计的花样彩灯控制器是其中较简单的,但这是进行复杂设计的基础。
数码管是一种半导体发光器件,其基本单元是发光二极管。
通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。
由于它的价格便宜、使用简单,在电器特别是家电领域应用极为广泛,空调、热水器、冰箱等等。
绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。
可编程节日彩灯打破常规彩灯闪烁固定变化的现状,可根据人们不同的意愿进行编程设计出想要的变换的色彩效果。
查阅相关资料,用简单的输入输出端口等硬件,结合实际彩灯的亮灭控制过程进行设计。
《单片机应用技术(C语言)》实训课件—3.2 按键控制多种花样霓虹灯设计

硬件设计
输入 : 按键按下, I/O引脚为0 按键弹起, I/O引脚为1
软件设计思路
If else if Switch语句
#include <reg51.h> //包含头文件reg51.h,定义了51单片机专用寄存器 #define TIME 1200 //定义符号常量TIME,代表常数1200,关于符号常量 sbit K1=P0^0; //定义位名称 sbit K2=P0^1; sbit K3=P0^2; sbit K4=P0^3;
else P1=0x00;
//没有按键按下,8个灯全部点亮
}
}
软件去抖流程
四、举一反三
举一反三1
用4个按键K1,K2,K3,K4控制花样霓虹灯的具体要求:
没有按键按下时:8个LED全灭 当K1按下时:8个LED全亮 当K2按下时:高4位连接的LED点亮 当K3按下时:低4位连接的LED点亮 当K4按下时:8个LED交叉亮灭
//显示字左移一位
}
}
}
else P1=0x00;
//没有按键按下,8个灯全部点亮
}
}
if (表达式) {
语句组1; } else { 语句组2; }
选择语函数
{
unsigned char i,w;
P1=0xff;
//LED全灭
while(1)
{
if(K==0)
//第一次检测到按键K按下
当K第一次按下,显示第一种模式; 第二次按下,显示第二种模式; 第三次按下,显示第三种模式; 第四次按下,显示第四种模式, 第五次按下,又显示第一种模式。
程序设计思路
判断按键并累加次数 根据次数进行跳转 判断按键是否弹起
单片机c语言节日彩灯控制器设计

湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:节日彩灯控制器的设计学生姓名:所在学院:信息科学与工程学院专业班级:电子信息工程1102班学生学号:指导教师:***2013年12月29日课程设计任务书节日彩灯是生活中常常的装饰物品,是我国普遍流行的传统的民间的综合工艺品。
彩灯艺术也是灯的综合性的装饰艺术。
在当今社会里,彩灯已经成为我们生活当中的一部分,能给我们带来视觉上的享受,还能美化我们的生活。
彩灯控制器主要是通过产生有规律变化的脉冲信号来实现彩灯的各种变化,他集中的应用了单片机、LED、自动控制等技术,是典型的基于单片机的电子产品。
本文以AT89C51单片机为控制核心,采用模块化的设计方案,运用LED彩灯、按键等组成电路,实现才在开启时满足不一样的闪亮方法及方式。
按K1—开始,按此键则灯开始流动(由上而下)。
K2—停止,按此键则停止流动,所有灯为暗。
K3—上,按此键则灯由上向下流动。
K4—下,按此键则灯由下向上流动。
按K5—从亮到暗到亮循环。
通过按键能方便使用者选择不一样的亮法。
并用仿真软件进行仿真按不同的方式点亮LED。
还有就是这节日彩灯的制作成本低、精确度高、装调容易,为节日增添气氛,具一定的市场价值,因此制作了此节日彩灯。
关键词:节日彩灯;单片机;LED;设计;仿真一、概述 (1)二、芯片及元件原理 (1)1.AT89S51单片机 (1)1.1 AT89S51结构 (1)1.2 AT89S51引脚描述 (2)2.方案论证 (3)2.1方案一 (3)2.2方案二 (4)2.2方案选择 (4)三、硬件电路设计与分析 (4)1.定时与复位模块 (4)1.1时钟电路 (4)1.2复位电路 (5)2.按键模块与输出模块 (5)四、软件电路设计与分析 (6)1.原理图 (6)2.程序设计 (6)2.1程序设计 (6)2.2程序 (8)五、结论分析与心得 (11)1.结论分析 (11)1.1结论 (11)1.2设计与调试问题及解决方法 (11)2.心得体会 (11)六、参考文献 (12)一、概述19世纪兴起的单片机以其先天的便捷、稳定的优点在现代电子技术电路中占有越来越重要的地位。
单片机节日彩灯控制器的课程设计论文

1 任务及要求1.1 设计任务1. 设计一个基于单片机的节日彩灯控制器。
2. 设计出硬件电路;3. 设计出软件编程方法,并写出源代码;4. 用PROTEUS进行仿真;1.2 设计要求1.用C语言或汇编语言编实现程序设计。
2.利用查表,中断等方式实现目的。
3.系统的各各功能模块要清楚,有序。
4.程序运行时有友好的用户界面2 设计思想2.1 硬件设计思想节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出(I/O)接口电路集成在一块集成电路芯片上的特点。
通过其与发光二极管及驱动电路的连接,从而构成一个完整的硬件电路。
然后通过对单片机的ROM进行编程,实现对彩灯闪烁的控制。
2.2 软件设计思想通过编程改变P1口的状态,从而改变彩灯的闪烁。
本程序主要可分为主程序模块,比较模块LOOP0、LOOP1、LOOP2、LOOP3、LOOP4、LOOP5和状态显示程序模块k1_light、k2_light、k3_light、k4_light延时程序模块del10ms 等模块。
其中延时时间t1 = T×20×248;t1 = T×C3H×FFH;T为单片机的机器周期3 电路原理与电路图3.1 电路原理以AT-89C52单片机作为主控核心,与按键、电阻等较少的辅助硬件电路相结合,利用软件实现对LED彩灯进行控制,材料有单片机AT89C52、多色发光二极管LED、电阻RES。
3.2 电路原理图4 流程图与算法描述4.1 流程图图4-1 主程序流程图4.2 算法描述本程序主要可分为主程序模块,比较模块,状态显示程序模块和延时程序模块。
比较模块LOOP0、LOOP1、LOOP2、LOOP3、LOOP4、LOOP5。
状态显示程序模块k1_light、k2_light、k3_light、k4_light延时程序模块del10ms等模块。
5程序清单org 0000hljmp startorg 0003hljmp ext1org 0020hstart: mov r0, #0ffh ; 对r0赋值,r0为所设标志位 setb ea ; 开中断setb ex0 ; 允许外部中断0申请中断setb it0 ; 外部中断0为跳变方式触发 mov sp, #70h ; 设置中断loop0: cjne r0, #0ffh, loop1 ; r0不为ff, 转到loop1ajmp main_light ; 否则执行左右流水灯loop1: cjne r0, #01h, loop2 ; r0不为01, 转到loop2ajmp k1_light ; 否则执行左向流水灯loop2: cjne r0, #02h, loop3 ; r0不为02, 转到loop3ajmp K2_light ; 否则执行右向流水灯loop3: cjne r0, #03h, loop4 ; r0不为03, 转到loop4ajmp k3_light ; 否则执行双亮点向中间移动loop4: cjne r0, #04h, loop5 ; r0不为04, 转到loop5ajmp k4_light ; 否则执行双亮点向两边移动loop5: ajmp loop0 ; 返回重新查询ext1: clr ea ; 关中断push accpush pswmov a, p1 ; 读入键值anl a, #0fh ; 屏蔽高四位mov 30h, a ; 键状态存入30hlcall del10msmov a, p1 ; 再次读入键值anl a, #0fhcjne a, 30h, pass ; 两次键值不同,是抖动,退出中断ajmp k1_check ; 如果相等,进行键识别k1_check: cjne a, #0eh, k2_check ; 不是k1, 判断是不是k2mov r0, #01h ; 是k1, 置标志为01ajmp passk2_check: cjne a, #0dh, k3_check ; 不是k2, 判断是不是k3mov r0, #02h ; 是k2, 置标志为02ajmp passk3_check: cjne a, #0bh, k4_check ; 不是k3, 判断是不是k4mov r0, #03h ; 是k3, 置标志为03ajmp passk4_check: cjne a, #07h, pass ; 不是k4, 退出中断mov r0, #04h ; 是k4, 置标志为04ajmp passpass: pop psw ; 现场恢复pop accsetb ea ; 开中断reti ; 中断返回main_light: mov r7, #08h ; 左右流水灯程序mov r6, #06hmov a, #0fehl_loop: mov r1, a ; r1保存现在亮点位置,做样式变换时从该处开始mov p0, alcall del100msrl adjnz r7, l_loopmov a, #0bfhr_loop: mov r1, amov p0, alcall del100msrr adjnz r6, r_loopajmp loop0k1_light: mov r1, a ; 左向流水灯mov p0, alcall del100msrl amov r1, aajmp loop0k2_light: mov r1, a ; 右向流水灯mov p0, alcall del100msrr amov r1, aajmp loop0k3_light: mov p0, #07eh ; 双亮点向中间移 lcall del100msmov p0, #0bdhlcall del100msmov p0, #0dbhlcall del100msmov p0, #0e7hlcall del100msajmp loop0k4_light: mov p0, #0e7h ; 双亮点向两边移lcall del100msmov p0, #0dbhlcall del100msmov p0, #0bdhlcall del100msmov p0, #07ehlcall del100msajmp loop0del10ms: ; 10ms延时子程序(12M) mov r5, #20temp1: mov r4, #248djnz r4, $djnz r5, temp1retdel100ms: mov r3, #0c3h ;100.036mstemp2: mov r2, #0ffh ;511usdjnz r2, $djnz r3, temp2retend6仿真结果图 6.1 从上到下闪烁图 6.2 从下到上闪烁图 6.3 上下同时闪烁7 设计总结7.1 设计体会通过这次的设计使我认识到我对单片机方面的知识太重要了,对于书本上的很多知识还不够熟悉,有很多我们需要掌握的知识还没掌握,我会在以后的学习生活中弥补我所缺少的知识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告书课题名称节日彩灯控制器设计 姓 名 学 号 院、系、部电气工程系 专 业电子工程及其自动化 指导教师2013年 7 月10日※※※※※※※※※※※※※ ※※ ※※※※※※※※※2010级单片机 课程设计节日彩灯控制器设计一、设计目的1、了解节日彩灯控制器的工作原理2、掌握电路板的实物焊接3、掌握独立电源设计方法和原理二、设计要求1、设计4个按键S0、S1、S2、S3,2、S0—开始,按此键则灯开始流动(由上而下)。
3、S1—停止,按此键则停止流动,所有灯为暗。
4、S2—上,按此键则灯由上向下流动。
5、S3—下,按此键则灯由下向上流动。
三、硬件电路设计3.1系统结构框图图3-1 系统结构框图节日彩灯控制系统主要由单片机、LED灯、5V电源及开关组成3.2 STC89C52单片机最小系统单片机最小系统包括:单片机,复位电路,晶振电路。
1、单片机的介绍:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入“1”后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH 编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口作为AT89C51的一些特殊功能口,管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)2、复位的介绍:复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
单片机的RST引脚为主机提供了一个外部复位信号输入口。
复位按键按下以前,RST引脚为低电平。
按下复位按键后,RST引脚得到两个机器周期以上的高电平,单片机的复位方式可由手动复位方式完成。
3、晶振的介绍:外接石英晶体或者陶瓷谐振器以及电容C1、C2接在放大器的反馈回路(AT89C52内部有一个用于构成内部振荡器的高增益反相放大电路,XTAL1、XTAL2分别是该放大器的输入和输出端)中构成并联振荡电路。
为了使装置能够被外部时钟信号激活,XATL1应该有效,而XTAL2应该被悬空。
由于输入到内部的时钟信号电路通过了一个二分频的信号,外部信号的工作周期比没有别的要求,但是最大值和最小值的大小可以在数据表上观察出来。
3.3 LED显示电路主要由8个LED灯与保护电阻组成图3-3 LED灯显示电路3.4系统电路原理图由按键控制功能的LED工作的方式,其中的LED采取共阳极接法通过依次向连接LED的I/O口送出低电平,可实现题目要求的功能图3-4系统电路原理图四、软件设计4.1设计思路本设计由主程序、子程序和延时程序组成。
其中,子程序的关键在于设计了两个数组,通过数组中的初始数值控制二极管的亮、灭。
主程序除了调用二极管显示子程序外,还一直保持查询是否有功能键按下,一旦有按键按下,就会进入相应的按键处理,实现对发光二极管的控制。
4.2程序流程图图4-1 程序流程图五、源程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charvoid san();void wu();void delay(uint);sbit key2=P3^5;//关闭彩灯的开关sbit key1=P3^4;//启动彩灯的开关sbit key3=P3^3;//控制彩灯右移的开关sbit key4=P3^1;//控制彩灯左移的开关uchar temp;//定义一个无符号字符型数据变量uchar temp1;//定义一个无符号字符型数据变量uchar temp2;/定义一个无符号字符型数据变量uint a;int c;void main()//主程序{while(1)//判断哪个开关被按下{if(key1==0){san();}if(key2==0){P1=0xff;}if(key3==0){san();}if(key4==0){wu();}}}void san(){uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义一个数组for(a=0;a<8;a++){temp=table[a];//将数组赋值给变量tempP1=temp;delay(300);//延时}}void delay(uint z)//延时程序{uint x,y;for(x=100;x>0;x--)for(y=z;y>0;y--);}void wu(){uchar table1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//定义一个数组for(c=7;c>-1;c--){temp1=table1[c];//将数组赋值给变量temp1P1=temp1;delay(300);//延时}}七、设计总结经过几天的努力,终于完成了本学期的单片机课程设计,过程虽是辛苦的,但从中我学到了很多东西,通过这次课程设计,使我对硬件电路的工作原理有了进一步的学习,进一步的认识。
在这次课程设计中我遇到了一些困难,但在老师的指导和同学的帮助,再加上自己查阅了些许资料的情况下都解决了。
虽然课程设计进行的不够顺利,但还是完成了任务,使自己的专业知识又得到了提升。
在对单片机有了进一步的认识,巩固了课上学习的理论知识,对于计算机汇编语言的系统化整体化有了更深的认识。
在编写程序的过程中遇到了很多困难经过反复修改不断修正最终才能得以执行。
整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上。
在做的过程中也遇到一些问题,首先是程序的编写,我们用的是keil软件,经过不断的调试修改终于使程序编译成功,然后将其加到Portel中设计好的电气图中进行仿真,没有错误。
在硬件焊接的过程中主要是端口的选择,开始由于端口没连对,使我们的四个按键无法控制彩灯亮的方式,还有就是焊接时要小心别焊错了。
整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的,平时基础知识学的好的同学做起来就是娴熟,同时意识到作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。
我们这次实习所遇到的多半问题多数都是由于我们不够严谨。
另外就是合作的重要性,每个人都有他的特长一个人难免有疏漏,只有大家共同努力才能顺利的完成任务。
不过无论做什么事情,我们都要坚强,有足够的毅力与决心,有足够的挑战困难的勇气,那样就能把事情做好做成功。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。
通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。
在方案设计选择和芯片的选择上,培养了我的综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。
还锻炼我的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。
同时感谢老师和同学的指导帮助。
八、参考文献1、《C语言程序设计习题集(第二版)》,陈朔鹰陈英主编,人民邮电出版社,2003年2月。
2、《C程序设计(第二版)》,谭浩强编,清华大学出版社,1999年12月。
3、刘瑞挺主编,计算机二级教程,南开大学出版社,1996年10月。
4、陈朔鹰等编著,C语言程序设计基础教程,兵器工业出版社,1994年9月。