倒计时秒表课程设计

上传人:痛*** 文档编号:66413822 上传时间:2022-03-28 格式:DOC 页数:23 大小:288KB
收藏 版权申诉 举报 下载
倒计时秒表课程设计_第1页
第1页 / 共23页
倒计时秒表课程设计_第2页
第2页 / 共23页
倒计时秒表课程设计_第3页
第3页 / 共23页
资源描述:

《倒计时秒表课程设计》由会员分享,可在线阅读,更多相关《倒计时秒表课程设计(23页珍藏版)》请在装配图网上搜索。

1、目录一.设计目的1 二 .设计要求 1 三.总体设计 1 3.1设计方案1 3.2硬件电路设计1 1)CPU部分1 2)晶振电路部分2 3)LCD显示3 4)键盘及蜂鸣器部分 3 3.3软件程序设计 4四.方案实施6 4.1单片机简介6 4. 2 动态LCD液晶显示器显示64 3 软件调试及调试方法 8五.课程设计总结10六.参考文献10七.附件11 7.1源程序 127.2总体电路图 221一.设计目的1熟悉整个项目的流程即单片机系统设计过程2 学会使用各种仿真软件 3熟练的使用汇编语言编写小的应用程序4 掌握系统的调试与安装5提高学生的自学能力和动手能力二.设计要求1)可以实现正常秒表的所

2、有功能,包括启动,暂停,复位等2)可以自由设定倒计时时间(10s,20s,30s.),并进行倒计时(10s,20s,30s.)3)显示方式自选4)任选一款51单片机5)扩展功能:在秒表基础上增加时钟功能;倒计时完成时加入报警单元,如声音,灯光等三.总体设计3.1设计方案1)方案讨论和设计:倒计时数字秒表的设计主要考虑以下几个问题:一,LCD液晶显示器如何显示数字09;二,如何用单片机来控制LCD的显示;三,单片机最小模式下的设计。处理好这些问题此设计才能完整,为此必须先了解LCD的显示原理和接线方法,再了解单片机的组成原理和控制方法。硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬

3、件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。2)主要任务:软件的调试和烧录3.2硬件电路设计1)CPU部分P2.0口是“调模式”num 10,num20,num30,num50,num100P2.1口是“开始”倒计时端口P2.2口是“关闭”(返回)轰鸣器口,在定时可以返回到模式状态。P2.3口是给轰鸣器送触发信号口P2.4口是“暂停”口 主要有AT89C51,按键等构成2)时钟振荡模块时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内

4、部振荡模式。此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。电路中两个电容C4、C5的作用使电路快速起振,提高电路的运行速度。 晶振电路模块 3)LCD显示部分D1-D7口分别依次接单片机的P1.0-P1.7;RS,RW,E分别接P3.0-P3.3口 LCD显示部分4) 键盘及蜂鸣器部分 键盘及轰鸣器部分P2.0口是“调模式”num 10,num20,num30,num50,num100P2.1口是“开始”倒计时端口P2.2口是“关闭”(返回)轰鸣器口,在定时可以返回到模式状态。P2.3口是给轰鸣器送触发信号口P

5、2.4口是“暂停”口3.3软件程序设计程序流程图:开始 定时器T0,T1初始化 LCD初始化模式选择是否暂停启动T0定时 Y N关闭T0是否倒计时到零 Y N启动T1驱动蜂鸣器是否返 回 Y N关闭蜂鸣器四方案实施4.1单片机简介单片机是把中央处理器 (CPU),存储器和输入输出接口电路等主要微型机部件集成在一块芯片上,因此称为单片机,主要用于测控领域。自从1976年Intel公司推出第一代8位的MCS48系列单片机,它以体积小、控制功能全、价格低等优点为单片机的发展打下了坚实的基础。随后单片机发生了深刻的变革,目前市面上最常用的51系列单片机也是8位的,因为其品种全、兼容性强、软硬件资料丰富

6、的特点,因此历经几十年仍然是最常用的单片机系列。随着技术的进步和发展,16位单片机32位单片机相继产生,其性能也有了长足的提高,但是其基本组成仍然没有改变。设计中应用到的STC89C51是Atmel公司生产的51系列单片机中的一个典型代表, AT89C51引脚图从图中可以看到AT89C51有P0、P1、P2、P3四个输出输入口,其中P2.1口接开关用来LCD数字显示的起停,其中+5V的高电平有电源电路提供。4.2 动态LCD液晶显示器显示 液晶是人机交互最重要的通道,液晶不光要显示文字信息,还要显示波形信息,所以,编写一套完善的函数库是必不可少的,其中应该包括显示ASCII码、字符串、整型数字

7、、浮点数、汉字、画点、画线等一系列函数。 上层函数的建立离不开底层的驱动,最底层驱动应该是建立在液晶基本时序与指令的基础上。如图1,是液晶模块的基本时序图。 图1 DMF5001液晶模块基本时序图 根据时序图和控制指令,不难写出基本的读写函数。这些函数就是构建上层的基础。之后,还必须了解液晶的基本显示方式和充填方式。如图2,是液晶模块的缓冲区与显示屏的映射关系。T6963控制芯片内部有64KB的缓冲区,可以由程序划分为图形、文本、文本特征3类缓冲区,在不同缓冲区里写入不同数据,在液晶屏上将映射相应的信息,这也就是液晶模块显示信息的原理。 图2 DMF5001液晶映射方式 因为T6963内部含有

8、ASCII码字库,所以要想显示字符信息,只需在文本区内填入相应的信息即可。 如果要显示汉字或图形,则必须先在单片机内部的ROM区建模,然后将这些信息写入液晶的图形缓冲区,在液晶控制模块的控制下,相应的信息就会映射在显示屏上,也就是我们看到的汉字或图形信息了。 如果要实时显示AD采集的波形图以及FFT处理后的频谱图,这里将就动态波形显示用到的技术加以详细介绍。 波形的显示离不开“点”的显示,所谓“点动成线”也就这个道理,对于只有黑白两级灰度的液晶来说,画一个“点”就是将一个像素点亮。所以我们根据时序图,先建立在LCD屏上显示“点”的底层函数。在液晶屏上绘制“点”,有两点需要注意,一是缓冲区空间的

9、大小,二是像素的充填方式。在DMF5001液晶模块中,“点”的绘制需要在图形缓冲区中进行。对于160128像素的显示屏,图形缓冲区一共占用(160128)/8=2560字节的空间,每一个字节对应一个地址,也就是一共有2560个地址。考虑到DMF5001图形的充填方式是从上到下,横向填充,加上控制指令本身就支持对一个像素亮灭的控制。所以很容易根据缓冲区的地址,控制液晶屏上某一个点的亮灭,也就是所谓的画“点”了。4.3软件调试及调试方法1) 启动keil uVision,编写倒计时汇编语言程序,然后点击Project菜单New project ,新建一个工程,接着选择CPU类型,我们选择最常用的A

10、T89C51。 2)在工程中加入文件。新建一个文件 倒计时.C保存,汇编语言文件建好后把文件加入到工程中。仿真图形如下:3)编译工程及文件,发现错误更改后再重新编译文件,直到没有错误并且产生了xxx.hex的文件。4)用单片机仿真软件ISIS7.4 Professional来仿真此次设计的单片机是否能够完成设计的要求。仿真显示电路图如下:五. 课程设计总结1)在单片机的课程设计中,我加深了对51系列单片机的认识,尤其是在定时计数器、中断系统、串行通信接口方面,我得到了很大的收获。2)通过本次设计,使我认识和了解了基本的单片机设计的开发及仿真过程,我学到:经过理论联系实际,加深了对单片机和模拟电

11、路基础知识的理解及应用,学会了液晶显示器接法,熟识了硬件驱动LCD动态显示的基本原理和程序编写,提高了将单个电子器件组合到一起构成所需电路系统的能力;3)在绘制电路图和仿真图的过程中,巩固了电气专业最基本软件要求,提高了对Protues单片机仿真软件及汇编程序编写软件keil uVision3的认识;目前单片机在社会上应用很广泛,这使我相信所学的东西在以后的工作中会有用的。在本次设计过程中得到了指导老师的大力支持,在此表示感谢! 六. 参考文献1李广弟 单片机基础M 北京:航空航天大学出版社 2001年1月2迟荣强 单片机原理及接口技术M 北京:高等教育出版社 2004年9月3张毅刚 单片机原

12、理及应用M 北京:高等教育出版社 2008年5月七.附件7.1源程序:#include #include#defineucharunsignedcharsbit rs=P30;sbit rw=P31;sbit en=P32;sbittiao=P20;sbitkaishi=P21;sbitfanhui=P22;sbitfm=P23;触发蜂鸣器 sbitzanting=P34; ucharnum,miao,jishu;uchartmiao,zz=0;/*延时程序*void Delay1ms(uchar count)uchar i,j;for(i=0;icount;i+)for(j=0;j120;j

13、+);/*写液晶命令程序*void write_com(uchar com)rs=0;rw=0;en=0;Delay1ms(2);P1=com;Delay1ms(4);en=1;Delay1ms(4);en=0;/*写液晶数据程序*void write_data(uchar dt)rs=1;rw=0;en=0;Delay1ms(2);P1=dt;Delay1ms(4);en=1;Delay1ms(4);en=0;/*液晶初始化程序*void initial_lcd()/hen yong yiwang ji gai bufenDelay1ms(20);write_com(0x38);Delay1

14、ms(5);write_com(0x0c); Delay1ms(5);write_com(0x06);Delay1ms(5);write_com(0x01);/*定时器0定时1S*时钟程序*void time0(void) interrupt 1 using 0TH0=0x3c;TL0=0xb0;jishu+;if(jishu=20)jishu=0;miao+; /*定时器1蜂鸣器*void time1(void) interrupt 3 using 0TH1=0xff;TL1=0x44;fm=fm; /*拆分显示显示程序*voidchaixian(ucharxmiao)ucharxmiao1

15、,xmiao2,xmiao3;xmiao1=xmiao/100;定时最大是一个三位数xmiao2=xmiao%100/10;xmiao3=xmiao%10;write_com(0x80+0x0a);液晶定位if(xmiao=100)write_data(0x30+xmiao1);write_data(0x30+xmiao2);write_data(0x30+xmiao3);if(xmiao100)write_com(0x80+0x0c);write_data(0x00);write_com(0x80+0x0a);write_data(0x30+xmiao2);write_data(0x30+x

16、miao3); /*定时程序*voiddingshi(uchari) TR0=1; while(miao-1!=i) tmiao=i-miao;chaixian(tmiao);if(zz=1)/是否暂停break;if(fanhui=0)miao=0;jishu=0;write_com(0x01);write_com(0x80+0x02);write_data(T);write_data(i);write_data(a);write_data(o);write_data(0x00);write_data(M);write_data(o);write_data(0x00);write_data(

17、S);write_data(h);write_data(i);break; if(zz=0&(miao-1)=i) TR1=1;TR0=0;write_com(0x01);write_com(0x80+0x04);write_data(T);write_data(i);write_data(m);write_data(e);write_com(0x80+0x09);write_data(E);write_data(n);write_data(d);while(fanhui=1)TR1=0;miao=0;jishu=0;write_com(0x01);write_com(0x80+0x02);w

18、rite_data(T);write_data(i);write_data(a);write_data(o);write_data(0x00);write_data(M);write_data(o);write_data(0x00);write_data(S);write_data(h);write_data(i); /*键盘扫描程序*voidkeyscan()ucharnum1;if(tiao=0)Delay1ms(10);if(tiao=0)num+;if(num=6)num=0;if(num=1)write_com(0x01);write_com(0x80+0x04);write_dat

19、a(n);write_data(u);write_data(m);write_data(0x30+num);write_com(0x80+0x0a);write_data(0x30+1);write_data(0x30+0);if(num=2)write_com(0x01);write_com(0x80+0x04);write_data(n);write_data(u);write_data(m);write_data(0x30+num);write_com(0x80+0x0a);write_data(0x30+2);write_data(0x30+0);if(num=3)write_com(

20、0x01);write_com(0x80+0x04);write_data(n);write_data(u);write_data(m);write_data(0x30+num);write_com(0x80+0x0a);write_data(0x30+3);write_data(0x30+0);if(num=4)write_com(0x01);write_com(0x80+0x04);write_data(n);write_data(u);write_data(m);write_data(0x30+num);write_com(0x80+0x0a);write_data(0x30+5);wr

21、ite_data(0x30+0);if(num=5)write_com(0x01);write_com(0x80+0x04);write_data(n);write_data(u);write_data(m);write_data(0x30+num);write_com(0x80+0x0a);write_data(0x30+1);write_data(0x30+0);write_data(0x30+0);while(tiao=0)if(kaishi=0)Delay1ms(10);if(kaishi=0)while(kaishi=0)switch(num)case1:num1=10;break;

22、case2:num1=20;break;case3:num1=30;break;case4:num1=50;break;case5:num1=100;break;if(zz=0)ucharmiao=0;dingshi(num1);if(zz=1) zz=0;dingshi(num1);/*暂停键*void int1(void) interrupt 2 using 0zz=1;TR0=0;while(zanting=0) /*主程序*voidmain()TMOD=0x11;TH0=0x3c;TL0=0xb0;TH1=0xff;TL1=0x44;IE=0x8e;initial_lcd();while(1)keyscan(); 7.2硬件电路图22

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!