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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(单片机课程设计Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计Word文件下载.docx

1、摘要: 本次课程设计通过自己的单片机学习板完成,在其扩展部分采用扩展芯片的办法完成电压数据的采集。电压采集系统包括了学习板的主板部分和A/D扩展部分。其中主板电路包括单片机的最小系统,键盘电路和8个LED数码显示电路,这部分电路已制成电路板。扩展部分包含了A/D转换电路,单片机电压采集电路,通过调节电位器来改变输入的电压值,在主板电路的数码管中显示出所采集的电压值,该部分电路的布线部分是由工作自己手工完成的。在扩展部分有热敏电阻单元和光敏电阻单元作为整个系统的实际功能的体现。本次课程设计运用C语言进行了编程,相对汇编语言来说C语言具有很强的灵活性。关键词:单片机学习板 A/D转换 ADC080

2、9芯片 电路图目 录1绪论 11.1系统总览 11.1.1课程的性质、目的和任务 11.1.2硬件部分 11.1.3软件部分 21.2系统设计方案 22 硬件电路设计 32.1 直流稳压电源 32.2单片机电路 32.2.1单片机电路板 32.2.2单片机最小系统 42.3A/D转换 42.3.1 ADC0809内部结构 42.3.2 ADC0809转换原理 52.3.3 ADC0809转换原理表格 52.3.4 AD转换电路 62.3.5电路设计 72.3.6采集数据和对应电压的转换 72.3.7检测AD转换是否结束 73软件设计 83.1系统框图 83.2正常采集 83.3循环采集 114

3、系统调试 124.1 硬件部分 124.2 软件部分 125 总 结 13参考文献: 13附录: 14附录一 电源印刷电路板布线图 14附录二 单片机板电路原理图 15附录三 ADC0809与单片机连接图 16附录四 单片机实物展示 17附录五 数码管显示电路 18附录六 程序总览 191绪论1.1系统总览1.1.1课程的性质、目的和任务单片机系统设计是在学习模拟电子技术、数字电子技术、单片机原理及应用等相关理论课程之后,所设置的重要的综合性实践教学环节,课程的任务是通过选题的设计、安装和调试,巩固已学的理论知识,综合应用所学知识,进行电子系统的设计,从而培养工程实践能力、创新能力,培养严肃认

4、真的工作作风和科学态度。通过查阅资料、选定方案、设计电路、安装调试、写报告等过程,得到一次科学研究工作的启蒙训练,也为以后利用单片机开发电子产品奠定坚实的基础。课程的任务是通过学生独立进行选题的设计、安装和调试,巩固已学的理论知识,综合应用所学知识,进行电子系统的设计,从而培养学生工程实践能力、创新能力,培养学生严肃认真的工作作风和科学态度。通过查阅资料、选定方案、设计电路、安装调试、写报告等过程,使学生得到一次科学研究工作的启蒙训练,也为以后利用单片机开发电子产品奠定坚实的基础。1.1.2硬件部分硬件部分整体框图如图11所示,其中单片机最小系统用的便是51学习板上的最小单片机系统。 图1-1

5、 硬件框图1.1.3软件部分C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。C语言有以下的几个特点:1语言简洁、紧凑,使用方便、灵活。2运算符丰富。3数据结构丰富。具有现代化语言的各种数据结构。4可进行结构化程序设计。5可以直接对计算机硬件进行操作。6生成的目标代码质量高,程序执行效率高。7可移植性好。1.2系统设计方案本次实验要求设计电压采集装置,课程设计分设计、制作和

6、调试三个部分。设计选题以单片机为核心,基本内容应包括单片机最小系统、键盘和LED显示电路,以及设计系统涉及的其他电路。系统硬件电路由标准电路和自制电路两部分组成。标准电路包括单片机最小系统、6个LED数码管电路和键盘电路,这部分电路已制成电路板,可根据设计需要进行配置选用。自制电路需自行设计焊接,包含标准电路不具备的其他电路。设计中采用了模数转换器,利用AD0809型8位MOS型A/D转换器。可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,实现模拟信号到数字信号的转换。控制部分采用单片机89C52来完成。显示部分利用LED数码管显示模块,来显示采集到的电

7、压分量。2 硬件电路设计2.1 直流稳压电源为使单片机工作需要提供5V和12V的直流稳压电源,电源电路图如(图1):电源印刷电路板图鉴附录1工作原理:利用二极管对交流电进行整流,然后再经过稳压滤波,将直流电压稳定在相应的幅值上,经过半波整流得到5V的电压,经过全波整流得到+12V.-12V的电压。2.2单片机电路2.2.1单片机电路板单片机电路板电路框图如图2;PROTEL绘制的原理图见附录2;PROTEL绘制的电路排版图见附录3。2.2.2单片机最小系统 CPU原理图该原理图包含单片机以及外部连接译码,锁存电路端口,其中的ALE,REST为高电平时用来启动ADC0809.P0、P2口控制数码

8、输出显示,P3口的P3.3、P3.4、P3.5控制按键,P1.1P1.3控制通道选择。晶振采用12MHZ,该频率有利于提高串口的通信可靠性,同时又保证单片机有较高的运行速度。2.3A/D转换2.3.1 ADC0809内部结构ADC0809由8路模拟开关、地址锁存与译码器、比较器、256电阻阶梯、树状开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成。AD采样通道的模拟框图如下图所示。2.3.2 ADC0809转换原理 当单片机端的P3.3接低电平时,可以使两个非门打开(1)当模拟量送至某一输入通道后,CPU将标识该通道编码的三位地址信号经数据线或地址线输入到ADDC、ADDB、ADD

9、A引脚上。(2)地址锁存允许ALE锁存地址信号,启动命令START启动A/D转换。(3)转换开始,EOC变低电平,转换结束,EOC变为高电平。EOC可作为中断请求信号。(4)转换结束后,可通过执行IN指令,设法在输出允许OE脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到DB,一次A/D转换便完成。2.3.3 ADC0809转换原理表格AD转化共有八种状态与之对应有八种输出。输出表格如下图所示。所以对应通道数也是八个。2.3.4 AD转换电路转换结束:EOC12.3.5电路设计硬件资源分配1号按键P3.0-模式切换2号按键P3.1-通道、报警限加3号按键P3.2-通道、报警限减4号按键P3

10、.3- 查询法,接收ad转换状态 (不作为按键使用) 中断法,收ad结束中断信号数码管显示电路:用 P2 口:bcd 码输出P2.3P2.0;字位选择 cba=P2.6P2.4 ;小数点 P2.7键盘电路:3个键P3(3-5)ADC0809电压转换电路控制信号:/wr=p3.6 /rd=p3.7 eoc= p3.2 Cs= p3.3 (可以不要,使0809常选通)数据输出:=P0 转换通道选择地址线:CBA =P1(3-1)2.3.6采集数据和对应电压的转换一个8位二进制的AD采集数据转换为5位10进制显示数据。对应关系:00HFFH 0.000V5.000V;AD分辨率为:5/25519.6

11、mV;算法: Y=X19.6=X196/10具体步骤:1、求 YX 196 ,结果为双字节二进制数 2、将 Y转换为十进制数, 最大是一个5位的十进制数 3、去掉十进制数的最低位,相当于除10 2.3.7检测AD转换是否结束1.查询方式: A/D转换芯片设有表示转换完成的状态信号端,例如:ADC0809的EOC端。通过软件测试EOC端的状态,就可确知转换是否完成,一旦确定转换完成,就可以读取数据。 2.定时方式:对于某种A/D转换器来说,作为其性能指标之一的转换时间是已知和固定的。例如ADC0809的转换时间是128us。可据此设计一个延时子程序,A/D转换器启动后即调用这个延时子程序,延时时

12、间一到,转换肯定已经完成了,接着就可进行数据传送了。3.中断方式:把表明转换完成的状态信号EOC作为中断请求信号,以中断的方式进行数据传送。3软件设计3.1系统框图系统整体框图如图12所示。3.2正常采集把采集的电压值转化为十进制,显示在数码管的后四位。显示三位小数。程序框图如上图所示。#includeUnsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char xdata zixin _at_ 0xefff;un

13、signed char xdata ziwei _at_ 0xdfff;unsigned char xdata ad _at_ 0x7fff;unsigned char channel1=0x0f1;unsigned char getdata;unsigned char dw;unsigned char gw,a,b,c,d,e,f,g,gt;unsigned int get;void delay(unsigned int cnt)cnt-; void int0(void) interrupt 0 getdata=ad;get=getdata*196;a=get/10000;b=get%100

14、00/1000;c=get%10000%1000/100;d=get%10000%1000%100/10; zixin=dispcodea; ziwei=16; delay(100); ziwei=0; zixin=dispcodeb; ziwei=32; zixin=dispcodec; ziwei=64; delay(100); zixin=dispcoded; ziwei=128;ad=0; void main(void) IT0=0; EX0=1; EA=1; /打开总中断 P1=channel1; while(1) 3.3循环采集循环采集按 2数码管最右端显示2,此时为循环采集 单片

15、机自动在0-7八个通道循环采集,通道号显示在左边第三位。4系统调试系统调试包括硬件调试和软件调试两部分,介绍一下我在这两方面遇到一些问题,以及如何解决的。4.1 硬件部分硬件焊接分为单片机板和扩展版两部分。单片机版已经焊接好,只需焊接扩展版。在焊接扩展版时,我事先没有布局,任意焊接芯片,导致需要很长的导线,布线不规整。我把芯片拆下,通过看其他同学的焊接,查看元件管脚图,自己在草稿纸上画出各个芯片的位置。然后焊接。结果布线比较整齐。4.2 软件部分开始对单片机C语言很陌生,看程序很困难,自己编写不出程序。通过老师的讲解,和以前学过的C语言的知识,与单片机C语言基本相同,有些区别,把其中的区别搞懂

16、了,能够编写简单的程序了。前几个程序通过问同学,反复调试编写了出来,设定电压上下线的程序没有编写出来,通过看同学编写的程序,明白了如何编写。通过程序调试各个部分的功能,完成各功能模块,把程序下载到单片机中,最终实现电压采集功能和扩展功能。5 总 结由于本次单片机综合设计涉及很多内容,锻炼了我对所学电子知识综合应用的能力以及编程能力。更重要的是要学会查询资料、利用资料。在设计过程中有很多思路和方法并非直接来源于教材,这时就需要我们学会充分利用身边一切可以利用的有效资源去查阅了解,并在翻阅资料的过程中,努力掌握一些常用元件的特性、优缺点、工作原理以及适用条件,方便我们以后在遇到同类产品时能够了解其

17、属性,从而更加轻松自如的设计更多电子产品。这次实验课过后,我自己做了详细的自我检查。我认为,现在我们要做的不仅仅是掌握更多的专业知识,更重要的是要打好坚实的基础。例如,我们经常在焊接过程中出现焊盘脱落或者焊点不够饱满圆润,大小不均匀等等情况。对此,我们要做的就是多加练习,并且时刻保持饱满的热情和良好的心态,努力说服自己每一次都会有所进步,有所收获。另外,在课程学习中练习了很多程序,以前都是只看看,现在自己写,感觉学到更多。这次的单片机综合设计课程让我收获知识的同时收获一份喜悦与满足!最后,我在这里要感谢所有实验室老师对我们的谆谆教诲,不辞辛苦的为我们劳作,解决我们遇到的困难和问题!相信在我们师

18、生的共同努力下,我们一定会有更加充实的大学生活,得到更多的收获!1、胡汉才,单片机原理及其接口技术(2版),清华大学出版社 2、张迎新,单片机中级教程,北京航空航天大学出版社3、丁元杰,单片机原理与应用,机械工业出版社4、孙育才,MCS-51系列单片微型计算机及其应用,东南大学出版社5、曹巧媛,单片机原理及应用教学、实践、设计指导,电子工业出版社6、谢自美,电子线路设计实验测试(2版),华中科技大学出版社7、单片机实验指导书附录一 电源印刷电路板布线图附录二 单片机板电路原理图附录三 ADC0809与单片机连接图附录四 单片机实物展示附录五 数码管显示电路附录六 程序总览reg51.h #de

19、fine uchar unsigned char #define uint unsigned int sbit ad_eos=P33; sbit ad_cs=P35; sbit ad_adda=P14; sbit ad_addb=P15; sbit ad_addc=P16; sbit key1=P30; sbit key2=P31; sbit key3=P32; sbit speeker=P34; sbit lowflag=P10; sbit highflag=P11; uchar key=0; uchar ad_data; uchar pdata ad_start,ad_over; ucha

20、r ad_td=0x8f; uint ad_dianya; uchar ad_mode=0x00; uchar disbuf9; uchar t=40; uint ad_high=4000; uint ad_low=2000;void delay(uint i); void disp(void); void adchange(void);void keyscan(void); void keyanswer(void); void ad_dealdata(void); void timer0out(void); void timer1out(void);void moshi0(void); vo

21、id moshi1(void); void moshi2(void);void moshi3(void);void moshi4(void); void alarm(void);uchar code ziweima =0x01, 0x02, 0x04, 0x08,/选中左1-4 0x10, 0x20, 0x40, 0x80,/选中左5-8 0x10; /选中左5 uchar code zixingma =0x3F, 0x06, 0x5B, 0x4F, /0-30x66, 0x6D, 0x7D, 0x07, /4-70x7F, 0x6F, 0x77, 0x7C, /8-B0x39, 0x5E,

22、0x79, 0x71, /C-F0x80,0x00;/小数点,灭 void adchange(void) ad_adda=(ad_td4)&0x01; /逐位送地址信号 &ad_mode=2 ad_addb=(ad_td5)& ad_addc=(ad_td6)& ad_cs=0; ad_start=0x00; while(ad_eos=1)disp(); ad_data=ad_over; void ad_dealdata(void) uint ad_dianya1; ad_dianya=ad_data*19.60784; if (ad_mode=0|ad_mode=1|ad_mode=2) a

23、d_dianya1=ad_dianya; if(ad_mode=3) ad_dianya1=ad_high; if(ad_mode=4) ad_dianya1=ad_low; disbuf0= ad_mode; /模式 disbuf1= 0x11 ; /灭 disbuf2= (ad_td0x07; /通道 disbuf3= 0x11; disbuf4=ad_dianya1/1000; /千位 disbuf5=ad_dianya1%1000/100; /百位 disbuf6=ad_dianya1%100/10; /十位 disbuf7=ad_dianya1%10; /个位 disbuf8=0x1

24、0; /小数点 void alarm(void) / uint ad_dianya; if(ad_dianya ad_high)TR1=1; / if(ad_data 0xa0)|(ad_data ad_low|ad_dianya ad_high)TR1=0;/ else / / / lowflag=1;/ highflag=1;/ TR1=0;/ void keyscan(void) if (key1=0) while(key1=0)disp(); key=1; F0=1; if (key2=0) while(key2=0)disp(); key=2; if (key3=0) while(k

25、ey3=0)disp(); key=3; void keyanswer(void) if(key=1&F0=1) /1号按键按下,则模式加1 ad_mode+; if(ad_mode=5)ad_mode=0; switch (ad_mode) case 0: moshi0(); break; case 1: moshi1(); case 2: moshi2(); case 3: moshi3(); case 4: moshi4(); default: F0=0; void moshi0(void) ad_td=0x8f; ad_mode=0x00; void moshi1(void) if(key=2&F0=1) /2号按键按下,则通道加1 ad_td=ad_td+0x10; if(ad_td=0x00)ad_td=0x8f; if(key=3&F0=1) ad_td=ad_td-0x10; if(ad_td=0x7f)ad_td=0xff; void moshi2(void)/ if (ad_mode=2) TR0=1;/ else TR0=1; void moshi3(void) if(key=2&F0=1) ad_high=ad_high+100;/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1