版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用课程设计题 目自行车里程计/速度计二级学院电子信息与电气工程学院班 级姓 名学 号指导教师设计时间2010-6-212010-7-2目录、概述1、设计目的12、课题简介1二、系统设计1、总体设计方案22、硬件部分简介3(a) at89c51芯片简介3(b) 硬件设计43、软件部分5(a) 初始化程序6(b) 主程序8(0中断程序9(d) 里程、速度处理程序11(e) 显示子程序14(f) 延吋子程序16三、调试171、硬件调试172、软件调试17四、操作说明19五、参考文献20六、心得体会21七、附录221、元器件清单222、整体原理图233、完整程序244、实物图33自行车里
2、程计/速度计的设计一.概述1、设计目的本设计采用at89c51单片机作控制,利用霍尔元件等器件设计一个可用 led数码管显示当前自行车行驶的距离及速度并具有超速报警功能的口行车 里程/速度表,使其作为口行车的一种辅助工具,让口行车的功用更强大,给 人们带来更多的方便。2、课题简介自行车被发明及使用到现在已有两百多年的历史,在这两百年间人类在 不断的尝试与研发过程中,自行车发展的目的也从最早的代步工具转换成休 闲娱乐的用途,随着生活水平的捉高,人们希望自行车的功能更强大,而里 程计/速度计正满足了这个需求。现在先进的里程/速度计不仅能显示实时的 速度和里程,还显示时间,甚至具有测量骑车人的心跳、
3、显示骑车人热量消 耗等功能。由于时间有限,本设计完成的功能减为两个,即测量并通过led数码管 进行动态显示当前的速度和里程,并在超速时发岀警报。要求达到的各项指标及实现方法如下:1. 利用霍尔传感器产生里程数的脉冲信号。2. 对脉冲信号进行计数。实现:利用单片机自带的计数器t1对霍尔传感器脉冲信号进行计数。3. 对数据进行处理,要求用led显示里程总数和即时速度。实现:利用软件编程,对数据进行处理得到需要的数值。最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用 单片机作控制,显示电路可显示里程及速度。二、系统设计1、总体设计方案采用at89c51芯片,用霍尔元件将车轮的转速转
4、换成电脉冲,经过处理 后送入单片机。里程及速度的测量,是经过at89c51的定吋/计数器测出总 的脉冲数和每转一圈的时间,再经过单片机的计算得出,计算结果通过led 显示器显示出來。传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各 种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信 号的器件或装置。随着信息产业、工业自动化、医疗仪器等的e速发展和计 算机应用的普及,需耍大量的传感器将被测或被控的非电信号转换成可与计 算机兼容的电信号。作为输入信号,这就给磁传感器的快速发展提供了机遇, 形成了磁传感器的产业。其中最具代表的磁传感器就是霍尔传感器,在自动 检测系统中,
5、利用霍尔传感器测转数是一种最基木的测量工作。单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而口包描计 算、定时、信息处理等功能当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并 从引脚12即p3. 2外部中断0端输入,传感器每获取一个脉冲信号即对系统 提供一次计数中断。每次中断代表车轮转动一圈,中断数n轮圈的周长为l 的乘积为里程值。计数器t1计算每转一圈所用的时间t,就可以计算出即 时速度j当里程键按下时,里程指示灯亮,led切换显示当前里程,与当 速度键按下时,速度指示灯亮,led切换显示当前速度,若自行车超速,系 统发岀报警信号,指示灯闪烁。里程数据自动记忆,也可用
6、于电动自行车、 摩托车、汽车等机动车仪表上。设计包描硕件、软件两部分,硕件电路包wat89c51单片机的外围电路 以及led显示电路等,这里对硬件部分只做简单介绍,主要阐述的是软件部 分的设计,包括数据初始化程序的设计、主程序的设计、处理了程序的设计、 显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析, 对本次设计进行总结。2、硬件部分介绍 (a)at89c51芯片简介at89c51是一种带4k字节闪存可编程可擦除的只读存储器即为(fperom一flash programmable and erasable read only memory)的低电 压、高性能cmos 8位微处
7、理器,俗称单片机。管脚说明:vcc:供电电压。gnd:接地。p0 口: p0 口为一个8位漏级开路双向i/o 口,每脚可吸收8ttl f j电 流。当p1 口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在f1ash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须 被拉高。p1 口 : p1 口是一个内部提供上拉电阻的8位双向1/0 口,p1 口缓冲器 能接收输出4ttl门电流。p1 口管脚写入1后,被内部上拉为高,可用作输 入,p1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
8、在flash编程和校验时,p1 口作为第八位地址接收。p2 口 : p2 口为一个内部上拉电阻的8位双向1/0 口,p2 口缓冲器可接 收,输岀4个ttl门电流,当p2 口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。p3 口 : p3 口管脚是8个带内部上拉电阻的双向i/o 口,可接收输岀4 个ttl |'j电流。p3 口也可作为at89c51的一些特殊功能口,如下表所示:p3.0 rxd (串行输入口)p3.1 txd (串行输出口)p3.2/int0 (外部中断0)p3.3/int1 (外部中断1)p3.4 t0 (记时器0外部输入)p3.5t1 (记时器1外部输入)p3
9、.6/wr (外部数据存储器写选通)p3.7/rd (外部数据存储器读选通)rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的 高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存 地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间, 每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的 /psen信号将不出现。3(b)硬件设计自行车里程计/速度计电路原理图见附录。本次设计信号的捕获采用的是霍尔传感器。霍尔器件具有许多优点,它们的 结构牢固、体积小、重量轻、
10、寿命长、安装方便、功耗小、频率高(可达1mhz)、 耐震动、不怕灰尘、油污、水汽及烟雾等的污染或腐蚀。霍尔线性器件的精度高、 线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位 置重复精度高。取用齐种补偿和保护措施的霍尔器件工作温度范围宽,可达一 55°c150°c。xtal1和xtal2分别为反向放大器的输入和输出。该反向放大 器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时 钟源驱动器件,xtal2应不接。由于输入至内部时钟信号要通过一个二分频 触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低 电平要求的宽度。p0 口
11、作为输岀口用于显示历程状态和速度状态。由于p0 口没有上拉电阻, 因此作为输出口时要加上上拉电阻来驱动led数码管的点亮。接于引脚10即 p3.2、rxd的开关用于控制改变显示的方式,当开关闭合时,显示速度;开关打 开时显示里程。第12脚即外部屮断0用于对轮子圈数的计数输入,轮子每转一 圈,霍尔传感器输出一个低电平脉冲。第i三脚即外部屮断1用于控制定时器 t1的启停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数脉冲经 二分频后形成,这样,每次定时器t1的开启时间刚好为转一圈的时间,根据轮 子的周长就可以计算出自行车的速度。p1.4 口和p1.5 口用于eepr0m存储器 24c01的存
12、取控制。11脚输出用于超速时的报警,此时蜂鸣器发出声音,同时 led灯闪烁。led数码管采用四位相连的共阴极数码管,片选信号分别通过三极管接 至21-24管脚即p2. 0-p2. 4 口,从而实现里程和速度的动态显示。自行车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、 整形,单片机的计算处理,数码管的实时显示和单片机外围基本电路的设计,两 大主要器件就是传感器和单片机。3、软件部分模块化结构设计即是根据要求和硕件设计的结构,将整个系统的功能分成许 多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方 法,使得系统的整个功能和各部分的功能趋于明朗化。当系统出现
13、问题,就叮以 根据功能设置找出问题的根源,从而更快地解决问题。所以说,在整个设计过程 中,软件设计必须与皱件设计紧密地结合在一起。软件设计包括初始化程序、主程序、行车过程中里程和速度计算子程序、延 时子程序、中断服务子程序、显示子程序等。系统软件总体流程图如图3所示总体设计思路:首先进行初始化,选择车轮周长,p3.0是用于里程和速度切 换的,低电平为显示速度,高电平为显示里程。根据p3.0的状态来决定显示内 容,p3.0=l时,转到计算速度子程序并进行显示;p3.0=0吋,转到计算里程子程 序并进行显示。p1.0和p1.1 口分别用于显示里程状态和速度状态。pl.2、p1.3、 p1.6和p1
14、.7 口分别用于设置轮圈的大小,低电平有效。中断0用于对轮子圈数 的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存 器中的内容计算和判断出行驶里程数。中断1用于控制定时器t1的启/停,当输 入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样, 每次定时器t1的开启吋间刚好为转一圈的吋间,根据轮子的周长就可以计算出 自行车的速度。计算速度显示速度图3. 1 系统整体流程图主要内存单元及用处:50h: eeprom器件寻址字节存放单元51h:eeprom传送字节数存放单元30h: eeprom发送数据缓冲单元40h: eeprom读岀数据存放单元oaoh:
15、eeprom寻址字节写入0a1h: eeprom寻址字节读出62h: dptr计数扩展高8位6ch:定时器t1计数扩展高8位6dh:定时器t1计数扩展高816位60h、61h、62h:里程计数单元68h、69h、6ah、6bh:存放自行车每圈时间数 70h、71h、72h、73h:显示bcd码数据存放用 11h15h:存放被除数16h19h:存放除数(a)初始化程序初始化程序主要完成以下工作:将t1设为外部控制定时器方式;外部屮断0及 外部小断1设为边沿触发方式;将部分内存单元清0;设置轮子周长;开小断及 定时器;将eepr0m中的数据调入内存。clearmen训0vtmod, #90h;t1
16、为16位外部控制定时器movsp, #75h;堆栈从75h开始setbpxo;外部小断0优先级为1setbito;外部小断0用边沿触发setbit1;外部小断1用边沿触发clra;清人mov20h, a;清内存小特定单元mov6ch,a;清内存小特定单元mov6dh, a;清内存小特定单元mov70h, a;清内存小特定单元mov71h, a;清内存小特定单元mov72h, a;清内存小特定单元mov73h, a;清内存小特定单元mov60h,a;清内存小特定单元mov61h, a;清内存小特定单元mov62h, a;清内存小特定单元mov63h,a;清内存小特定单元deca;a%0ffhmo
17、v68h,a;内存置数据offhmov69h,a;内存置数据offhmov6ah, a;内存置数据offhmov6bh,a;内存置数据offhmovpl, a;p1 口置 1clear1: jbpl. 2, key1;根据p1.2设置状态mov21h, #ofhljmpclear2;转clear2key1:jbpl. 3, key2;根据p1.3设置状态mov21h, #12hljmpclear2key2:jbpl. 6, key3;根据p1.6设置状态mov21h, #14hljmpclear2key3:jbpl. 7, err;根据p1.7设置状态mov 21h,#19hclear2:se
18、tbtri;开定吋器t1setbea;开中断允许setbexo;开外中断0setbet1;开定时中断t1setbp3. 1;关报警器lcallviicread;将eepromi |'原里程数据调入内存reterr:cplp3. 1;未设置车轮周长,开始报警lcalldl5s;延吋5sljmpclear1;重新初始化初始化具体过程:首先对pl. 2口的内容进行查询,若p1.2=0,则说明p1.2口接的 按钮被按下,即选择第一种车轮周长,同吋将周长存入21h单元内;若p1.2=l, 则第一个按钮没被按下,再对pl3口的内容进行查询,内容为0则将其周长值存 入21h中,不为0则扫描p1. 6
19、,内容为0则将其周长值存入21h中,不为0则扫描p1.7, 若p1.7为0则将其周长值存入21h中,不为0则说明没有选择车轮直径,此时开始 报警,并调用延时子程序。接着再从pl2口扫描,如此循环,直到有键按下后停 止报警。图3.2初始化程序流程图(b)主程序主程序根据p3. 0 口的开关状态选择里程速度显示。start:lcallclearmen;上电初始化start1:jbp3. 0, displays;p3. 0=1,显示里程lcalldisplayv;p3. 0二0,显示速度start2:sjmpstart1;循环图3.3 主程序流程图(c)用外部中断0实现的里程计数程序定时中断是为满足
20、定吋或计数的需耍而设置的。在单片机内部有两个定吋/ 计数器,以对其中的计数结构进行计数的方法,来实现定吋或计数功能。当结构 发生计数溢岀吋,即表明定吋吋间或计数值已满,这吋就以计数溢出信号作为中 断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求 是在单片机芯片内部发生的,因此无须在芯片上设置引入端。定时/计数器控制寄存器tcon是8位寄存器,地址为旳h,可以位寻址。其 高4位用于定吋/计数器中断控制,低4位借给外部中断,用做中断标志和触发 方式选择位。木设计采用定时中断,对自行车的里程和速度进行计数。pushaccpushpswinc6011clracjnea,60h,i
21、ntexooutinc6111cjnea,61h,intexooutinc6211intexo:intexoout:lcall viicwritesetb ex1;累加器堆栈保护;状态字堆栈保护;圈数加1;清人;计数器没溢出转intexoout;溢出进位(6111加1);计数器没溢出转intexoout;溢出进位(6211加1);里程数据存入eeprom;开外部中断1pop pswpop accreti;状态字恢复 ;累加器恢复 川|断返回;每转一圈时间计数处理程序,每圈时间放在68h6bh单元(1intex1:pushacc;累加器堆栈保护pushpsw;状态字堆栈保护clrexi;关外部中
22、断1jnbooh,intex11;溢出标志为0转intex11movtl1, #0ffh;溢出时计时单元赋#offh(显示速度为零)movth1, #0ffhmov6ch, #0ffhmov6dh, #0ffhintex11:mov68h, tl1;将时间计数值移入暂存单元68h-6bhmov69h, th1mov6ah,6chmov6bh, 6dhclramovtl1,a;计数单元置零movth1, amov6ch,amov6dh, aclrooh;清溢出标志poppsw;状态字堆栈恢复popacc;累加器堆栈恢复reti;屮断返回;t1计数器中断服务程序。(计数器t1由外部中断1输入控制,
23、当为高电平时计时开始)intt1:pushacc;累加器堆栈保护pushpsw;状态字堆栈保护inc6ch;6c计时单元加1mova, 6ch;6c单元内容移入ajnzintt11;不为0,转intt11inc6dh;进位,6dh单元加1mova, 6dh;移入ajnzintt11;不为0,转intt11setbooh;计时器溢出,置溢出标志位intt11:poppsw;状态字堆栈恢复popacc;累加器堆栈恢复10图3.4屮断流程图(d) 里程、速度处理程序里程处理程序外屮断0服务程序用于对单片机p3. 2 口输入的圈脉冲进行计数,为十六进制计 数器。60h为低位,62h为高位。每次计数一次
24、后,对里程数据进行一次存储操 作。当车轮每转一圈,通过霍尔元件将脉冲数输入单片机内,通过计数器计出脉冲数,再用乘法子程序算出里程数。sss:mov 19h,#64h除数最高位赋值mov 18h,#00h除数赋值mov 17h,#00h除数赋值mov 16h,#00h除数赋值mov 11h, #00h被除数赋值mov 12h, #00h被除数赋值mov13h,62h;被除数赋值mov14h,61h;被除数赋值mov15h, 60h;被除数赋值lcall divst;调除法程序lcall bcdst;跳到二进制转bcd码程序mova, 25h;将25卅内容移入aanla, #ofh;高四位为0mo
25、v70h, a;移入70hmova, 25h;将25h内容移入aswapa;交换高低字节anla, #ofh;高四位为0mov71h, a;移入71hmova, 24h;将24h内容移入aanla, #ofh;高四位为0mov72h, a;移入72hmova, 24h;将24h内容移入aswapa;交换高低字节anla, #ofh;高四位为0mov73h, a;移入73hret开始v;返回)图3.5里程处理程序流程图速度处理程序外中断1服务程序用于处理轮子转动一圈后的计时数据。当标志位(00h)为1 时,计数溢出,放入最大时间值(为#offh);当标志位为0时,将计数单元(tl1、th1、6c
26、h、6dh)的值放入68h6bh单元。定时器计出每转一圈所用的时间,用鬥行车车轮的周长除以时间就得出鬥行车的速度。18h,68h17h,69hvvv:movmovmov 16h,6ahmov 11h, itoohmov 12h,#00hmov 13h,#36hmov 14h,#oeehmov 15h,#80hlcall divstmov 14h,#00hlcall bcdstmov a,25hanl a,#ofhmov 70h, amov a, 25hswap aanl a,#ofhmov 71h, amov 72h,#00hmov 73h,#00hret;除数赋值 ;除数赋值 ;除数赋值 ;
27、被除数赋值 ;被除数赋值 ;被除数赋值 ;被除数赋值 ;被除数赋值 ;调除法程序 ;舍去一位 ;跳到二进制转bcd码程序 ;以下将速度值放入显示单元 ;高四位为0;放入70h内;再取数;高低字节交换 ;高四位为0 ;放入71h内 ;72h 为 0 ;73h 为 0;子程序返回12图3. 6速度处理程序流程图13(e) 显示子程序采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划 段a-h同名端连在一起,而每一个显示器的公共极com各口独立地受1/0线控制。 cpu向字段输岀口送出字型码时,所有显示器接收到相同的字型码,但究竞是哪 个显示器亮,则取决于com端。可以采用分时的方法
28、,轮流控制各个显示器的 com端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时 间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应, 尽管实际上各位显示器并菲同时点亮,但只要扫描的速度足够快,给人的印象就 是一组稳定的显示数据,不会有闪烁感。本设计p2.0、p2.1、p2.2、p2. 3信号一起组成位选通的位选信号,p0.0 p0. 7信号一起组成段码选通的段选信号,通过软件编程,先把所要显示的数据 放入存储单元,然后把数据送入段选通对应的地址,再选通某一个led,逐步完 成四个led的显示。;里程显示控制程序displays:setb pl. 0;点亮l
29、ed1clrpl. 1;关闭速度指示灯setbp3. 7lcallssslcalldisplayljmpstart1;速度显示程序displayv:clrp1.0setbpl. 1clrp3. 7lcallvwmova, 71hsubba, #04hjncwaringsetbp3. 1vi:lcallretdisplaydisplay:movrl, #70hmovr2, #ofehplay:mova, r2movp2, amova, r1anla, #ofhmovdptr, #tabmovca, ©a+dptrmovpo,alcall dl1msincr1mova, r2jnbacc
30、. 3, endoutrlamov r2,aajmp playend0ut:setbp2.0setb p2. 1setb p2. 2setb p2. 3ret;共阴极段码表tab:db;将圈数转为公里数;显示公里数据;跳回 start 1;关闭led1 (里程指示灯);点亮led2 (速度指示灯);每圈吋间换算为km/h程序;将i位数(bcd码)值植入a;与预定报警值比较;时速超过40时报警;关报警灯;显亮一次;子程序返回;显示单元首址;扫描字;扫描字送入a;放到端口 p2;取显示数据;高四位清0;取段码表首址;查显示数据对应段码14;段码输出;点亮ims;指向下一显示数据地址;取扫描字;已扫
31、描到第四位,转end0ut退出;循环左移;放回r2;转卩口丫循环;关扫描;关扫描;关扫描;关扫描3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h;子程序返回db 7fh, 6fh,77h,7ch,39h,5eh,79h,71hdb oohv返回图3. 5显小程序流程图(f)延时子程序;lms延时程序 利用循环实现延时dl1ms:mov r6,#14hdl1:mov r7,#19hdl2:djnz r7,dl2;循环19h次djnz r6,dl1;循环14h次ret;出错闪烁利用延时255msdl5s:mov r5,#offhdl3:lcall dl1ms;调用1ms
32、延时djnz r5,dl3;循环255次ret二、调试1. 硬件调试硬件调试时,我们首先检查了接线,对照电路原理图,确保准确无谋。其次 是检查各个焊点是否有虚焊的情况,检查无谋后,接通经稳压后的5v电源。硬 件的修改可在元器件参数方面调整,如电阻的阻值等。2. 软件调试先用keil软件输入完整的程序,进行编译。首先,新建一个项口选择at89c51,新建一个文件,将程序输入,输完后 保存,保存时需加后缀名.asm。然后将文件添加到新建的工程下。进行检错和编译,窗口如图3.2所示。ision3fie edrt view proc! debug flosh petipherols toois svc
33、s vvndow help q r总电血aaxs target 1 £富proj«ct workpxq-b target 1-口 soiree group 1 園 llyy.asm就声 他©©戏凶s5start1: jb p30.displayslcall displayvstart2:sjmp start1/intexo program"intexo: push accpush psvihc 6ohclr asirnutationl 520 clbuild target 'target 1 assembling llyyasm lin
34、kingprogram size: ddta-80 xdata-0 code-874 creating hex file from h 111""lir1 - 0 error(s)r 0 warning(s)-build c<»mmar>d find in fites /图3.1 keil编译窗口编译无谋后即可运行,运行时可从peripherals屮调出输出口 pop3来观察 筑d出情况。运行时窗口如图3.1所示。图3.2keil运行窗口17接着再使用proteus仿真软件进行仿真。首先新建一个文件,选择所需的 元件并排列好,根据电路原理图进行布线。当
35、完成原理图布线后,利用proteusisis编辑环境所提供的电器规则检查命令对设计进行检查,并根据系统提供的错误检查报告修改原理图。直到通过电器规则检查为止。然后在keil中生成hex 文件,双击at89c51芯片,将完整的程序灌入芯片,单击左下角的开始箭头即 可开始模拟仿真。在仿真过程中遇到过一些问题,针对这些问题做了些软件方面的调整。刚开始仿真吋,p0u是灰色的,数码管没有点亮。经检查是rtltpo 口内部 没有上拉电阻,因此,必须另外加上,上拉电阻一段接p0 口,另一端直接接到 电源的正集。接上后数码管点亮,但显示的是乱码经过仔细的检查,发现了程序 中的错误,硬件中选用的是共阴极数码管,
36、而程序中错用了共阳极的段码表,从 而造成了应该点亮的部分没亮,而不该点亮的部分反而亮了的错误情况。18四、操作说明本设计为自行车里程计/速度计,实现了里程速度计的基本功能。接通电源后,由于未选择车轮周长,蜂鸣器报警提示,同时led灯d3闪烁, 直到有键按下。当按下p1. 2 口所接开关sw2时选择车轮周长1,按下p1. 3 口所 接开关sw3时选择车轮周长2,按下p1. 6 口所接开关sw4时选择车轮周长3,p1. 7 口所接开关sw5时选择车轮周长4,选择周长后,每按下开关sw6次表示车轮 转了一圈,此时数码管显示当前的里程值,此时若按下开关sw7则数码管显示当 前的速度值,当超速时蜂鸣器报
37、警。19五、参考文献1 单片机原理及应用技术 范力旻主编电子工业出版社2 单片机原理及其接口技术(第二版)胡汗才编著 北京大学出版社3 51系列单片机设计实列楼然苗李光飞编著北航出版社4 单片微机测控系统设计大全 土福瑞编著 北航出版社5 例说8051张义和编著人民邮电出版社6 传感器应用技术141例松井邦彦,梁瑞林编著科学出版社,7 单片机设计教程孙惠芹编著电子工业出版社8 单片机及应用系统设计原理与实践刘海成编著北京航空航天大学出版 社9 单片机原理与应用系统设计欧伟明编著电子工业出版社10 单片机原理与应用实例仿真李泉溪主编北京航空航天大学出版社11 单片机原理与应用技术实践卢胜利编箸机
38、械工业出版社12 单片机实践应用与技术马长林,陈怡,程利民编著清华大学出版社20六、心得体会通过两周的时间,我们较成功的完成了这次课程设计。刚开始选课题的时候,对各个课题都不了解,难易程度也不太清楚,前面选 的几个课题有的比较简单,有的又和其他的组冲突,所以课题定的比较晚,后来 感觉对这个方面还是比较感兴趣的,而且它的实际用途也比较大。通过查阅一些 资料,我们确定了总体方案。接下來就是采购元器件了,i大i为以前没买过,没什 么经验,买的时候也没仔细看,回来后发现元器件都比较旧,特别是89c51芯片, 引脚都发黑了,只好去换了一个。接卜來的几犬就是焊接电路了,由于我们选的 电路比较复杂,所以焊接
39、也是一项大工程。开始我们把所有元件都焊在了一块板 子上,排列比较紧凑,结果导线全部接好以后,板子上密密麻麻的全是线,显得 很乱。调试的时候,结果不止确,经过一些改动和调整仍不见起色,看着这么多 线不知从何下手,后來正负极之间发生短路现象。我们不得不放弃这块板子,准 备重新做。于是我们重新买了一套兀件,不同的是,这次买了两块板子,根据上 一次的经验教训,我们准备将电路分两部分,其中一块板了上只有最小系统,两 块板子通过排线相互连接。这样焊接出來的板子看起來就清晰的多,而且,两个 人一起焊,每人一块板子焊得更快,效率更高。经过一天的调试,结果终于正确 t,看到止确的结果很开心。由于焊接两次,浪费了
40、较多时间,因此时间比较紧张,做得比较辛苦。这次的课程设计我学到了很多知识,也有了一些经验。不论是在动手动脑方 而,都使我受益良多。21七、附录1、元器件清单序号名称代号型号数量1-4-h ii.心hu189c5112-4-h ii.心hu3tc402413芯片u2at24c0114电阻r1,r21kq25电阻r3, r4, r7, r8, r9, rio, rll, r12, r134. 7kq96电阻r25, r26, r278. 2kq37电阻r15, r16, r17, r18, r19, r20, r21, r221.8kq88电阻r24, r6330 q29电容c2, c333pf2
41、10电容cllouf111二极 管q1,q2, q3, q4, q78550512三极管q5, q6, q88050313发光 二极 管d1,d2, d35mm红色314晶振xi12miiz115四位 共阴 极数 码管7seg-mpx4-cc116蜂鸣 器lsisreaker117按键开关sw1, sw2, sw3, sw4, sw5, sw6, sw7sw-spst718pcb板219导线若干2、电路原理图1918xtm1x17u2r5tpsena1eiap1.0 p1.1p1.2pi.3pi.4pi.s "6 pl.7sw-spsivccpo.o 心 p0.1/ad1 p0.2a
42、o2 p03'aw p0a'ad4 p0.5ad5 p0.6ad6 p0.7/ad7p2.ga8p2.i.a9 p2.2a1op2.4a12p25a13 »2.6'au p2.7.'a15p3.qtqp3 1jxo p3ainto p33.1mt1p3 4top3s/dr151.6k2!22五-21 -2l 玄-il12zji zs -jfi.(71/ isw spstcixmr6803360664024vccvccdivccsw7r23sw$pstls1mrspfakfrw24u1aw “壬仝丄«3 一舉mg _ledd2ledv24go1
43、sw2bw spstsw1sw-spstswgstsw4sw-spstxtal?po.1.'ad1 p0.2ad2 p03ad3 p0.va54r5tpo.tk'adip0.6'ad&p0.7,'ad7p2oa8p2.2'a10psenp2.3'a11aifp2.4a12e*p2.5a13 p26a14p2.7.'a15pi.o pi.ip3qz p$"xopi.2p3ainfop1.3p3a1nt1p1.4p3 4-10pi-5 pl ftp3yn< vpup3励aib9c51r263完整程序vsdaequpl.
44、 5vsclequpl. 4slaequ50hnumbytequ51hmtdequ30hmrdequ4011slawequoaohslarequ0a1hdphhequ62hth1hequ6chtiiihiiequ6di1;program input;orgoooohljmpstartorg0003hljmptntexoorgooobiiret1org0013hljmpintex1org001bhljmpintt1org0023hret iorg002bhrett;program clear;»»»»»»»»
45、7;»»»»»»»匕屯初始化程序clearmen: movtmod, #9011movsp, #75hsetbpxosetbitosetbtt1clramov20h, amov6cii, amov6dh, amov70h, amov71h, amov72h, amov7311, amov60h, amov61h, amov62h, amov63h, adecamov68h, amov69h, amov6ah, amov6bh, amovpl, aclear1: jbpl. 2, key1mov21h, #ofhljmpcle
46、ar2key1:jbpl. 3, key2mov2111, #1211ljmpclear2key2:jbpl. 6, key3mov21h, #14hljmpclear2key3:jbpl. 7, errmov21h,#19hclear2: setbtrisetbeasetbexosetbet1setbp3. 1lcall viicreadreterr:cpl p3. 1lcall dl5sljmp clear1;program start;start:start1:lcall clearmen jbp3. 0, displaysstart2:lcall displayvsjmpstart1&
47、#187;»»»»»»»»»»»»»»»»» ;tntexo program;fintexo:9 t t t t tpush9 9 9 9accpushpswinc60hclracjnea,60h,1ntexooutinc61hcjnea, 61h, intexoouttnc62hintexoout:lcall viicwritesetbexipoppswpopaccrett;intex1program;tntex1:push
48、accpushpswclrexijnbooh,intex11movtl1,#offhmovth1,#offhmov6cii, #offhmov6dh, #offhintex11:mov68h, tl1mov69h,th1mov6ah,6chmov6bii, 6dhclramovtl1, amovth1, amov6ch, amov6dii, aclroohpoppswpopaccreti;intt1 program;intt1:push accpush pswtnc 6chmov a, 6ciijnz intt11inc 6dhmov a, 6dhjnz tntt11setb ooh1ntt1
49、1: pop pswpop accretidisplay sdisplays:setb p1.0clr pl. 1setb p3. 7lcall ssslcall displayljmp start1display v ;displayv:clr pl.0setb pl. 1clr p3.7lcall vwmov a, 71hsubb a, #04hjnc waringsetb p3. 1vi:lcall display27viicwrite:acall wm0v9movsla, #slawmovnumbyt, #09hlcallwrnbytretwmov9:mov5fii, #5011movro, #mtdmovrl, #5fhmovr2, #09hwmov:mova, r1movr0, aincroincr1djnzr2,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版钢筋工程质量检验与维修服务合同
- 委托代理专利合同书6篇
- 合同履行的个原则
- 居民用水电供应与维修2024年度承包合同2篇
- 个人雇佣协议2篇
- 2024年版科学研究与技术开发合同
- 基于云计算的金融风险管理服务2024年度合同
- 财务内部审计报告范文
- 2024年度煤炭矿区生态修复工程承包合同2篇
- 《高血压和饮食》课件
- 统编版(2024)七年级上册道德与法治第三单元《珍爱我们的生命》测试卷(含答案)
- 2024年新人教版道德与法治七年级上册全册教案(新版教材)
- 小学六年级数学100道题解分数方程
- 产前检查的操作评分标准
- 食堂油烟系统清洗服务投标方案
- 入团志愿书(2016版本)(可编辑打印标准A4) (1)
- 采莲曲-kejian
- 医师定期考核简易程序练习及答案
- 医院科教科工作计划
- 随机前沿生产函数
- 各航空公司机型介绍
评论
0/150
提交评论