秒表设计-课程论.docx_第1页
秒表设计-课程论.docx_第2页
秒表设计-课程论.docx_第3页
秒表设计-课程论.docx_第4页
秒表设计-课程论.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

13梧 州 学 院课程设计论文(2015-2016学年上学期)课程名称 单片机原理及应用 论文题目 秒表设计 系 别 信息与电子工程学院专 业 电子信息工程 班 级 14电本1 学 号 201401902122 学生姓名 谢建增 指导教师 甘辉 完成时间 2016 年 6 月单片机原理与应用课程设计:秒表摘要电子秒表设计:设计一个按键,当机器复位时,显示0000,按一下键以秒为单位跑动,再按一下为秒表停止跳动,再按清零,再按又以秒为单位跳动。以此过程为循环。本次设计,以单片机最小系统和液晶显示屏1602作为基础硬件。目录一、 方案论证与选取41.1方案的论证41.2方案的选取41.3总体设计框图4二、 硬件设置42.1.1最小系统原理图42.1.2仿真图52.1.3所需硬件的部分原理图5三、 程序设计53.1软件流程图53.2程序代码5四、 附件84.1实物图片84.2使用4位共阴数码管显示的程序代码9五、 参考文献115.1 1602引脚说明115.2 AT89S52芯片简要11一、方案论证与选取1.1方案的论证方案一:以装有AT89S52芯片的单片机最小系统为核心,以4位共阴数码管作为显示硬件。使用74HC573芯片驱动4位共阴数码管进行显示。方案二:以装有AT89S52芯片的单片机最小系统为核心,以液晶显示屏1602作为显示硬件。1.2方案的选取方案一,由于单片机最小系统的电路设计等原因,若使用方案一,做出的实物将会用到较多的杜邦线,造成整体外形凌乱,但硬件价格较低,编程较为简单明了。方案二,虽然设计与单片机最小系统的电路设计相合,但价格较高,且编程较为复杂。由于物品都有,所以不考虑价钱方面。为了整体显得没那么凌乱,所以选用方案二。使用1602进行显示1.3整体设计框图:AT89S52按键控制二、硬件设计:2.1.1最小系统板原理图: 2.1.2仿真 图:2.1.3 所需硬件的部分电路原理图根据仿真图所需的硬件电路去采用最小系统的资源即可得出本次设计所需电路的完整电路。 本次设计,将会用到一个独立独立按键(如图2-2),和最小系统供1602使用的电路(如图2-1)。图2-1 图2-2三丶程序设计:3.1软件流程图:3.2 程序代码:#includetypedef unsigned char uchar ;typedef unsigned int uint ;bit fl ;#define DATE P0sbit rs=P20;sbit e=P21;uchar q,b,s,g;sbit aj =P24 ; /按键uchar i=0 ;/记录按了几下按键uchar code table=0000 s;void delay(uint z) uchar x ,y ; for(x=110 ; x0 ; x- ) for(y=z ; y0 ; y-) ;/写命令void write_com(uchar com)rs=0; /rs=0 , 写命令e=0;DATE=com ;delay(5);e=1;delay(5);e=0;/写数据 void write_date(uchar date) rs=1; /rs=1 , 写数据e=0;DATE=date;delay(5);e=1;delay(5);e=0;/液晶初始化void init() uchar num;e=0; /参照时序图write_com(0x38); /显示模式设置write_com(0x0c); /显示开关控制:0c=0000,1 100 ;0000,1 定位在显示开关控制 ,剩下的依次:1开显示,0不显示光标,0光标不闪烁write_com(0x06); /输入方式设置:06=0000,0110 ;0000,01定位在输入方式设置 ,剩下的依次:1写完一字符指针和光标+1;0整屏不移动write_com(0x01); /功能设置:01, 显示清屏 /显示第一行write_com(0x80); /数据地址指针设置:第一行第一格;80+(027H,4067H)=第一行, 第二行for(num=0;num6;num+)write_date(tablenum);delay(5);/在add上 显示 datevoid write_sfm(uchar add,uchar date) write_com(0x80+add); /从第一行的 第add格开始显示write_date(0x30+date);/显示出date/定时器0初始化void csh() TMOD = 0x01 ; TH0 = (65536 - 50000) / 256 ; TL0 = (65536 - 50000) % 256 ; EA = 1; ET0= 1; TR0= 0; /按键函数void anjian() if(aj=0) /按一下, 让 i+ delay(10); while(!aj); i+; if(i=1) /第一按, 开启定时器 delay(10); TR0= 1; if(i=2) /第二按, 关闭定时器 delay(10); TR0= 0; if(i=3) /第三按, 各个数清0 i=0 ; q=0; write_sfm(0,q);b=0; write_sfm(1,b);s=0; write_sfm(2,s);g=0; write_sfm(3,g); /数秒函数, 并显示void sm() g+; write_sfm(3,g); if(g=10) g=0;write_sfm(3,g); s+ ; write_sfm(2,s); if(s=10) s=0; write_sfm(2,s);b+;write_sfm(1,b);if(b=10) b=0 ;write_sfm(1,b); q+ ; write_sfm(0,q); if(q=10) q=9; write_sfm(0,q); b=9; write_sfm(1,b); s=9; write_sfm(2,s); g=9; write_sfm(3,g); TR0=0; void main() init(); csh() ; while(1) anjian() ;if(fl=1) fl=0; sm(); /定时器0中断void dsq0() interrupt 1 uint t ; TH0 = (65536 - 50000) / 256 ; TL0 = (65536 - 50000) % 256 ; t+ ; if(t=20) t=0; fl=1; 四、 附件:4.1、实物图片:4.2使用4位共阴数码管显示的程序代码#includetypedef unsigned char uchar ;typedef unsigned int uint ;sbit qw =P20 ; /选位口, 千百十个sbit bw =P21 ;sbit sw =P22 ;sbit gw =P23 ;sbit aj =P24 ; /按键uchar i=0 ;/记录按了几下按键uchar q=0 ; /各个位上的数字uchar b=0 ;uchar s=0 ;uchar g=0 ;code uchar tab=0x3f,0x06,0x5b,0x4f, /共阴数码管 0x66,0x6d,0x7d,0x27, 0x7f,0x6f;void delay(uint z) uchar x ,y ; for(x=110 ; x0 ; x- ) for(y=z ; y0 ; y-) ;/定时器0初始化void csh() TMOD = 0x01 ; TH0 = (65536 - 50000) / 256 ; TL0 = (65536 - 50000) % 256 ; EA = 1; ET0= 1; TR0= 0; /按键函数void anjian() if(aj=0) /按一下, 让 i+ delay(10); while(!aj); i+; aj = 1; if(i=1) /第一按, 开启定时器 delay(10); TR0= 1; if(i=2) /第二按, 关闭定时器 delay(10); TR0= 0; if(i=3) /第三按, 各个数清0 i=0; q=0 ; b=0 ; s=0 ; g=0 ; /数码管程序void smg() P1 = tabq ; qw=0 ; delay(2); qw=1; P1 = tabb; bw=0 ; delay(2); bw=1; P1 = tabs; sw=0 ; delay(2); sw=1; P1 = tabg;gw=0; delay(2); gw=1;void main() csh() ; while(1) anjian() ; smg() ; /定时器0中断void dsq0() interrupt 1 uint t ; TH0 = (65536 - 50000) / 256 ; TL0 = (65536 - 50000) % 256 ; t+ ; if(t=20) t=0; g+; if(g=10) g=0; s+ ; if(s=10) s=0;b+;if(b=10) b=0 ; q+ ; if(q=10) q=9; b=9; s=9; g=9;TR0=0; 五、 参考文献: 51、1602引脚说明:1602采用标准的16脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。5.2、 AT89S52芯片简要: AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论