




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机课程设计实训报告题目 基于51单计时计数器系统设计姓 名: 所在学院: 电子与电气工程学院 所学专业:_ _电气工程及其自动化 班 级: 08电气学2班 学 号: 20082926113 完成时间: 2011年7月23日 单片机应用系统设计报告一 设计题目.3二 设计目的2.1设计目的要求32.2系统设计意义3三 系统硬件图3.1系统硬件电路原理图43.2各主要芯片及相应组成电路5四 流程图8五 系统说明与分析5.1设计步骤95.2单片机简要介绍10六 源程序11七 总结14八 参考文献15单片机应用系统设计报告一、设计题目计时/计数器系统设计设计说明:用80c51单片机定时/计数器和
2、led数码管显示计时时间。要求某键按下去开始计时,再按一次停止计时;另一键按下去则将时间清零。同时,在计数/定时到100时实现二极管的发光和蜂鸣器的报警 ,计数到10000显示器清零。二、设计目的该单片机最小应用系统设计目的及要求如下:2.1设计目的要求1采用单片机为核心器件,构成数字式电子秒表系统。2用四位一体的数码管分别显示时间/次数(格式要求为xxxx)3通过按键实现人机对话功能:要求某键按下去开始计时,再按另一键停止计时;第三键按下去则将时间/次数清零。 4.掌握单片机汇编编程技术中的设计和分析方法;5.学会使用并熟练掌握电路绘制软件protel99se(或dxp);6.掌握电路图绘制
3、及pcb图布线技巧。 2.2 系统设计意义1、在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。2、完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。3、完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。4、进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。5、用at89c51,dac0832设计出题目所要求的波形实现循环显示,并针对实际设计过程中软、硬件设计方面出现的问题提出相应解决办法。6、通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;
4、领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。三、系统硬件图图1 系统硬件电路原理图3.1系统的硬件电路原理图系统的硬件电路图如图1所示,从图中可以看到该电路主要有时钟电路、复位电路显示电路等组成。电源电路有设备提供,在原理图上不在说明,本文简单介绍电源电路的组成原理。3.2 各主要芯片及相应组成电路1)8051单片机: 2) 时钟电路 该电路主要有电容c1、c2和晶振y1组成。其组成原理图如图2所示,图中xtal1为芯片内部振荡电路的输入端,xtal2为芯片内部振荡电路的输出端。图2 时钟电路4)复位电路 单片机通常采用的复位方式有上电复位和
5、按钮复位两种。本次设计用的复位方式是按钮电平复位。其原理图如图3所示。当按下按钮sw时,电容对r6迅速放电,reset端变为高电平,reset松开后,电容通过电阻r6进行充电,reset端恢复为低电平。图3 复位电路绘制的相应pcb硬件电路图如下:四 流程图略 五、系统说明与分析5.1设计步骤1. 理解设计任务要求(通过阅读有关资料及调查研究);2. 对总体方案进行分析、论证;3. 系统硬件电路的设计;4. 系统控制软件的设计;1) 以功能明确、相互界面能清晰分割的软件程序为基础,确定主程序流程框图;2) 以主程序流程框图为基础,确定各模块程序算法及实现的功能,进一步确定各模块程序流程框图;3
6、) 根据软件流程框图,用at89c51汇编语言编写主程序和延时子程序;4) 系统软、硬件的调试;5) 编写课程设计说明书;6) 答辩验收。5.2 8051单片机简要介绍8051单片机包含中央处理器(cpu)、存储器(程序存储器rom和数据存储器ram)、定时/计数器、并行i/o接口(p1、p2、p3、p0共4个8位口)、一个双工串行接口和5个中断源等几大单元及数据总线、地址总线和控制总线三大总线等结构组成。mcs-51系列单片机中的8031、8051及8751均采用40pin封装的双列直接dip结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共3
7、2个i/o口,中断口线与p3口线复用。现在我们对这些引脚的功能加以说明:mcs-51系列单片机的内部结构示意图如图11所示。图11 mcs-51系列单片机的内部结构示意图· pin20: 接地脚。 · pin40: 正电源脚,正常工作或对片内eprom烧入程序时,接+5v电源。 · pin19: 时钟xtal1脚,片内振荡电路的输入端。 · pin18: 时钟xtal2脚,片内振荡电路的输出端。 8051的时钟有两种方式,一种是片内时钟
8、振荡方式,但需在18和19脚外接石英晶体(2-12mhz)和振荡电容,振荡电容的值一般取10p-30p。另外一种是外部时钟方式,即将xtal1接地,外部时钟信号从xtal2脚输入。 · 输入输出(i/o)引脚:pin39-pin32为p0.0-p0.7输入输出脚,pin1-pin1为p1.0-p1.7输入输出脚,pin21-pin28为p2.0-p2.7输入输出脚,pin10-pin17为p3.0-p3.7输入输出脚。· pin9: reset/v pd 复位信号复用脚。当8051通电,时钟电路开始工作
9、,在reset引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器pc指向0000h,p0-p3输出口全部为高电平,堆栈指针写入07h,其它专用寄存器被清“0”。reset由高电平下降为低电平后,系统即从0000h地址开始执行程序。然而,初始复位不改变ram(包括工作寄存器r0-r7)的状态。· pin30: ale/ 当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ale端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当
10、访问外部程序存储器,ale会跳过一个脉冲。 如果单片机是eprom,在编程其间, 将用于输入编程脉冲。 · pin29: 当访问外部程序存储器时,此脚输出负脉冲选通信号,pc的16位地址数据将出现在p0和p2口上,外部程序存储器则把指令数据放到p0口上,由cpu读入并执行。· pin31: ea/v pp 程序存储器的内外部选通线,8051和8751单片机,内置有4kb的程序存储器,当ea为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kb地址则读取外部指令数据。
11、如ea为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,ea端必须接地。 ·在对8751的eprom进行编程时,ea/vpp 脚还需加上用于编程的电压。六、源程序c语言源程序编写如下:#include<reg51.h>#include<intrins.h>#define uint unsigned int #define uchar unsigned charuchar code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uc
12、har dispbuf10=0,1,2,3,4,5,6,7;sbit p1_0=p10;sbit p1_1=p11;sbit p1_3=p13;sbit p1_4=p14;sbit p2_1=p21;sbit p2_2=p22;sbit p2_4=p24;sbit p2_5=p25;sbit k3=p33;sbit k2=p36;sbit k1=p37;uint i=0,a=0,b=0,c=0,d=0,e=0,f=0;void delay(uint z) for(z=0;z<1000;z+);void main() p1=0x00; p3=0xff; tmod=0x01;/计数定时器初始
13、化th0=0xd8;tl0=0xf0;ea=1;i=0;b=0;et0=1;tr0=0;while(1) if(k3 != 1) / k3键按下启动计数器 delay(9); / 延时10ms去抖 if(k3 != 1) / 确定是有键按下 while(k1 != 1); / 等待键松开 tr0 = 1; / 按键处理 void time_int(void) interrupt 1 th0=0xd0;tl0=0xf0; if(k2 != 1) / k2键按下暂停计数器 delay(10); / 延时10ms去抖 if(k2 != 1) / 确定是有键按下 while(k2 != 1); / 等
14、待键松开 tr0 = 0; / 按键处理 while(k1 !=0) / k1键按下暂停计数器 e=4; if(e!=0) /计数器停止时显示当前值p1_4=0;e-;p0=dispbuf3;delay(10) ;p1=0xff;e-;p1_3=0;p0=dispbuf2;delay(10) ;p1=0xff;e-;p1_1=0;p0=dispbuf1;delay(10) ;p1=0xff;e-;p1_0=0;p0=dispbuf0;delay(10) ;p1=0xff; tr0 = 1; i+;if (i = 10) i = 0; c+;if(c=10)p2_1=0;/当计数/计时到10时二
15、极管发光if(c=100)p2_2=0;/当计数/计时到100时另一个二极管发光if(c=100)p2_5=0;/当计数/计时到100时二极管发光蜂鸣器报警 /数码管 显示程序 dispbuf0= tablec / 1000; dispbuf1= table(c%1000)/100); dispbuf2= table(c%1000)%100)/10); dispbuf3= table(c%1000)%100)%10); e=4; if(e!=0)p1_4=0;e-;p0=dispbufe;delay(10) ;p1=0xff;e-;p1_3=0;p0=dispbufe;delay(10) ;p
16、1=0xff;e-;p1_1=0;p0=dispbufe;delay(10) ;p1=0xff;e-;p1_0=0;p0=dispbufe;delay(10) ;p1=0xff; 七、总结1、在设计系统过程中,学会用protel dxp画原理图和pcb图。通过查阅相关的书籍,设计了电路原理图,经过仿真和反复的修改电路中元器件的参数得到了可行的电路图。2、根据自己设计的pcb图开始电路板的制做,自己亲自动手制作电路板,在制板的过程中出现了较多问题,如腐蚀不彻底、pcb中焊盘设计过小、信号线的尺寸偏小等问题,又重新的做了一个电路板。然后用万用表检测需要元器件的质量,进行元器件的焊接,整个过程中大大的提高了动手能力。3、接下来是最关键的步骤电路板的调试,软硬件相结合,开始将程序烧到硬件电路中,刚开始工作比较正常,达到了题目的要求,当程序运行几个循环后,发现开始出现错误。输出的波形比较紊乱,然后进行故障的排查,检查硬件和软件都没有问题,再进行一次调试还是不行,通过查阅数模转换芯片的资料,发现问题的所在,自己将片选信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小班家园共育活动方案计划
- 特许投资分析中的技术应用试题及答案
- 2024年计算机二级重要策略试题及答案
- 2024年流程优化在投资中的应用试题及答案
- 生态保护区的选址与地理因素-试题及答案
- 电子商务职教市场的品牌建设与形象传播试题及答案
- 城市化进程对环境影响试题及答案
- 动物非感染性疾病新知试题及答案
- 2024互联网营销师效率提升试题及答案
- 2024年人力资源管理师考题解析试题及答案
- 2024年计算机二级WPS考试题库(共380题含答案)
- 汉字的奥秘探索
- 《海上风电设备运输规范》
- 2024年江苏省徐州市中考数学真题卷及答案解析
- 2025届云南省民族大学附属中学高三(最后冲刺)数学试卷含解析
- 湖北省七市2025届高三下学期第五次调研考试数学试题含解析
- 2024年太阳能电池片产业海外专利预警分析报告
- 2023河南专升本英语真题及答案
- 河流沿岸护栏安装工程协议
- 前庭阵发症-讲稿
- 第十三届全国交通运输行业城市轨道交通列车司机(学生组)职业技能大赛技术方案
评论
0/150
提交评论