倒计时秒表课程设计.docx
- 文档编号:26364435
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:25
- 大小:218.23KB
倒计时秒表课程设计.docx
《倒计时秒表课程设计.docx》由会员分享,可在线阅读,更多相关《倒计时秒表课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
倒计时秒表课程设计
倒计时秒表课程设计
一.设计目的……………………………………………………………1
二.设计要求……………………………………………………………1
三.总体设计……………………………………………………………1
设计方案…………………………………………………………1
硬件电路设计……………………………………………………1
1)CPU部分…………………………………………………………1
2)晶振电路部分……………………………………………………2
3)LCD显示……………………………………………………3
4)键盘及蜂鸣器部分…………………………………………………3
软件程序设计……………………………………………………4
四.方案实施…………………………………………………………6
单片机简介………………………………………………6
4.2动态LCD液晶显示器显示………………………………………………6
4.3软件调试及调试方法……………………………………………………8
五.课程设计总结………………………………………………………10
六.参考文献…………………………………………………………10
七.附件…………………………………………………………11
源程序…………………………………………………………………12
总体电路图………………………………………………………………22
一.设计目的
1熟悉整个项目的流程即单片机系统设计过程
2学会使用各种仿真软件
3熟练的使用汇编语言编写小的应用程序
4掌握系统的调试与安装
5提高学生的自学能力和动手能力
二.设计要求
1)可以实现正常秒表的所有功能,包括启动,暂停,复位等
2)可以自由设定倒计时时间(10s,20s,30s....),并进行倒计时(10s,20s,30s....)
3)显示方式自选
4)任选一款51单片机
5)扩展功能:
在秒表基础上增加时钟功能;倒计时完成时加入报警单元,如声音,灯光等
三.总体设计
设计方案
1)方案讨论和设计:
倒计时数字秒表的设计主要考虑以下几个问题:
一,LCD液晶显示器如何显示数字0—9;二,如何用单片机来控制LCD的显示;三,单片机最小模式下的设计。
处理好这些问题此设计才能完整,为此必须先了解LCD的显示原理和接线方法,再了解单片机的组成原理和控制方法。
硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。
2)主要任务:
软件的调试和烧录
硬件电路设计
1)CPU部分
口是“调模式”num10,num20,num30,num50,num100
口是“开始”倒计时端口
口是“关闭”(返回)轰鸣器口,在定时可以返回到模式状态。
口是给轰鸣器送触发信号口
口是“暂停”口
主要有AT89C51,按键等构成
2)时钟振荡模块
时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个30pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。
此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。
电路中两个电容C4、C5的作用使电路快速起振,提高电路的运行速度。
晶振电路模块
3)LCD显示部分
D1-D7口分别依次接单片机的;
RS,RW,E分别接口
LCD显示部分
4)键盘及蜂鸣器部分
键盘及轰鸣器部分
口是“调模式”num10,num20,num30,num50,num100
口是“开始”倒计时端口
口是“关闭”(返回)轰鸣器口,在定时可以返回到模式状态。
口是给轰鸣器送触发信号口
口是“暂停”口
软件程序设计
程序流程图:
开始
定时器T0,T1初始化
YN
YN
YN
四.方案实施
单片机简介
单片机是把中央处理器(CPU),存储器和输入输出接口电路等主要微型机部件集成在一块芯片上,因此称为单片机,主要用于测控领域。
自从1976年Intel公司推出第一代8位的MCS—48系列单片机,它以体积小、控制功能全、价格低等优点为单片机的发展打下了坚实的基础。
随后单片机发生了深刻的变革,目前市面上最常用的51系列单片机也是8位的,因为其品种全、兼容性强、软硬件资料丰富的特点,因此历经几十年仍然是最常用的单片机系列。
随着技术的进步和发展,16位单片机32位单片机相继产生,其性能也有了长足的提高,但是其基本组成仍然没有改变。
设计中应用到的STC89C51是Atmel公司生产的51系列单片机中的一个典型代表,
AT89C51引脚图
从图中可以看到AT89C51有P0、P1、P2、P3四个输出输入口,其中口接开关用来LCD数字显示的起停,其中+5V的高电平有电源电路提供。
动态LCD液晶显示器显示
液晶是人机交互最重要的通道,液晶不光要显示文字信息,还要显示波形信息,所以,编写一套完善的函数库是必不可少的,其中应该包括显示ASCII码、字符串、整型数字、浮点数、汉字、画点、画线等一系列函数。
上层函数的建立离不开底层的驱动,最底层驱动应该是建立在液晶基本时序与指令的基础上。
如图1,是液晶模块的基本时序图。
图1DMF5001液晶模块基本时序图
根据时序图和控制指令,不难写出基本的读写函数。
这些函数就是构建上层的基础。
之后,还必须了解液晶的基本显示方式和充填方式。
如图2,是液晶模块的缓冲区与显示屏的映射关系。
T6963控制芯片内部有64KB的缓冲区,可以由程序划分为图形、文本、文本特征3类缓冲区,在不同缓冲区里写入不同数据,在液晶屏上将映射相应的信息,这也就是液晶模块显示信息的原理。
图2DMF5001液晶映射方式
因为T6963内部含有ASCII码字库,所以要想显示字符信息,只需在文本区内填入相应的信息即可。
如果要显示汉字或图形,则必须先在单片机内部的ROM区建模,然后将这些信息写入液晶的图形缓冲区,在液晶控制模块的控制下,相应的信息就会映射在显示屏上,也就是我们看到的汉字或图形信息了。
如果要实时显示AD采集的波形图以及FFT处理后的频谱图,这里将就动态波形显示用到的技术加以详细介绍。
波形的显示离不开“点”的显示,所谓“点动成线”也就这个道理,对于只有黑白两级灰度的液晶来说,画一个“点”就是将一个像素点亮。
所以我们根据时序图,先建立在LCD屏上显示“点”的底层函数。
在液晶屏上绘制“点”,有两点需要注意,一是缓冲区空间的大小,二是像素的充填方式。
在DMF5001液晶模块中,“点”的绘制需要在图形缓冲区中进行。
对于160×128像素的显示屏,图形缓冲区一共占用(160×128)/8=2560字节的空间,每一个字节对应一个地址,也就是一共有2560个地址。
考虑到DMF5001图形的充填方式是从上到下,横向填充,加上控制指令本身就支持对一个像素亮灭的控制。
所以很容易根据缓冲区的地址,控制液晶屏上某一个点的亮灭,也就是所谓的画“点”了。
软件调试及调试方法
1)启动keiluVision,编写倒计时汇编语言程序,然后点击Project菜单——〉Newproject,新建一个工程,接着选择CPU类型,我们选择最常用的AT89C51。
2)在工程中加入文件。
新建一个文件倒计时.C保存,汇编语言文件建好后把文件加入到工程中。
仿真图形如下:
3)编译工程及文件,发现错误更改后再重新编译文件,直到没有错误并且产生了的文件。
4)用单片机仿真软件Professional来仿真此次设计的单片机是否能够完成设计的要求。
仿真显示电路图如下:
五.课程设计总结
1)在单片机的课程设计中,我加深了对51系列单片机的认识,尤其是在定时计数器、中断系统、串行通信接口方面,我得到了很大的收获。
2)通过本次设计,使我认识和了解了基本的单片机设计的开发及仿真过程,我学到:
经过理论联系实际,加深了对单片机和模拟电路基础知识的理解及应用,学会了液晶显示器接法,熟识了硬件驱动LCD动态显示的基本原理和程序编写,提高了将单个电子器件组合到一起构成所需电路系统的能力;
3)在绘制电路图和仿真图的过程中,巩固了电气专业最基本软件要求,提高了对Protues单片机仿真软件及汇编程序编写软件keiluVision3的认识;
目前单片机在社会上应用很广泛,这使我相信所学的东西在以后的工作中会有用的。
在本次设计过程中得到了指导老师的大力支持,在此表示感谢!
六.参考文献
[1]李广弟单片机基础[M]北京:
航空航天大学出版社2001年1月
[2]迟荣强单片机原理及接口技术[M]北京:
高等教育出版社2004年9月
[3]张毅刚单片机原理及应用[M]北京:
高等教育出版社2008年5月
七.附件
源程序:
#include<>
#include<>
#defineucharunsignedchar
sbitrs=P3^0;
sbitrw=P3^1;
sbiten=P3^2;
sbittiao=P2^0;
sbitkaishi=P2^1;
sbitfanhui=P2^2;
sbitfm=P2^3;触发蜂鸣器
sbitzanting=P3^4;
ucharnum,miao,jishu;
uchartmiao,zz=0;
//********************延时程序**************************
voidDelay1ms(ucharcount)
{
uchari,j;
for(i=0;i for(j=0;j<120;j++); } //*********************写液晶命令程序**************** voidwrite_com(ucharcom) { rs=0; rw=0; en=0; Delay1ms (2); P1=com; Delay1ms(4); en=1; Delay1ms(4); en=0; } //*********************写液晶数据程序********************* voidwrite_data(uchardt) { rs=1; rw=0; en=0; Delay1ms (2); P1=dt; Delay1ms(4); en=1; Delay1ms(4); en=0; } //**********************液晶初始化程序*********************** voidinitial_lcd()//henyongyiwangjigaibufen { Delay1ms(20); write_com(0x38); Delay1ms(5); write_com(0x0c); Delay1ms(5); write_com(0x06); Delay1ms(5); write_com(0x01); } //***********************定时器0定时1S****时钟程序************************ voidtime0(void)interrupt1using0 { TH0=0x3c; TL0=0xb0; jishu++; if(jishu==20) { jishu=0; miao++; } } //***********************定时器1蜂鸣器************************ voidtime1(void)interrupt3using0 { TH1=0xff; TL1=0x44; fm=~fm; } //**********************拆分显示显示程序************* voidchaixian(ucharxmiao) { ucharxmiao1,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(xmiao<100) { write_com(0x80+0x0c); write_data(0x00); write_com(0x80+0x0a); write_data(0x30+xmiao2); write_data(0x30+xmiao3); } } //******************************定时程序******************************* 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('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); 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('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_data('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(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); write_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; 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); } } } } //*****************************暂停键***************************** voidint1(void)interrupt2using0 {zz=1; TR0=0; while(zanting==0) { } } //**************************主程序******************************** voidmain() {TMOD=0x11; TH0=0x3c; TL0=0xb0; TH1=0xff; TL1=0x44; IE=0x8e; initial_lcd(); while (1) {keyscan(); } } 硬件电路图 】
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 倒计时 秒表 课程设计