




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 目录一 课程设计的目的3二 课程设计的具体要求3三 设计过程3四 基本原理4五 硬件连接图4六 程序代码及其流程图5七 调试实现的功能13八 课程总结13九 参考教材13可光控和手控led显示一 课程设计的目的:单片计算机即单片微型计算机。(single-chip microcomputer ),是 集cpu ,ram ,rom ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而52单片机是各单片机中最为典型和最有代表性的一种。通过本课程设计,能独立地完成一个典型单片机应用系统的设计和调试任务,深刻地领会和掌握单片机原理及应用课程中讲述的基
2、本理论和基本技能,在单片机原理及应用课程的基础上,进一步培养学生的综合分析与设计能力和动手能力,为后续课程学习和今后从事电子信息系统及相关领域的实际工作打下坚实的基础。二 课程设计的具体要求:主要内容包括理论设计、硬件制作、软硬件调试及报告等几大部分。理论设计包括总体方案的选择(要求使用protel或altiumdesign软件画出与所选题目有关的应用系统电路图)、硬件结构组成图和软件流程设计图等;硬件制作部分由实验室统一提供单片机系统板,学生应手工焊接单片机板,并在实验板上或面包板上搭建系统板所不能提供的外围具体应用电路构成整体应用系统;软件设计利用keil c51软件开发平台,采用c或汇编
3、语言进行软件程序编写。硬件电路的可靠焊接和软件程序的编写是本课程设计的关键环节,通过软硬件综合调试使学生熟悉并掌握单片机软硬件开发的整个流程。三 设计过程:1, 得到单片机的各种零部件,进行焊接,从中学会了贴片元件的焊接方法。2, 焊接好单片机后,写入一些简单的程序调试单片机是否焊接正确,经验证单片机焊接无误。3, 在选定题目的基础上编写本次课程设计的有关程序,并在keil上运行检测其正确与否,无误后将其下载到单片机上,运行,查看结果。 4,运行无误后,写设计报告。四 基本原理:本课题用到的是89c52单片机,led数码管,led灯,键盘,光敏电阻,蜂鸣器等。89c52是一个低电压,高性能cm
4、os 8位单片机,片内含8k bytes的可反复擦写的flash只读程序存储器和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器和flash存储单元,功能强大的89c52单片机可提供许多较复杂系统控制应用场合。 89c52有40个引脚,32个外部双向输入/输出(i/o)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线, 89c52可以按照常规方法进行编程,但不可以在线编程。通过键盘s3,s1是否按下可以判断p1.5和p3.0的电平的高低,从而启
5、动不同的程序。在程序一中,通过键盘s3,s4是否按下可以判断p1.5,p1.6的高低电平,从而启动和复位程序一。led数码管是动态的。码选通过p3口的高四位,低电平选通,p0口送字段码。led灯为共阳极接法,其阴极分别接p2口的八个输出。p2口各位送低电平,对应各口的led灯亮。蜂鸣器有p1.7口控制,低电平时响,高电平时不响。光敏电阻的特性是无光照射时电阻阻值较大,有光时较小,其与可调电阻r23共同作用可调节p1.1的高低电平,从而控制程序二中led灯的亮灭和蜂鸣器的声音。有光时光敏电阻阻值较小。p1.1为低电平,程序使led灯和蜂鸣器不工作。无光或暗光时p1.1为高电平,程序使led灯和蜂
6、鸣器工作。五 硬件连接图:六 程序代码及其流程图:1程序流程图:程序1手控判断是那个键按下程序2光控p30p15开始是否有键按下?否是程序1: 进入led循环函数,调用显示函数开始调用中断,实现数码管显示led循环,调用蜂鸣器程序p16是否按下?是否led数码管复位,灯灭,蜂鸣器停止,判断p15是否按下蜂鸣器发声,进入下一led循环是否是否循环四次?否是结束程序2: 开始判断有无光照射?无有调用判光程序le循环,调用蜂鸣器声音程序,判有无光照射?无有结束2,c语言源程序:#include<reg52.h>#defineuchar unsigned charvoid display(
7、);void circle(void);void light(void) reentrant;uchar choose(void);void reset(void);void inittimer();sbit p11=p11;sbit p15=p15; /启动led灯及数码管循环显示程序sbit p16=p16; /复位led灯及数码管循环显示程序sbit p17=p17;sbit p30=p30; /启动光控程序int a;uchar e;/共阳极数码管位码/unsigned char code po4=0xe0,0xd0,0xb0,0x70;/共阳极数码管段码/unsigned char
8、code value18=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80, 0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e, 0x00,0xff;/延时void delay(int i) int j; for(j=0;j<i;j+) /蜂鸣器声音函数void speak1() reset(); p17=0;delay(200);p17=1;void speak2() reset();p17=0;delay(2000);p17=1; void speak3() reset();delay(10000);p17=0;dela
9、y(20000);p17=1;void speak4() reset();p17=1;delay(1000);p17=0;delay(10000); /主函数void main(void) uchar i; while(1) if(p15=0) delay(20); /选择程序1 if(p15=0) i=1; break; /选择程序2 if(p30=0) delay(20); if(p30=0) i=2;break; switch(i) case 1:circle();break; case 2:light();break; /led灯循环函数void circle(void) char i
10、,j,m,n,k,l; while(1) display(); p2=0xff;for(i=0;i<8;i+)/led循环1 speak1(); p2=p2<<1;delay(6666); p2=0xff; /led循环2for(j=0;j<8;j+) speak2(); delay(6666);p2=p2>>1; delay(6666); m=0xf0;n=0x0f; for(k=0;k<4;k+) /led循环3 speak3(); delay(6666); m=m<<1;n=n>>1; p2=m|n; m=0xf0;n=0
11、x0f; for(l=0;l<4;l+) /led循环4 speak4(); delay(6666); m=m<<1;n=n>>1; p2=(m|n); delay(6666);delay(6666); a+ ; void light(void) reentrant /光控显示函数 uchar i,j,b,temp,temp1;int k; e=0; e=choose(); switch(e) case 2: for(k=0;k<65535;k+) b=0xff; for(i=0;i<8;i+) temp=0xff; temp=temp; temp=t
12、emp<<i; p2=b&temp; for(j=0;j<(8-i);j+) if(p11=0) light();delay(30000);delay(30000); /判断有无光照射 speak2(); p2=p2<<1;delay(30000); delay(50000);temp1=0xff;for(a=0;a<8;a+) if(p11=0) light();delay(30000);delay(30000); speak2();p2=temp1<<(7-a);delay(30000); if(k=65535) k=0; ;brea
13、k; case1: p2=0xff;p17=1;light();delay(30000);delay(30000);break; uchar choose(void) /选择有无光照射 while(1) if(p11=0) e=1;delay(30000);delay(30000);break; else e=2;break;return e; void display()inittimer();void inittimer() /t1中断 tmod = 0x10; th1 = 0xdc;tl1 = 0x00; ea = 1; et1 = 1; tr1 = 1;void timer1() in
14、terrupt 3 /数码管显示static unsigned char b=0;th1 = 0xdc;switch(b)case 0:p0=value17;p3=po3;p0=valuea/4096;break;case 1:p0=value17;p3=po2;p0=value(a%4096)/256;break;case 2:p0=value17;p3=po1;p0=value(a%256)/16;break;case 3:p0=value17;p3=po0;p0=valuea%16;break;b+;if(b=4) b=0;void reset(void) if(p16=0) delay
15、(20); /是否按下复位键 if(p16=0) p17=1; while(1) p0=0xc0;p2=0xff;p3=0xef;a=0; if(p15=0) delay(20); /是否按下重启键 if(p15=0) circle(); 七 调试实现的功能:本作品为可光控和手控led显示,可分为两个功能即光控制led的显示和手动控制led的显示。单片机上电后无动作,按下s1键后,进入光控程序。在暗光或无光时led灯循环显示同时蜂鸣器发声。如有亮光照射是led灯熄灭同时蜂鸣器停止工作。单片机上电后,按下s3键后,进入手控程序,同时led灯进行四种不同的循环显示,并伴随蜂鸣器所发出的四种不同的声音。当四种循环结束一遍后led数码管数字加一。数码管数字满16后进一位。在这过程中如果按下s4键后,则程序复位,led灯熄灭,蜂鸣器停止工作,数码管显示0。如果s1再次按下后,则在次启动led灯、蜂鸣器和数码管。八 课程总结: 单片机
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 童年中考试题及答案
- 天文学试题及答案
- 土建质量员试题及答案
- 投资管理试题及答案
- 2025年授权金融机构代收电话费协议书
- 2025年高新区战略合作伙伴协议样本
- 2025年反垄断协议
- 2025年地质风险区域居民搬迁补偿策划协议
- 2025年学年校园绿化工程策划合作协议书范文
- 2025年工程部与劳务分包安全生产协议
- 千载悠悠客家情
- GB/T 34134-2017家用和类似用途安全特低电压(SELV)交流和直流插头插座16 A 6 V、12 V、24 V、48 V型式、基本参数和尺寸
- 望洞庭课件模板
- GB/T 17145-1997废润滑油回收与再生利用技术导则
- 人教版初中日语必修一二三单词表
- 中国城镇水务行业发展报告(2022) - 污水处理技术应用情况
- GA/T 1567-2019城市道路交通隔离栏设置指南
- 桩基桩基础工程
- 关税系统岗位练兵关税业务知识练习试题附答案
- 气体灭火系统调试报告
- 攀成德-铁四院-中铁四院集团有限公司薪酬管理制度0624
评论
0/150
提交评论