




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要近年来随着计算机在社会各领域的渗透,单片机的应用正在不断地走向深入。由于其功能强,体积小,功耗低,工作可靠,使用方便,因此特别适合于和控制有关的系统。它也越来越广泛地应用到自动控制,智能化仪器、仪表,数据采集以及家电等领域。在这些领域,单片机往往是作为一个核心部件来使用,再根据具体硬件结构,并针对具体对象的特点进行软件结合,达到完善功能的目的。单片机课程设计是指以单片机为核心,配上一定的外围电路和辅助软件,从而实现用户所要求的功能的系统。通过课程设计,检验学生学习单片机知识的前后联系能力,同时有助于学生巩固单片机以及数电、模电的相关知识。电子钟是一种典型的数字电路,它包括了组合逻辑电路和时序电路。因此,我此次设计数字钟是为了了解数字钟的原理,进而学会设计数字钟。而且通过数字钟的设计进一步了解各种中小规模集成电路的作用。一设计要求(1)能通过键盘预置时间、星期,采用增量键盘;(2)采用字符型lcd液晶显示器或七位共阴led显示星期、时、分、秒;(3)具有整点报时功能;(4)可采用12小时制或24小时制;(5)显示驱动器可采用mc14543、cd14543。二、系统总体方案设计1.系统框图系统框图如下图所示,主要包括单片机、显示器、键盘输入、蜂鸣器。单片机显示器键盘输入蜂鸣器数字钟系统框图2.系统框图说明:1、单片机单片机是一种集成电路芯片,本设计采用at89c51。2、显示器显示电路采用字符型lcd液晶显示器。3、键盘输入本次课程设计采用独立键盘。4、蜂鸣器为了实现数字钟整点报时功能,在电路中加入蜂鸣器。它由单片机控制,低电平有效,并采用pnp型三极管驱动。三、系统硬件设计1、单片机单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的cpu、ram、rom、i/o口和中断系统、定时器/计时器等功能集成到一块硅晶片上构成的一个小但完善的计算机系统。单片机有40个引脚,可分为4类:电源、时钟、控制和i/o口。 电源:vcc芯片电源,接+5v;vss接地端 时钟:xtal1晶体振荡电路反相输入端;xtal2晶体振荡电路反相输出端。 控制线:控制线共有4根 1、ale/prog:地址锁存允许/片内eprom编程脉冲ale功能:用来锁存p0口送出的低8位地址;prog功能:片内有eprom的芯片,在eprom编程期间,此引脚输入编程脉冲。2、psen:外rom读选通信号3、rst/vpd:复位/备用电源rst功能:复位信号输入端;vpd功能:在vcc掉电情况下,接备用电源。 4、ea/vpp:内外rom选择/片内eprom编程电源。 ea功能:内外rom选择端。vpp功能:片内有eprom的芯片,在eprom编程期间,施加编程电压vpp。 四、i/o口atc89c51共有4个8位并行i/o端口:p0、p1、p2、p3口。 p0口:p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0口写“1”后,引脚用作高阻抗输入。当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用。在这种模式下,p0具有内部上电阻。但是p0口在程序校验作为输出指令字节时,需要外部加上拉电阻。p1口:p1口是一个内部具有上拉电阻的8位双向i/o口。p1口缓冲器能接收输出4个ttl门电流。p1口写“1”后,内部上拉电阻将其拉高,此时可以作为作输入口使用。作为输入口使用时,被外部拉低的引脚由于存在内部电阻,会输出电流。p2口:p2 口是一个具有内部上拉电阻的8 位双向i/o 口。p2 输出缓冲器能驱动4 个ttl 逻辑电平。对p2 口写“1”后,内部上拉电阻将其拉高,此时可以作为输入口使用。p3口:p3 口是一个具有内部上拉电阻的8 位双向i/o 口,p3 输出缓冲器能驱动4 个ttl 逻辑电平。对p3 端口写“1”后,内部上拉电阻将其拉高,此时可以作为输入口使用。作输入口时,被外部拉低的p3 口将用上拉电阻输出电流。2、lcd显示器字符型lcd液晶显示器是由字符液晶显示器件和专用的行、列驱动器、控制器及必要的连接件、结构件装配而成的。它可以显示数字和西文字符,是一类专用于显示字母、数字的液晶显示器。lcd1602主要技术参数:一、显示容量:162个字符;二、芯片工作电压:4.55.5v;三、工作电流:2.0ma 本次设计lcd1602采用标准的16脚接口,各引脚如下表所示:编号符号编号符号1vss9d22vdd10d33vl11d44rs12d55r/w13d66e14d77d015bla8d116blk字符型液晶显示模块的引脚主要分为3类:数据线(d0d7);控制线(rs、r/w、e);电源线(vdd、vss、vl)。引脚功能介绍:d0d7:数据总线。用于与单片机数据总线连接。rs: 寄存器选择端。r/w:读写端。e:芯片使能端。vdd:电源线。lcd显示器电源为5v。vss:接地线。vl:液晶显示偏压。接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。bla:背光源正极。blk:背光源负极。3、键盘输入本次课程设计采用独立键盘,通过键盘开关触点的断开、闭合来实现高低电平的输入。单片机接受该指令,然后做出相应的动作。4、整点报时整点报时采用蜂鸣器实现,由pnp型三极管驱动,低电平有效。当p3.0输出电平时,三极管导通,蜂鸣器接通并发出报时声音。整点报时电路四、系统软件1.系统软件主框图 2.lcd初始化程序流程图结束开始初始化设定初值定时50ms20次加1分钟加1秒60次nono60次24次no加1小时小时清0no显示时间 开始rw和e都置零设置点阵8位数据接口,两行显示开显示,不显示光标地址指针加一画面不移动刷新,全部清零给地址,表示从第一行开始写显示第一行数据给第二行地址显示第二行数据返回第 15 页 共 15 页3.按键流程图开始初始化按键扫描有键按下按键处理,确定模式时间显示模式根据按键状态显示相应时间段时间修改模式根据按键状态修改时间nonoyesyes按键流程图五、总结通过本次课程设计,让我认识到仅学习书本上的知识是不够的。要想真正用于实践还要学习很多。另外,还有必要采取理论与实践相结合的学习方式。在查阅资料并动手设计的过程中,虽然各种资料对于本课设多少有介绍,但是拿过来自己做,并完整地做出来还是有困难的。但是,最终我做出了课程设计,同时锻炼了自己的独立思考并解决问题的能力。另外,本次课程设计要用到一些软件如protel 99se,我学了这些软件其中很多功能。虽然学习这些软件的过程比较累,但是当画出了理想的图形时的成就感是不言而喻的。 总之,通过这次课程设计,我收获非常大。独立设计成功了基于at89c51和lcd1602的的数字钟(包括硬件电路和软件部分)。这次课程设计我也付出了很多努力,同时也学习到了很多实际的知识,自己的能力也得到了锻炼。我为自己的成长感到骄傲。参考文献1张毅刚,彭喜元,彭宇. 单片机原理及应用(第二版). 高等教育出版社,2010.2.林志琦基于proteus的单片机可视化软硬件仿真m.北京:北京航空航天大学出版社,2006. 3.黄正谨综合电子设计与实践m东南大学出版社2002.4.杨欣等电子设计从零开始m清华大学出版社2005.5.谢嘉奎电子线路m高等教育出版社2003.6.汪道辉单片机系统设计与实践m北京:电子工业出版社.20067.施隆照数码管显示驱动和键盘扫描控制器及其应用j.国外电子元器件,2004.8张毅刚.新编mcs-51单片机应用设计m.哈尔滨:哈尔滨工业大学出版社,2003.9张毅刚单片机原理与应用设计m.北京:电子工业出版社,2008.10张毅刚单片机原理及应用m.北京:高等教育出版社,2004.11、王幸之at89系列单片机原理与接口技术m.北京:北京航空航天大学出版社,2004.附录a附录b数字钟程序如下所示:#include#define uchar unsigned char#define uint unsigned intuchar hour,min,sec,count,hour1,hour2,sec1,sec2,min1,min2,keystopc,temp;sbit keystop=p14;sbit keyh=p15;sbit keym=p16;sbit keys=p17;sbit lcden=p34;sbit lcdrs=p35;uchar code table=0,1,2,3,4,5,6,7,8,9,:;void init()count=0;hour=23;min=59;sec=50;tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;tr0=1;et0=1;ea=1;void delay(uint z) uint x,y;for(x=z;x0;x-) for(y=110;y0;y-);void write_com(uchar com)lcdrs=0;p0=com;delay(0);lcden=1;delay(0);lcden=0;void write_data(uchar date)lcdrs=1;p0=date;delay(1);lcden=1;delay(1);lcden=0;void init_1602()lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);void display(uchar hour1,uchar hour2,uchar min1,uchar min2,uchar sec1,uchar sec2) init_1602();/write_com_nextl(0x80+0x40+0x03);write_data(tablehour1);write_data(tablehour2);write_data(table0x0a);write_data(tablemin1);write_data(tablemin2);write_data(table0x0a);write_data(tablesec1);write_data(tablesec2);void count0() interrupt 1th0=(65536-50000)/256;tl0=(65536-50000)%256;count+;if(count=20)count=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24) hour=0;void main()init();while(1)if(keystop=0) delay(10);if(keystop=0)if(keystopc!=1) keystopc+; else keystopc=0;while(keystop=0); delay(5);while(keystop=0); switch(keystopc)case 1:tr0=0;break; case 0:tr0=1;break;default:break;if(keyh=0) delay(5);if(keyh=0)if(hour!=23)hour+;else hour=0;while(!keyh); delay(5);while(!keyh);hour1=hour/10; hour2=hour%10;min1=min/10;min2=min%10;sec1=sec/10;sec2=sec%10;display(hour1,hour2,min1,min2,sec1,sec2);if(keym=0) delay(5);if(keym=0)if(min!=59)min+;else min=0;while(!keym);delay(5);while(!keym);hour1=hour/10;hour2=hour%10;min1=min/10;min2=min%10;sec1=sec/10;sec2=sec%10;display(hour1,hour2,min1,min2,sec1,sec2); if(keys=0) delay(5);if(keys=0)if(sec!=59)sec+;else sec=0;w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论