版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 告课设报 福建工程学院软件学院 题 目:51开发洗衣机 班 级:物联网工程1202 成员: 座 号:04 28 指导老师: 日 期: 年 月 日 23 / 1 目录 1摘要0 2.设计需求0 2.1功能需求0 2.1.1 基本功能0 2.1.2扩展功能0 2.2 设计要求 1 2.2.1 单片机芯片部件功能1 2.2.2 LCD数码显示管部件功能1 2.2.3 按键部件功能1 2.2.4 蜂鸣器部件功能1 3硬件设计及描述1 3.1总体描述1 3.2系统总体框图2 3.3Proteus电路图2 3.4各部分硬件介绍 3 3.4.1晶振Protues仿真3 3.4.2LCDProtues仿真4
2、 3.4.3 按键Protues仿真4 3.4.4上拉电阻Protues仿真5 3.4.5C51芯片Protues仿真5 3.4.6上电复位电路Protues仿真7 3.4.7蜂鸣器Protues仿真8 4 软件设计流程及描述 8 4.1程序流程图 8 4.2函数模块及功能9 5功能实现10 5.1程序烧入上电调试10 5.2时间递增跳变11 5.3比分更变12 5.4比赛得分复位13 5.5比赛时间复位13 6 心得体会14 7源程序代码:15 23 / 2 1摘要 是为了方便足球比赛时计时与计分及时与准确公开而引申出的实用产品。在此设计中接入了一个1602液晶显示屏,第一行用来记录赛程的时
3、间,第二行用于显示比赛的得分情况。赛程计时用倒计时来计时。在比赛结束时按下相应按键蜂鸣器会响起,提醒比赛时间结束。 这次试验运用C语言进行编程,编程后利用Keil uVision来进行编译,再生成.hex文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,最后利用单片机MCS-51实机来实现功能。 本设计以AT89S51单片机作为核心,综合应用单片机定时器、中断、LCD1602 液晶显示等知识,设计一款单片机和简单外设控制的足球计分器应用,同时显示当前的比赛进行时间,比赛队伍,比分状况。 2.设计需求 2.1功能需求 2.1.1 基本功能 (1)屏上显示比赛已运行时间 (2
4、)屏上显示A队和B队的得分 (3)屏上显示上下半场(H-L) (4)通过按键控制比分的增减 2.1.2扩展功能 (1)按键实现比赛场次的更换 (2)按键实现比赛计时的复位 (3)按键实现比赛比分的复位 (4)在比赛结束时,蜂鸣器在主裁判的控制下响起 23 / 0 2.2 设计要求 2.2.1 单片机芯片部件功能单片机为主控设定了控制模块由AT89C51在实验开发板上,根据功能需求,字节闪烁可编程可擦除只读存储器的低电压,高性能制核心芯片,是一种带4K12MHZ选用能在低功耗,5V超低压工作,CMOS8位微处理器,具有在线编程功能,选定比赛的节次,输入模块由按键控制,的晶振,使得单片机有合理的运
5、行速度; 显示当前洗涤剩余时间。加分,比赛的暂停;输出模块由两位LED显示管部件功能2.2.2 LED 取余和取10口控制其相应显示的值,用除共阴七段数码管通过80C51的P0 秒赋值。分-整分别给时-按键部件功能2.2.3 口的占为了减少I/O该实验设计只用矩阵键盘,在键盘中按键数量较多时,所示。在矩阵式键盘中,每条水平用,通常将按键排列成矩阵形式,如图2-2-1一个端口而是通过一个按键加以连接。这样,线和垂直线在交叉处不直接连通, 比之直接将端口线用于键盘多出了一倍,就可以构成4*4=16个按键,口)(如P1 按键图2-2-1 蜂鸣器部件功能2.2.4 蜂鸣器是一种可以把电信号转换成声音信
6、号的一种装置,可以在嵌入式的小型单片机系统中作用,自制音乐之类的,其主要的原理是在待测物体超过常规数值的时候会有电流作用于部件上,通过放大电路将电流放大从而将其转换作用在震动器上,震动器发生震动从而产生了声响,实现蜂鸣功能。 3硬件设计及描述 3.1总体描述 1)设置LCD第一行用来记录赛程的时间 2)设置LCD第二行用于显示比赛的得分情况 3)设置按键功能控制LCD相应位显示时间与得分 23 / 1 4)利用一个蜂鸣器用来作为比赛结束的警报。 3.2系统总体框图 开始执行 时间比分赋初载入文/ 计计/ 000:000赋比分初000:00赋时间初值 按键开始队得B Y比赛开始计时对应队伍加分
7、比赛结束? Y 结束3.3Proteus电路图 23 / 2 图3-3-1 系统整体Protues仿真图 3.4各部分硬件介绍 3.4.1晶振Protues仿真 图3-4-1 晶振Protues仿真图 晶体振荡电路用于产生单片机工作时所需的时钟信号,从而保证各部分工作的同步。单片机内部有一个高增益反相反大器,只要在输入端XTAL1与输出XTAL2之间挂一个晶体振荡器和微调电容就可以构成一个稳定的自激震荡器并在单片机内部产生的时钟脉冲信号。电容C1与C2用于稳定频率和快速起振。 23 / 3 3.4.2LCDProtues仿真 图3-4-2 数码管Protues仿真图 显示方式为动态显示是指依次
8、轮流点亮显示器的各个位,每隔一段时间则点亮一次,设置足够短的时间,利用人的视觉暂停效应和发光二极管的熄灭时的余辉,达到多个字符同时显示的效果。运行这种显示方式可以降低成本与功耗,但需要较大的驱动电流。 3.4.3 按键Protues仿真 图3-4-3 按键Protues仿真图 键盘中按键数量设置依系统操作要求而定。单片机应用系统中的键盘有独立式和行列式两种。独立式键盘中,每个按键占用一个I/O口线,每个按键相对独立。行列式键盘用I/O口线组成行列结构,按键设置在交叉点上,在按键数目较23 / 4 多时运用这种连接方式,可节省I/O口连线。行列式键盘的标识最常用的两种方法:行扫描法和线反转法。本
9、次实训采用矩阵键盘进行操作实现。 3.4.4上拉电阻Protues仿真 图3-4-4 上拉电阻Protues仿真图 排阻驱动,用以增加电流,一个脚接高电位VCC,其他脚接单片机I/o口。 3.4.5C51芯片Protues仿真 图3-4-5 C51芯片Protues仿真图 VCC:电源。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当23 / 5 P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部
10、必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输 出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位
11、。在给出地址“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(外
12、部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 23 / 6 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则
13、在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP) 3.4.6上电复位电路Protues仿真 图3-4-6 上电复位电路Protues仿真图 本设计采用上电按钮复位电路:首先经过上电复位,当按下按键时,开关直接与VCC相连,为高电平形成复位,同时电解电容被电路放电;按键松开时,VCC对电容充电,充电电流在电阻上,开关依然为高电平,仍然是复位,充电完成后,23 / 7 决定了电R2电容相当于开路,开关为低电平,单片机芯
14、片正常工作。其中电阻 的时间也长。回落到0V容充电的时间,R2越大则充电时间长,复位信号从VCC 仿真蜂鸣器Protues3.4.7 Protues仿真图图3-4-7蜂鸣器使电磁线圈产生磁场来驱动振动膜发蜂鸣器发声原理是电流通过电磁线圈,口输出的电流较小,增加电流放大的电路。程序中通过改声的。但是单片机IO口输出波形的频率,产生各种不同音色、音调的声音。可以有变单片机对应IONPN三极管电流放大电路驱动。本电路通过一个PNP或NPN两种驱动方式,即用连接C,集电极,发射极E连接一个VCCR4三极管来放大驱动蜂鸣器,基极连接编口是高电平,此时三极管是截止的,蜂鸣器后接地。单片机在复位后的个I/O
15、写程序使选定的I/O为低电平,此时三极管导通,导通后蜂鸣器与电源正极连通,构成一个工作回路,从而发出滴滴的响声。 4 软件设计流程及描述 4.1程序流程图 主程序主要完成系统的初始化和按键的捕获,在按键没有按下时,调用显示子程序 开始执行 23 / 8 载入文时间比分赋初计计000:000赋比分初000:00赋时间初比赛开NN按键开始队得分Y启动蜂鸣YY对应队伍加比赛开始计比赛结束程序初始复位 函数模块及功能4.2)函数开头用于定义数组,按键端口位置,定义时钟的初始显示时间值和定1( 义程序中最核心的数组部分,为后续的程序实现奠定基础。 程序代码如下:(数组定义不再累述)#include #i
16、nclude #define uchar unsigned char #define uint unsigned int /命令选择引脚数据sbit rs=P25; /1602 sbit rw=P26; /1602读写引脚 sbit en=P27; /1602使能引脚 del*1ms延时)void delay(uint del) /延时程序,用于(2 写命令)void wcmd(uchar cmd) /(3 写数据void wdat(uchar dat) /(4) /初始化(5)void init() 写字符6()void write_char(uchar hang,uchar lie,cha
17、r sign)/ET0和 中断定时器定义了EA0void it0(void)interrupt 1/7()定时器 跳变一次实现时间递增100ms开中断,时钟每隔23 / 9 (8)void Trup()/定时中断 (9)void display()/显示,包括了比赛运行时间与比分的显示 (10)uchar Keyscan(void)/判断哪个键按下 (11)void KEY() /键值的返回 (12)void Outside_Init(void) /开中断 (13)void play(uint d)/蜂鸣器 (14)void main()/主程序 5功能实现(以下调试过程均在联调中进行) 5.
18、1程序烧入上电调试 图5-1-1 上电调试 23 / 10 5.2时间递增跳变 图5-1-2 用时015:10 图5-1-3 用时113:06 23 / 11 5.3比分更变 图5-1-4 比分05:00 图5-1-5 比分05:07 23 / 12 5.4比赛得分复位 图5-1-6 得分复位 5.5比赛时间复位 图5-1-7时间复位 23 / 13 6 心得体会 经过两周的课程设计,不断的测试与分析,最终完成了电子时钟的设计与制作。在实验的设计及仿真测试时,当没有得出正确的实验现象时,分析可能出现的错误,是不是自己粗心大意还是在连接上出来错误还是说是程序上面的代码错误。在程序的调试中,如果出
19、现错误要认真阅读给出的错误报告,并按照要求加以改正,来获取正确的实验结果。此课程设计主要考察了对单片机技术原理及程序设计基础等知识。理论和实验的结合使得在课上的学习知识可以动手实验,对于课堂的只是更加一步的认识和了解, 此次设计的电子时钟在单片机应用中是最简单的也是最普遍的应用。通过本次设计,使我对单片机产生了不少的兴趣,让我对于单片机的实训课程有了更大的期待,对于开发和设计许多不同的实验也有着很高的期待,期待着自己的某一天可以自己不再依靠什么东西就可以自己创造出自己想要的程序和产品。 在这次设计过程中,体现出自己进行单片机设计调试的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果
20、的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 在此感谢我们的郑旭丹老师,您严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次实训设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。 同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 也感谢我的队友游锦壕,总能在我陷入无章代码中给我启迪。 由于我俩的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,我们将万分感谢。 23 / 14
21、7源程序代码: #include #include #define uchar unsigned char #define uint unsigned int sbit rs=P25; /1602数据/命令选择引脚 sbit rw=P26; /1602读写引脚 sbit en=P27; /1602使能引脚 sbit BEEP = P27; char section1=1,min=0,sec=0,scoreA=0,scoreB=0; uchar count,key1,Key_value; uchar code line1= Time: ; uchar code line2= A: - :B ;
22、uchar tab=0,1,2,3,4,5,6,7,8,9; uchar section=1,2; uchar sections=H,L; uchar code buffer16 = 0xee, 0xde, 0xbe, 0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77; uchar code table = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /延时程序 void delay(uint del) /延时del*1ms uint i,j; f
23、or(i=del;i0;i-) for(j=110;j0;j-); /写命令 void wcmd(uchar cmd) P0=cmd; rs=0; rw=0; en=1; delay(1); en=0; /写数据 void wdat(uchar dat) 23 / 15 P0=dat; rw=0; rs=1; en=1; delay(1); en=0; /初始化 void init() wcmd(0x38); wcmd(0x38); wcmd(0x38); wcmd(0x0c); wcmd(0x06); wcmd(0x01); /写字符 void write_char(uchar hang,u
24、char lie,char sign) uchar a; if(hang = 1) a = 0x80; if(hang = 2) a = 0xc0; a = a + lie - 1; wcmd(a); wdat(sign); /定时器0中断 实现时间递增 void it0(void)interrupt 1 uchar count; count+; TH0=(65535-10000)/256; TL0=(65535-10000)%6; if(count=80) count=0; sec+; 23 / 16 /定时中断 void Trup() TMOD=0x01; EA=1; ET0=1; TR0
25、=0; /显示 void display() /时间显示 uchar i; for(i=1;i59) sec=0; min+; if(section12) section1=1; write_char(1,11,tabmin/100); if(min=100) write_char(1,12,tab(min-100)/10); else write_char(1,12,tabmin/10); write_char(1,13,tabmin_x0010_); write_char(1,14,58); write_char(1,15,tabsec/10); write_char(1,16,tabse
26、c_x0010_); write_char(1,1,sectionssection1-1); /分数显示 for(i=2;i=3;i+) wcmd(0xc0+i); 23 / 17 wdat(line2i); for(i=7;i=8;i+) wcmd(0xc0+i); wdat(line2i); for(i=12;i=100) write_char(2,6,tab(scoreA-100)/10); else write_char(2,6,tabscoreA/10); write_char(2,7,tabscoreA_x0010_); write_char(2,10,tabscoreB/100); if(scoreB=100) write_char(2,11,tab(scoreB-100)/10); else write_char(2,11,tabscoreB/10); write_char(2,12,tabscoreB_x00
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训表彰会议课件
- 安全培训补短板课件
- 安全培训落实标准课件
- 安全培训船员防火服课件
- 历史的启示介绍
- 理性消费与双十一
- 历史人物的生动一面
- 《基于大数据分析的在线教育教师教学行为优化策略研究》教学研究课题报告
- 中医特色:脏腑辨证护理技术
- 中医急诊护理中的环境管理与消毒
- 2025年合肥安徽潜晟城市运营管理有限公司公开招聘工作人员考试题库必考题
- 新生儿气道管理临床实践指南(2025版)
- 酒吧消防安培训
- 养老院消防培训方案2025年课件
- Smaart7产品使用说明手册
- 包装班组年终总结
- 瓷砖工程验收课程
- 2025 小学二年级数学上册乘法口诀对口令练习课件
- 专升本旅游管理专业2025年旅游学概论试卷(含答案)
- 难治性癌痛护理
- 苏教版五年级上册复习教案(2025-2026学年)
评论
0/150
提交评论