




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
物理与机电工程学院课程设计报告课程名称: 单片机课程设计 系 部: 物理与机电工程学院 专业班级: 电子信息工程 学生姓名: 桑 胜 金 指导教师: 王 清 辉 完成时间: 2012-3-16 报告成绩: 评阅意见: 评阅教师 日期 一、设计任务与要求二、方案设计与论证三、硬件电路设计四、软件设计五、仿真过程与仿真结果六、安装与调试七、结论与心得八、参考文献单片机原理课程设计报告一、设计任务与要求1、设计基本要求。设计一个电子钟:(1)具有小时分秒时间显示。(2)能够设置闹钟至少5次闹钟时间。(3)可利用按键修改时间,具有上午下午的提示信息。2、。通过课程设计的教学实践,进一步学习、掌握单片机应用系统的有关知识,加深了解单片机的工作原理。初步掌握简单单片机应用系统的设计、制作、调试的方法。提高动手实践能力、提高科学的思维能力。二、方案设计与论证1 电子时钟1.1 电子时钟简介 1957年,ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。1.2 电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器,走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用led显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。1.3 电子时钟的原理 该电子时钟由89c51,button,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中两个控制键功能直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而另一按键按下又放松,则可实现小时的调节,同样每按一次小时加一。2 单片机识的相关知识2.1 单片机简介 单片机全称为单片机微型计算机(single chip microsoftcomputer)。从应用领域来看,单片机主要用来控制,所以又称为微控制器(microcontroller unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。2.2 89c51单片机介绍 vcc:供电电压。 gnd:接地。 p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。 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口输出地址的高八位。在给出地址“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(外部中断1)p3.4 t0(记时器0外部输入)p3.5 t1(记时器1外部输入)p3.6 /wr(外部数据存储器写选通)p3.7 /rd(外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。3 控制系统的软件设计3.1 单片机型号的选择 通过对多种单片机性能的分析,最终认为89c51是最理想的电子时钟开发芯片。89c51是一种带4k字节闪烁可编程可擦除只读存储器的低电压,高性能器件,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,89c51是一种高效微控制器,而且它与mcs-51兼容,且具有4k字节可编程闪烁存储器和1000写/擦循。3.2 数码管显示工作原理数码管是一种把多个led显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个led显示段的阳极接在一起,又称为公共端。共阴型就是把多个led显示段的阴极接在一起,即为公共商。通常的数码管又分为8段,即8个led显示段,分别为a、b、c、d、e、f、g、dp,其中dp 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的a段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。3.3 键盘电路设计 该设计只用了两个键盘,但实现的功能却是比较完善,减少了硬件资源的损耗,该键可以实现小时和分钟的调节。当按键按下又松开,则可以通过按键实现分钟的累加,每按一次分钟加一;另一个按键则可实现小时的调节,同样每按一次小时加一。达到时间调节的目的。三、硬件电路设计引脚功能说明89c51外部引脚图:(可以直接拷入asm程序文件中,作注释使用,十分方便); p1.0 1 40 vcc ; p1.1 239 p0.0; p1.2 3 38 p0.1; p1.3 437 p0.2; p1.4 5 36 p0.3; p1.5 6 35 p0.4; p1.6 7 34 p0.5; p1.7 8 33 p0.6; rst/vpd 9 32 p0.7; rxd p3.0 10 31 -ea/vpp(内1/外0 程序地址选择); txd p3.1 11 30 ale/-p (地址锁存输出); -int0 p3.2 12 29 -psen (外部程序读选通输出); -int1 p3.3 13 28 p2.7; t0 p3.4 14 27 p2.6; t1 p3.5 15 26 p2.5; -wr p3.6 16 25 p2.4; -rd p3.7 17 24 p2.3; x2 18 23 p2.2; x1 1922 p2.1; gnd 20 21 p2.0; 89c51引脚图管脚图引脚说明: 电源引脚 vcc(40脚):典型值5v。 vss(20脚):接低电平。 外部晶振 x1、x2分别与晶体两端相连接。当采用外部时钟信号时,x2接振荡信号,x1接地。 输入输出口引脚: p0口:i/o双向口。作输入口时,应先软件置“ 1”。 p1口:i/o双向口。作输入口时,应先软件置“ 1”。 p2口:i/o双向口。作输入口时,应先软件置“ 1”。 p3口:i/o双向口。作输入口时,应先软件置“ 1”。 控制引脚: rst/vpd、ale/-prog、-psen、-ea/vpp组成了msc-51的控制总线。 rst/vpd(9脚):复位信号输入端(高电平有效)。 第二功能:加+5v备用电源,可以实现掉电保护ram信息不丢失。 ale/-prog(30脚):地址锁存信号输出端。 第二功能:编程脉冲输入。 -psen(29脚):外部程序存储器读选通信号。 -ea/vpp(31脚):外部程序存储器使能端。 第二功能:编程电压输入端(+21v)。原理图:四、软件设计程序: #include#define uchar unsigned char#define uint unsigned intuchar code table=clock by sang s j;uchar code table1= 00:00:00 ;uchar code table2= alarm clock_1 ;uchar code table3= alarm on ;uchar code table4= alarm off ;uchar code table0= ;sbit dula=p26; /定义锁存器锁存端sbit wela=p27;sbit lcden=p10;sbit rs=p11;uchar a,shi,fen,miao,ww,aa,bb,s3num,s4num,num,yy;sbit s1=p20;sbit s2=p21;sbit s3=p22;sbit s4=p23;sbit s5=p24;sbit beep=p25;void delay(uint z) /延时函数 毫秒uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /写指令函数rs=0;p0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)/写数据函数rs=1;p0=date;delay(5);lcden=1;delay(5);lcden=0;void write_sfm(uchar add,uchar date) /时分秒的地址+数据函数uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);delay(10);write_date(0x30+shi);delay(10);write_date(0x30+ge);delay(10);void write_sfm1(uchar add,uchar date) /时分秒的地址+数据函数uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);delay(10);write_date(0x30+shi);delay(10);write_date(0x30+ge);delay(10);void init() /初始化函数dula=0;/关闭两锁存器锁存端,防止操作液晶时数码管会出乱码wela=0;lcden=0;write_com(0x38); /显示模式设置write_com(0x0c); /开显示 write_com(0x06); /光标设置write_com(0x01); /显示清屏write_com(0x80); /光标初始地址for(num=0;num16;num+)write_date(tablenum);delay(10);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table1num);delay(10);tmod=0x01; /设置定时器0为工作方式1th0=(65536-50000)/256; /装初值,定时50mstl0=(65536-50000)%256;ea=1;et0=1;tr0=1;void keyscan() /键盘函数uchar s1num;if(s1=0)delay(5);if(s1=0)s1num+;while(!s1);if(s1num=1) /光标跳到秒位置闪烁tr0=0;write_com(0x80+0x40+10);write_com(0x0f); if(s1num=2) /光标跳到分位置闪烁 write_com(0x80+0x40+7);write_com(0x0f); if(s1num=3) /光标跳到时位置闪烁 write_com(0x80+0x40+4);write_com(0x0f); if(s1num=4) /恢复时钟 tr0=1;write_com(0x0c); /开显示 write_com(0x06); /光标设置s1num=0; if(s1num!=0)if(s1num=1) /调整秒钟if(s2=0)delay(5);if(s2=0)while(!s2);miao+;if(miao=60)miao=0; write_sfm(10,miao); if(s1num=2)/调整分钟if(s2=0)delay(5);if(s2=0)while(!s2);fen+;if(fen=60)fen=0; write_sfm(7,fen); if(s1num=3) /调整小时if(s2=0)delay(5);if(s2=0)while(!s2);shi+;if(shi=24)shi=0; write_sfm(4,shi); /闹钟if(s3=0)delay(10);if(s3=0)s3num+;while(!s3);if(s3num=1)ww=1;write_com(0x01);write_com(0x80);for(num=0;num16;num+)write_date(table1num);delay(10); write_com(0x80+0x40); /光标初始地址for(num=0;num16;num+) write_date(table2num);delay(10); if(s3num=2) yy=1; ww=0; write_com(0x01); write_com(0x80); for(num=0;num16;num+)write_date(tablenum);delay(10);write_com(0x80+0x40); for(num=0;num16;num+) write_date(table1num);delay(10); write_sfm(4,shi); write_sfm(7,fen); write_sfm(10,miao); s3num=0; if(s4=0)delay(5);if(s4=0)s4num+;while(!s1); if(s4num=1) /光标跳到分位置闪烁 write_com(0x80+7);write_com(0x0f); if(s4num=2) /光标跳到时位置闪烁 write_com(0x80+4);write_com(0x0f); if(s4num=3) write_com(0x0c); /开显示 write_com(0x06); /光标设置s4num=0; if(s4num!=0)if(s4num=1)/调整分钟if(s2=0)delay(5);if(s2=0)while(!s2);bb+;if(bb=60)bb=0; write_sfm1(7,bb); if(s1num=2) /调整小时if(s2=0)delay(5);if(s2=0)while(!s2);aa+;if(aa=24)aa=0; write_sfm1(4,aa); if(s5=0)delay(10);if(s5=0)while(!s5);write_com(0x01); /显示清屏write_com(0x80); /光标初始地址for(num=0;num16;num+)write_date(tablenum);delay(10);write_com(0x80+0x40);for(num=0;num16;num+)write_date(table1num);delay(10);write_sfm(4,shi); write_sfm(7,fen); write_sfm(10,miao); void main()init();ww=0;while(1)keyscan();if(yy=1)if(shi=aa&fen=bb)beep=0;delay(1000);beep=1;delay(1000);beep=0;delay(1000);beep=1;yy=0;void timer0() interrupt 1 th0=(65536-50000)/256; /重装初值 tl0=(65536-50000)%256; a+; if(a=20)/定时到达1s a=0; miao+;if(s3num=2)if(shi=aa&fen=bb)beep=0;delay(1000);beep=1;delay(1000);beep=0;delay(1000);beep=1; if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;if(ww=0)write_sfm(4,shi);if(ww=0)write_sfm(7,fen);i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 38205.1-2025液压传动16 MPa系列单出杆缸的安装尺寸第1部分:中型系列
- 北师大版五年级下册分数加减法巧算练习200道及答案
- 认真对待项目管理考试中的试题及答案
- 学习与反思结合提高2025年注册会计师考试的能力试题及答案
- 项目组建过程中的决策设计试题及答案
- 医院感染控制与微生物检验及试题及答案
- 行政机关合同纠纷处理新机制
- 廉政谈话时的表态发言稿
- 股票投资策略相关试题及答案
- 室内空气质量提升措施计划
- 对患者入院评估的系统化方法试题及答案
- 教育与社会发展的关系试题及答案
- 七年级英语下学期期中押题预测卷(深圳专用)(原卷版)
- 2024年贵州贵州路桥集团有限公司招聘真题
- DB11-T 2397-2025 取水供水用水排水数据库表结构
- 多式联运模式在跨境电商中的应用-全面剖析
- 中药学(士)基础知识押题密卷1
- 2025年第三届天扬杯建筑业财税知识竞赛题库附答案(1401-1536题)
- 2025中考语文常考作文押题(10大主题+10篇范文)
- 2024安康市专职消防员招聘考试题目及答案
- 2024年湖北省中考满分作文《满树繁花》
评论
0/150
提交评论