![基于单片机的简易流水灯_第1页](http://file4.renrendoc.com/view/1e88de6384934c9b8c26afcaff4304ed/1e88de6384934c9b8c26afcaff4304ed1.gif)
![基于单片机的简易流水灯_第2页](http://file4.renrendoc.com/view/1e88de6384934c9b8c26afcaff4304ed/1e88de6384934c9b8c26afcaff4304ed2.gif)
![基于单片机的简易流水灯_第3页](http://file4.renrendoc.com/view/1e88de6384934c9b8c26afcaff4304ed/1e88de6384934c9b8c26afcaff4304ed3.gif)
![基于单片机的简易流水灯_第4页](http://file4.renrendoc.com/view/1e88de6384934c9b8c26afcaff4304ed/1e88de6384934c9b8c26afcaff4304ed4.gif)
![基于单片机的简易流水灯_第5页](http://file4.renrendoc.com/view/1e88de6384934c9b8c26afcaff4304ed/1e88de6384934c9b8c26afcaff4304ed5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计PAGE-20-单片机课程设计报告学生姓名学号教学院系电气信息学院专业年级指导教师目录第一章基础设计报告 -2-1.1设计题目 -2-1.2流程图 -2-1.3设计任务 -2-1.4创建新工程和文件 -2-HYPERLINK\l"_Toc296548736"1.4.1创建Keil4新工程 -2-1.4.2创建Proteus新文件 -6-1.5运行及调试 -8-HYPERLINK\l"_Toc296548739"第二章提高设计报告 -10-2.1设计题目 -10-2.2流程图 -10-2.3设计任务 -11-2.4编写程序,设计单片机电路图 -11-2.5交通灯各部分功能 -12-2.5.1晶体振荡和复位电路 -12-2.5.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依次点亮8个个发光二极管while循环延时1.3设计任务 利用单片机的端口输出,自己设计流水灯电路图和程序,点亮8个发光二极管。1.4创建新工程和文件1.4.1创建Keil4新工程1.启动keil4软件,点击project图1.4.12.选择NewuVisionProject,创建新工程,如下图所示:图1.43.选择单片机类型AT89C51,点击建立工程,如下图所示:图1.4图1.44.新建文件,如下图所示:图1.45.新文件命名,因为用的是C语言编程,所以新文件后缀名为.c,如下图所示:图1.4.6新文件保存6.将新文件加入工程,添加方法如下图所示:图1.4.7将新建文件添加的工程7.点击“targetoptions”,选择output,选中生成hex文件,如下图所示:图1.4.8选择生成hex文件选项8.Keil4新工程和文件建立完成,在操作窗口进行编程操作。如下图所示:图1.4.9编程操作图1.4.2创建Proteus新文件1.打开Proteus,进入操作界面,创建新文件。进入开发环境Proteus后,选择“文件/新建”命令出现“新建设计”窗口属性对话框,选择A4,如图所示:图1.42.进入元件库,在元件库中查找所需元件,并双击添加,入下图所示:选择“库/拾取元件”,进入元件库。图1.4.添加所需元件。图1.4.123.双击将从元件库中查找到的元件,添加到设计图上,如图所示:图1.4.4.完成后的图如下:图1.4.141.5运行及调试<1>编程程序: #include<at89x51.h> #defineucharunsignedchar#defineuintunsignedint voiddelay(uinta); voidmain() { 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;delay(1000); P0=0x7f;delay(1000); } } voiddelay(uinta) { uinti,j; for(i=a;i>0;i--) for(j=123;j>0;j--) ; }<2>调试与运行:程序写好后,点击keil的编译运行调试,生成hex文件,如下图所示:图1.在Proteus中双击图中的单片机,选中所生成的hex文件,点击确定,单片机开始仿真,如下图所示:图1.5.2仿真图第二章提高设计报告2.1设计题目基于单片机的简易交通灯2.2流程图数码管倒计数开始,东西绿灯,南北红灯数码管倒计数开始,东西绿灯,南北红灯每减一个数判断是否进入中断调数数码管开始倒计数,东西红灯,南北绿灯每减一个数判断是否进入中断调数外部触发进入中断外部按键控制time的增加或者减少调数完成,外部按键控制中断结束返回断点计数m>0,m--;计数m>0,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晶体振荡和复位电路电路如图所示:下图上边为复位电路,下边为晶振电路。图2.5.1晶体振荡和复位电路图2.5.2上拉电阻 单片机的P0口外接时要接上拉电阻,如下图所示:图2.5.2上拉电阻图2.5.3数码管显示和发光二极管 交通十字路口红绿灯变换,是根据数码管上显示的数来变换的,当数码管上显示的数小于5时,数码管和十字路口的红绿灯开始闪烁,提示红绿要开始变换了,来往车辆做好准备。图2.5.3.1数码管图2.5.3.22.5.4按键 十字路口的红绿灯正常变换时,当按下“开始调数”触发中断,进入调数状态,此时可以分别按下“加1”、“减1”来改变红绿灯每次变换的时间,当调数完成后,按下“调数完成图2.5.4按键2.5.5单片机模块图2.5.551单片机2.6程序运行及调试 #include<AT89x51.h>#include<stdio.h>#defineucharunsignedchar#defineuintunsignedintvoiddisplay(intm);voiddelay1(uinta);voiddelay(uinta);sbitkey1=P3^5;sbitkey2=P3^3;sbitkey3=P3^4;bitg;inta,time=11;voidmain(){ inti,m=time; EA=1;//开总中断EX0=1; //开外部中断0 IT0=0;//外部中断0边沿触发,下降沿触发while(1) { while(m>0) { P0_0=0;P0_1=1;P0_2=1;P0_3=0; if(m<=3) { switch(m) { case3:{for(i=0;i<120;i++) {display(m);delay(500); } P0_0=1;P0_3=1;delay1(250);P0_0=0;P0_3=0;m--;delay(250);} break; case2:{for(i=0;i<120;i++) {display(m);delay(500); } P0_0=1;P0_3=1;delay1(250);P0_0=0;P0_3=0;m--;delay(250);} break; case1:{for(i=0;i<120;i++) {display(m);delay(500); } P0_0=1;P0_3=1;delay1(250);P0_0=0;P0_3=0;m--;delay(250);} break; }} } if(m>3) { for(i=0;i<120;i++) {display(m);delay(500); } m--; } } m=time; while(m>0) { P0_0=1;P0_1=0;P0_2=0;P0_3=1; if(m<=3) { switch(m) { case3:{for(i=0;i<120;i++) {display(m);delay(500); } P0_1=1;P0_2=1;delay1(500);P0_1=0;P0_2=0;m--;delay1(500);} break; case2: {for(i=0;i<120;i++) {display(m);delay(500); } P0_1=1;P0_2=1;delay1(500);P0_1=0;P0_2=0;m--;delay1(500);} break; case1:{for(i=0;i<120;i++) {display(m);delay(500); } P0_1=1;P0_2=1;delay1(500);P0_1=0;P0_2=0;m--;delay1(500);} break; } } if(m>3) { for(i=0;i<120;i++) {display(m);delay1(500); } m--; } } m=time;}//数码管输出显示voiddisplay(intm) { charstring[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0x7D,0X07,0X7F,0X6F}; intL1,L2; L1=m/10;L2=m%10; g=~g;if(g){P1=0xff;P2=string[L1];P1=0xfe;} else {P1=0xff;P2=string[L2];P1=0xfd;} }//延时voiddelay(uinta){ while(a>0)a--; }//延时 voiddelay1(intN){ inti,j; for(i=N;i>0;i--) for(j=123;j>0;j--); }//中断voidexter0()interrupt0{ 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); 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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼杉木林地买卖合同
- 对讲机购销合同
- 手房中介购房合同
- 网络工程合同协议
- 锅炉采购合同
- 交通行业智能交通管控方案
- 钢筋购买销售合同
- 卫星通信系统建设工程承包合同
- 劳动合同和人力资源公司签订
- 光伏安装劳务分包合同
- 中华人民共和国保守国家秘密法实施条例培训课件
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 2024年潍坊工程职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- TTT培训教材(-55张)课件
- XXX酒店预收款收据 Deposit Receipt办公模板
- 六郁汤-古今医鉴卷四-方剂加减变化汇总
- 汽车公司APQP质量门检查表
- 数据结构教学课件:chapter8
- 玉米杂交种制种技术汇总
- T∕ACSC 01-2022 辅助生殖医学中心建设标准(高清最新版)
- 线性空间的定义与性质
评论
0/150
提交评论