ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:279.50KB ,
资源ID:847448      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-847448.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机微型计算机与接口技术.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

单片机微型计算机与接口技术.doc

1、课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 信息工程系 题 目: 基于51单片机的数字电子表的设计 初始条件:1. 运用所学的单片机原理与接口技术知识和数字电路知识;2. 51单片机应用开发系统一套;3. PC机及相关应用软件;要求完成的主要任务:1. 完成数字电子表的设计和调试。 2. 要求采用四位八段数码管显示时间和日期,并且可以用按键修改时间和日期。3. 撰写课程设计说明书。4. 课程设计说明书要求:引言、设计要求、系统结构、原理设计、各个模块的设计与实现、软件设计、调试过程、收获、体会及总结、参考文献、电路图和源程序。说明书使用A4打印纸计算机打印或手写,用Prote

2、l等绘图软件绘制电子线路图纸。时间安排:第1天 下达课程设计任务书和日程安排,根据任务书查找资料;第23天 完成方案论证,单片机系统的设计;第46天 参考有关文献,完成程序的编写; 第710天 调试硬件系统和软件程序;第1113天 结果分析整理、撰写课程设计报告;第1415天 验收和答辩。 指导教师签名: 2012 年 12 月 29 日一、课程设计项目名称 基于51单片机的数字电子表的设计二、项目设计目的及技术要求 目的:用51单片机在八段数码管上实现对时间日期的显示,并且能够修改时间和日期。 技术要求:1.完成数字电子表的设计和调试。 2.要求采用八段数码管显示时间和日期,并且可以用按键修

3、改时间和日期。 3.可设定初始时间。 4.有方案比较。采用哪种方案比较简单,占用的资源少,就用哪种。 5.采用单片机C语言编程。 6.有硬件原理图,程序流程图。三、项目设计方案论证(可行性方案、最佳方案、软件程序、硬件电路原理图和PCB图) 总设计方案:以51核单片机为核心器件,配合其他外设完成对时间和日期的显示。并且能够通过设置按键能够修改时间和日期。然后采用单片机内部定时器0的中断产生“秒”的计数,“秒”计数采用60进制计时器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时

4、计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。每累计24小时,发出一个“日脉冲”信号,该信号将被送到“日期计数器”,“日期计数器” 采用30进制计时器,可实现对一月30天的累计同时进位月份和年份。译码显示电路将“时”、“分”、“秒”、“日期”计数器的输出状态送到八段显示译码器译码,通过八位LED八段显示器显示出来。1.计时方案方案一:采用实时时钟芯片。 实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据每秒自动更新一次,不需程序干预。计算机可通过中断或查询方式读取计时数据并进行显示,因此实现计时功能不占用CPU的时间,程序简单。此外,实时时钟芯片多数

5、带有锂电池做后备电源,具备永不停止的计时功能。方案二:软件控制。 利用MCS-51内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能够使我们在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,因此本系统采用软件方法实现计时。2.显示方案方案一:串口扩展,LED静态显示。 方案占用口资源少,利用串口扩展并口,实现静态显示,显示亮度有保证,但硬件开销大,电路复杂,信息刷新速度慢,比较适用于并行口资源较少的场合。方案二:直接接口,LED动态显示。 用单片机的并行口作为显示接口,无需外扩接口芯片,但占用口资源较多,且动态扫描的显示方式需占用CPU较多的时间,

6、在单片机没有太多外围接口及实时测控任务的情况下可以采用。在本系统中,单片机没有太多外围接口接实时测控任务,因此采用方案二。硬件系统: 根据硬件设计,由单片机的P2口控制位码输出,P0口控制段码输出。动态显示程序中,在单片机内部RAM中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内带显示数据转换成相应的段码,再将段码通过8051的P0口输出。 数码管连接电路如图2所示,P0口输出码型,P2口输出位选。锁存器74HC573起驱动作用,提供驱动电流供数码管发光。译码器74HC138将位选地址转换成位选信号,例如当前是第5个数码管显示,那么P2口输出位选地址05H,译码器输入CBA=110,

7、输出位选信号Y7-Y0=11101111,其中Y5=0,第5个数码管选通并显示,其它数码管不显示。 数码管显示方式为动态扫描方式,当P0口送第一个数0的码型到锁存器时,P2送位选地址01H,即Y0=0,只有第一个数码管亮,显示0,其他数码管不显示。当P0口送第二个数1的码型到锁存器时,P2送位选地址02H,即Y1=0,只有第二个数码管亮,显示1,其他数码管不显示。即每次只有一个数码管点亮,8个数码管是轮流被点亮的,轮流点亮的间隔时间很短(一般用延时程序延时几个毫秒),由于视觉的暂留现象,看到的却好象全都点亮着,这就是动态扫描。 图1图中C51与8位LED显示器的接口。74HC573的P00P0

8、7作为段选码口,经过74LS138驱动与LED相连。74HC573的P00P07作为位选码口,经过74LS138驱动与LED的位相连。将各个位选线直接连接在单片机的其中一个输出口,进行位扫描,完成动态的显示。AT89C51引脚图AT89C51单片机的P口特点: P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。 在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。P1口的输出缓冲器可驱动(

9、吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。 P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。 在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行 MOVX DPTR)时,P2口送出高8位地址。在访问8位地址

10、的外部数据存储器(如执行 MOVX RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。 P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。 74hc573引脚图及功能真值表逻辑图 SL74HC573 跟LS/AL573 的管脚一样。器件的输入是和标准CMOS 输出兼容 的;加上拉电阻,他们能和LS/ALSTTL 输出

11、兼容。当锁存使能端为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。输出能直接接到CMOS,NMOS 和TTL 接口上。操作电压范围:2.0V6.0V。低输入电流:1.0uACMOS 器件的高噪声抵抗特性 74HC573引脚图 74HC573功能表 数码管显示数字的码型由数码管的数据脚adp决定,图2为数码管的笔段分布图,由于是共阴极的,所以当adp为高电平时相应的笔段会亮,电路中P1.0P1.7分别接数码管的a.b.c.d.e.f.g.dp,得到09这10个数字的码型如表1所示。 图3 表一引脚P0.7P0.6P0.5P0.4

12、P0.3P0.2P0.1P0.0数字码型笔段dpgfedcba0011111103FH00000110106H0101101125BH0100111134FH01100110466H0110110156DH0111110167DH00000111707H0111111187FH0110111196FH10000000小数点80H 按键模块按建模块用来切换显示时间或日期,以及对时间和日期进行校正修改和相关设置功能,该系统只使用S1和S2两个按键。主程序流程图如图所示: 程序如下:#include /包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit key_change=P3

13、0; /定义端口参数sbit key=P31;sbit LED=P12; /定义指示灯参数code unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /共阴数码管 0-9unsigned char StrTab8; /定义缓冲区unsigned char minute=55,hour=20,second,date=24 ,change,month=12 ,year=10,number; /定义并且初始化值 20:55:00 20101224/*/* 延时函数 */*/void delay(unsigned

14、int cnt) unsigned char x,y; for(x=cnt;x0;x-) for(y=10;y0;y-);/*/* 显示处理函数 */*/void display_time() StrTab0=tabhour/10; StrTab1=tabhour%10; StrTab2=0x40; StrTab3=tabminute/10; StrTab4=tabminute%10; StrTab5=0x40; StrTab6=tabsecond/10; StrTab7=tabsecond%10; void display_day() StrTab0=0x5b; StrTab1=0x3f;

15、StrTab2=tabyear/10; StrTab3=tabyear%10|0x80; StrTab4=tabmonth/10; StrTab5=tabmonth%10|0x80; StrTab6=tabdate/10; StrTab7=tabdate%10; /*/* LED数码管闪烁 */*/void sd_minute() int i; for(i=10;i=0;i-) StrTab0=tabhour/10; StrTab1=tabhour%10; StrTab2=0x40; StrTab3=0x00; StrTab4=0x00; StrTab5=0x40; StrTab6=tabse

16、cond/10; StrTab7=tabsecond%10; delay (1); /扫描间隙延时,时间太长会闪烁,太短会造成重影display_time(); /*/* 主函数 */*/void system() TMOD |=0x01;/定时器0 10ms in 12M crystal 用于计时TH0=0xd8; /初值TL0=0xf0;ET0=1;TR0=1; TMOD |=0x10; /定时器1用于动态扫描TH1=0xF8; /初值TL1=0xf0;ET1=1;TR1=1; EA =1;void display_time(); /调用显示处理void deal_change()if(k

17、ey_change=0) change+; while(!key_change) display_time(); change=change%5;void deal_change0()if(change=0) if(key=0) number+; number=number%2; while(!key); if(number=0) display_time(); if(number=1) display_day(); void deal_change1()if(change=1) display_time(); sd_minute(); if(key=0) minute+; while(!ke

18、y) display_time(); if(minute=60) minute=0; hour+; if(hour=24) date+; if(date=30) month+; if (month12) month=1; if (month=1) year+; void deal_change2()if(change=2) display_time(); if(key=0) hour+; while(!key) display_time(); if(hour=24) hour=0; date+; if(date=30) month+; if (month12) month=1; if (mon

19、th=1) year+; void deal_change3()if(change=3) display_day(); if(key=0) date+; while(!key) display_day(); if(date=30) date=1; month+; if(month12) month=1;if(month=1) year+; void deal_change4()if(change=4) display_day(); if(key=0) month+; if(month12) month=1; if(month=1) year+; while(!key) display_day(

20、); /*/* 定时器1中断 */*/void time1_isr(void) interrupt 3 using 0/定时器1用来动态扫描 static unsigned char num; TH1=0xF8;/重入初值TL1=0xf0;switch (num) case 0:P2=0;P0=StrTabnum;break; /分别调用缓冲区的值进行扫描 case 1:P2=1;P0=StrTabnum;break; case 2:P2=2;P0=StrTabnum;break; case 3:P2=3;P0=StrTabnum;break; case 4:P2=4;P0=StrTabnum

21、;break; case 5:P2=5;P0=StrTabnum;break; case 6:P2=6;P0=StrTabnum;break; case 7:P2=7;P0=StrTabnum;break; default:break;num+; /扫描8次,使用8个数码管if(num=8) num=0;/*/* 定时器0中断 */*/void tim(void) interrupt 1 using 1static unsigned char count;/定义内部静态变量TH0=0xd8; /重新赋值TL0=0xf0;count+; switch (count) case 0: case 2

22、0: case 40: case 60: case 80:display_time(); /隔一定时间调用显示处理 break; /case 50:P1=P1; /半秒 LED闪烁 / break; default:break; if (count=100) count=0; second+; /秒加1if(second=60) second=0; minute+; /分加1 if(minute=60) minute=0; hour+; /时加1 if(hour=24) hour=0; date+; if(date=30) date=0; month+; if(month12) month =

23、1; year+; void main() system();while(1) deal_change(); deal_change0(); deal_change1(); deal_change2(); deal_change3(); deal_change4(); 四、项目设计结果分析(分析试验过程中获得的数据、波形、现象或问题的正确性和必然性,分析产生不正确结果的原因和处理方法)1.当程序下载完,在数码管显示的和预想中的电子表有很大出入,甚至是乱码。感觉是程序问题。开始查看程序,看了三遍,终于发现问题,分析改正过来后再试,终于完成。2.在数码管显示的时候,分计时器抖动得很厉害,设定延迟抖

24、动的原因是为了区分调节时间的时候好区分到底是调的哪一部分。延迟抖动过于长就会对按键有影响,会使得按键不灵敏,需要久按或长按按键数码管才有反应。这时候需要修改程序的延迟程序使延迟时间变短短些。五、参考文摘(相关文摘不少于5篇,记录每篇文献的作者姓名.文献名称.文献发行城市:文献出版社,出版年;文献内容摘要, 每篇不少于100字)1.单片机微型计算机与接口技术 2012年1月第四版 电子工业出版社 李群芳 肖看 张士军 编著2.51单片机应用开发速查手册 2009年4月第1版人民邮电出版社 王守中 赵朋朋 索世文 编著3.例说51单片机(C语言版) 2008年4月第1版人民邮电出版社 张义和 王敏

25、男 许宏昌 余春长 编著4.C语言设计完全手册 2006年4月第1版人民邮电出版社 张立科 编著5.MCS-51单片机原理与接口技术 2009年7月第2版 电子工业出版社 汪德彪 编著 22课程设计评分表评 分 项 目评分成绩1选题合理、目的明确(10分)2设计方案正确,具有可行性、创新性(30分)3项目工艺水平及测试性能达到技术要求(25分)4参考文摘不少于5篇(10分)5答辩(25分)总 分(100分)答辩记录:1. 所设计的程序运用了哪些模块?答:运用了数码管显示模块、晶振模块、按键模块。2. 所运用到的模块都有什么作用?答:数码管显示时间和日期,晶振模块将时钟芯片中的时、分读取到缓冲区内,并送到显示电路,按键模块用以校正时间和日期。3.在硬件方面,单片机的什么口作为输出的?答:P0口作为输出,P0.0P0.7对应显示小时、分钟、秒钟。指导教师综合评语:指导教师(签名) 日 期: 年 月 日

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922