单片机课程设计报告基于单片机的简易流水灯.doc

上传人:土8路 文档编号:10300336 上传时间:2021-05-06 格式:DOC 页数:21 大小:4.47MB
返回 下载 相关 举报
单片机课程设计报告基于单片机的简易流水灯.doc_第1页
第1页 / 共21页
单片机课程设计报告基于单片机的简易流水灯.doc_第2页
第2页 / 共21页
单片机课程设计报告基于单片机的简易流水灯.doc_第3页
第3页 / 共21页
单片机课程设计报告基于单片机的简易流水灯.doc_第4页
第4页 / 共21页
单片机课程设计报告基于单片机的简易流水灯.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机课程设计报告基于单片机的简易流水灯.doc》由会员分享,可在线阅读,更多相关《单片机课程设计报告基于单片机的简易流水灯.doc(21页珍藏版)》请在三一文库上搜索。

1、 单片机课程设计报告学生姓名学号教学院系电气信息学院专业年级 指导教师李杰完成日期2011年6月25日目录第一章 基础设计报告- 2 -1.1设计题目- 2 -1.2 流程图- 2 -1.3 设计任务- 2 -1.4 创建新工程和文件- 2 -1.4.1创建Keil4新工程- 2 -1.4.2创建Proteus新文件- 6 -1.5 运行及调试- 8 -第二章 提高设计报告- 10 -2.1 设计题目- 10 -2.2 流程图- 10 -2.3 设计任务- 11 -2.4 编写程序,设计单片机电路图- 11 -2.5 交通灯各部分功能- 12 -2.5.1晶体振荡和复位电路- 12 -2.5.

2、2 上拉电阻- 12 -2.5.3 数码管显示和发光二极管- 12 -2.5.4 按键- 13 -2.5.5单片机模块- 14 -2.6 程序运行及调试- 14 -2.6.1仿真- 17 -第三章 提高设计报告任务说明书- 19 -3.1 小组成员及学号- 19 -3.2 本人工作任务详细说明- 19 -第四章 课程设计心得- 20 -参考文献:- 20 -第一章 基础设计报告1.1设计题目 基于单片机的简易流水灯 开始1.2 流程图依次点亮8个个发光二极管 while循环 延时1.3 设计任务 利用单片机的端口输出,自己设计流水灯电路图和程序,点亮8个发光二极管。1.4 创建新工程和文件1.

3、4.1创建Keil4新工程1.启动keil4软件,点击project图1.4.1 启动工程图2.选择New uVision Project,创建新工程,如下图所示:图1.4.2 新建工程图3.选择单片机类型AT89C51,点击建立工程,如下图所示:图 1.4.3 选择单片机类型 图 1.4.4 工程建立完成4.新建文件,如下图所示:图 1.4.5 建立新文件5.新文件命名,因为用的是C语言编程,所以新文件后缀名为 .c,如下图所示:图 1.4.6 新文件保存6.将新文件加入工程,添加方法如下图所示:图 1.4.7 将新建文件添加的工程7.点击“target options”,选择output,

4、选中生成hex文件,如下图所示:图 1.4.8 选择生成hex文件选项8.Keil4新工程和文件建立完成,在操作窗口进行编程操作。如下图所示:图 1.4.9 编程操作图1.4.2创建Proteus新文件1.打开Proteus,进入操作界面,创建新文件。进入开发环境Proteus后,选择“文件/新建”命令出现“新建设计”窗口属性对话框,选择A4,如图所示:图1.4.10 窗口属性图2.进入元件库,在元件库中查找所需元件,并双击添加,入下图所示:选择“库/拾取元件”,进入元件库。图1.4.11 元件库图添加所需元件。图1.4.12 图库(51单片机)3.双击将从元件库中查找到的元件,添加到设计图上

5、,如图所示:图1.4.13 添加元件图4.完成后的图如下: 图1.4.14 流水灯电路图1.5 运行及调试编程程序: #include #define uchar unsigned char #define uint unsigned int void delay(uint a); void main() while(1) P0=0xfe;delay(1000); P0=0xfd;delay(1000); P0=0xfb;delay(1000); P0=0xf7;delay(1000); P0=0xef;delay(1000); P0=0xdf;delay(1000); P0=0xbf;del

6、ay(1000); P0=0x7f;delay(1000); void delay(uint a) uint i,j; for(i=a;i0;i-) for(j=123;j0;j-) ; 调试与运行:程序写好后,点击keil的编译运行调试,生成hex文件,如下图所示:图1.5.1 运行界面图在Proteus中双击图中的单片机,选中所生成的hex文件,点击确定,单片机开始仿真,如下图所示:图1.5.2 仿真图第二章 提高设计报告2.1 设计题目 基于单片机的简易交通灯 2.2 流程图数码管倒计数开始,东西绿灯,南北红灯 每减一个数判断是否进入中断调数数码管开始倒计数,东西红灯,南北绿灯 每减一个

7、数判断是否进入中断调数外部触发进入中断外部按键控制time的增加或者减少调数完成,外部按键控制中断结束返回断点计数m0,m-;计数m0,m-;外部触发m=time;m=time;外部触发 开始m初值为10图2.2.1 交通灯流程图2.3 设计任务(1)收集资料,了解交通灯的大致变化规律(2)确定I/O口的功能(3)用Keil软件编写程序,用Proteus软件设计电路图(4)实现交通灯的简单仿真2.4 编写程序,设计单片机电路图建立Keil工程文件,开始编写程序;打开Proteus,按要求画好单片机仿真电路图。2.5 交通灯各部分功能2.5.1晶体振荡和复位电路 电路如图所示:下图上边为复位电路

8、,下边为晶振电路。 图2.5.1晶体振荡和复位电路图2.5.2 上拉电阻单片机的P0口外接时要接上拉电阻,如下图所示:图2.5.2 上拉电阻图2.5.3 数码管显示和发光二极管交通十字路口红绿灯变换,是根据数码管上显示的数来变换的,当数码管上显示的数小于5时,数码管和十字路口的红绿灯开始闪烁,提示红绿要开始变换了,来往车辆做好准备。图2.5.3.1 数码管图 2.5.3.2 发光二极管2.5.4 按键十字路口的红绿灯正常变换时,当按下“开始调数”触发中断,进入调数状态,此时可以分别按下“加1”、“减1”来改变红绿灯每次变换的时间,当调数完成后,按下“调数完成”结束中断,返回程序断点继续执行原程

9、序,只是此时红绿灯每次变换的时间更改为中断中所调的数。如下图所示:图2.5.4 按键2.5.5单片机模块图2.5.5 51单片机2.6 程序运行及调试#include#include#define uchar unsigned char#define uint unsigned intvoid display(int m );void delay1(uint a);void delay(uint a);sbit key1=P35;sbit key2=P33;sbit key3=P34;bit g;int a,time=11;void main() int i,m=time; EA=1; /开总

10、中断 EX0=1; /开外部中断0 IT0=0; /外部中断0边沿触发,下降沿触发 while(1) while(m0)P0_0=0;P0_1=1;P0_2=1;P0_3=0; if(m=3)switch(m)case 3: for(i=0;i120;i+) display(m); delay(500); P0_0=1;P0_3=1;delay1(250);P0_0=0;P0_3=0;m-;delay(250);break;case 2: for(i=0;i120;i+) display(m); delay(500); P0_0=1;P0_3=1;delay1(250);P0_0=0;P0_3

11、=0;m-;delay(250);break;case 1: for(i=0;i3)for(i=0;i0) P0_0=1;P0_1=0;P0_2=0;P0_3=1; if(m=3)switch(m)case 3: for(i=0;i120;i+) display(m); delay(500); P0_1=1;P0_2=1;delay1(500);P0_1=0;P0_2=0;m-;delay1(500);break;case 2: for(i=0;i120;i+) display(m); delay(500); P0_1=1;P0_2=1;delay1(500);P0_1=0;P0_2=0;m-

12、;delay1(500);break;case 1: for(i=0;i3)for(i=0;i0) a-; /-延时-void delay1(int N) int i,j;for(i=N;i0;i-)for(j=123;j0;j-); /-中断- void exter0()interrupt 0 EX0=0;a=1; display(time); delay1(100);while(a) display(time);if(key2=0) delay1(100); if(key2=0) while(key2=0) time+; display(time);if(key3=0)delay1(100

13、);if(key3=0)while(key3=0)time-;display(time);if(key1=0)delay1(100);if(key1=0) while(key1=0)a=0;EX0=1; 2.6.1仿真程序经过编译后生成hex文件,双击单片机元件,选中生成的hex文件,开始仿真。仿真结果如下图所示:图 2.6.1 东西绿灯,南北红灯图 2.6.2 东西红灯,南北绿灯第三章 提高设计报告任务说明书3.1 小组成员及学号姓名学号屈直0807040114王林建08070402253.2 本人工作任务详细说明根据选题基于单片机的交通灯我首先在网上查找相关设计资料,了解实验内容以及基本的

14、任务,这是为了让这次设计更加完善。交通灯的设计中主要完成的是电路图的绘制,以及与同伴讨论联系程序与电路的结合问题。设计完成后,根据实验电路图和程序以及过程中的结论完成实验报告。第四章 课程设计心得本次课程设计使我认识到了单片机这门学科的重要性,以及根据它产生的延伸知识。通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认识和理解,重新让我认识到了这门学科的在应用方面的广阔前景,并且通过实践与操作更加丰富了自己的知识。扩展了知识面,了解了理论知识与实际操作相结合的意义,懂得了如何分析电路与解决实际问题,提高了自己吃力问题的能力,从各方面提高了自己的综合素质。在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督,学会了如何合作,也为以后的工作学习打下基础。参考文献:1 黄迪明、余勤.C语言程序设计教程M. 国防工业出版社出版,20072 李建忠.单片机原理及应用M. 西安电子科技大学出版社出版,20103 仝迪、顾三春. 电子设计 指导书成都M. 西南石油大学电子信息工程学院,2010

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1