欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机课程设计.docx

    • 资源ID:10687071       资源大小:118.27KB        全文页数:18页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计.docx

    1、单片机课程设计目录摘 要 11基本原理 211串行通信介绍 21.2串行接口标准 21.3单片机串口简介 32硬件电路设计 42.1设计思路 42.2程序流程图 42.3电路原理图 63实验仿真及结果分析 83.1仿真电路图 83.2 仿真实验代码 93.3仿真结果 153.4结果分析 164心得体会 17参考文献 18摘 要单片微型计算机简称单片机,它是将中央处理器(CPU)、存储器(RAM,ROM)、 定时/计数器和各种接口电路都集成到一块集成电路芯片上的微型计算机。随着计算机技术尤其是单片机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、湿度等参数进行检测和控制。PC

    2、机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS 232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。因此如何实现PC机与单片机之间的通信具有非常重要的现实意义。针对一些远距离控制或者是危险性比较高的数据采集和控制的应用情况, 本文主要介绍一种用双工方式实现PC机与单片机之间的串行通信。本设计运用51单片机设计了一个能和PC进行全双工通信的程序,能由单片机向PC发送字符串,当按PC上的数字键时,能在单片机上的数码管上显示相应数字,并且单片机的其他四个数码管能每隔1s交替动态显示0123和4567,涉及到定时器、中断、串行口、数据接收与发送数

    3、码管动态显示等。对于我们研究掌握单片机具有十分重要的意义。关键字:串口,双工通信,数码管,虚拟终端1基本原理11串行通信介绍计算机之间有时需要交换信息,这种信息交换被称为通信。通信可分为并行通信和串行通信。将数据各位同时传送的方法是并行通信,将数据逐位传送的方法是串行通信。本次课程设计采用的是串行通信。串行通信分为串行异步通信和串行同步通信两种类型,串行异步通信以若干位表示一个字符,通信时以收/发一个字符为一 独立的通信单位。异步传送的数据前面应加起始位,结束后应加停止位,形成一个完整的串行传送字符。串行同步通信串行同步通信就是去掉异步传送时每个字符的起始位和停止位,以一组字符组成一个数据块,

    4、在每个数据块前附加一个或两个同步字符或标识符,后面在附加校验字符。1.2串行接口标准串行通信在电器连接上游串行接口标准,常用的标准有(1)RS-232-C接口标准;(2)RS-422A、RS-432A和RS-485接口标准;(3)20mA电流环接标准。本次课程设计采用的是RS-232-C串行总线接口标准。RS-232-C接口标准是美国电器工业协会(EIA)制定的,是一种在数据终端设备(Data Terminal Equipment,DTE)和数据通信设备(Data Communication Equipment,DCE)之间通信的链接标准。在有些短距离场合,计算机之间可以直接通过RS-232-

    5、C接口连接。目前常用的是9针D型连接器,如图1-1所示。图1-1 RS-232C 9针D型连接器1.3单片机串口简介本次课设用的89C51的串行口是一个可编程的全双工串行通信接口,它的功能很多,可以用软件编程来控制,它可以作为通用异步接收和发送器UART,也可以作为同步移位寄存器。其帧格式可有8位,10位,11位,并能设置各种波特率,只要编程就能进行设定,使用很方便。串行口的结构主要由两个数据缓冲寄存器SBUF和一个输入移位寄存器组成,另外其内部还有一个串行控制寄存器SCON和一个波特率发生器,波特率发生器是由T1及分频器组成,因此修改波特率时要修改T1的设定。在与PC机进行通信时,PC机发来

    6、的的串行数据是通过引脚RXD输入的。输入数据先逐位进入输入移位寄存器,再送入接收数据缓冲寄存器。在PC内接有PC16550串行接口、RS-232C连接器、EIA-TTL的电平转换器等设备,有两个串行口COM1和COM2留给用户,通过这两个串行口可以连接串行通讯设备如单片机等。2硬件电路设计2.1设计思路(1) 数码管显示:题目要求数码管每隔1s交替显示“0123”和“4567”,同时能按PC上的数字键能显示对于数字,4个数码管能够动态显示。通过单片机P0口控制段选,通过P3控制位选,从而达到数码管的动态显示。还有一个数码管用来显示单片机接收到的字符,我们采用一个共阴极数码管。外接上拉电阻驱动,

    7、控制P0口来控制,将接收到的字符信息在这个数码管上显示。 (2) 串行通信:要实现PC和单片机的串行双工通信,要设置接收允许。采用串行方式1,T0作为波特率发生器工作于方式2,取SMOD=1,T1的时间常数为D0。波特率为1200。 发送部分程序采用查询式方法,先发送第一个字符,等待发送完毕后在发下一个,直字符串至全部发完。实际发送中要用按键控制,当按键按下一次时,发送一次。接收程序采用中断方式,当单片机接收到一个来自PC的字符时,产生串行口中断,将接受到的ASCII码转换成单片机能够显示的字形码。 (3) 定时器部分:要求数码管显示器每隔1s交替显示“0123”和“4567”,很容易想到定时

    8、器控制。选用定时器T0,工作方式1,16位计数,最大计数值65536,晶振为11.0592M,最大定时周期为71ms,不能满足要求,可以先定时50ms,此时计数初值为4C00,然后引入一个变量计数,每当定时器T0中断时变量加1,当计到20时刚好一秒,改变数码显示结果,再将计数变量清零,如此循环。 2.2程序流程图程序先向PC机发送一段字符,再接收PC机发来的字符。发送部分程序流程图如图2-1所示:图2-1发送部分程序流程图接收部分程序流程图如图2-2所示: 图2-2 接收部分程序流程图2.3电路原理图实际仿真中,我们用到的电路原理图如下图2-3所示。图 2-3 电路原理图3实验仿真及结果分析3

    9、.1仿真电路图实际中,我们运用Proteus进行电路仿真。仿真电路图如下图3-1所示。图3-1 仿真电路图3.2 仿真实验代码 #include#include#define uint unsigned int#define uchar unsigned charsbit A1 = P34;/数码管位选sbit A2 = P35;sbit A3 = P36;sbit A4 = P37;void Init();void Init_232();void Init_T1();void SentStr(char *str);void SendData(char dat);void LED_Displa

    10、y();void delay(uint s);int Flag = 0;bit LEDFlag = 0;uint counter = 0;char RXData , TXData = i get;unsigned char code LEDcode = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;void main() int a = 0; P0 = LEDcode4; Flag = 1; Init(); while(1) LED_Display(); if(Flag = 1)

    11、ES = 0; for(a = 0;TXDataa != 0;a+) SBUF = TXDataa; /SUBF接受/发送缓冲器 while(!TI); TI = 0; SBUF = RXData; while(!TI); TI = 0; ES = 1; Flag=0; delay(10); void Init() Init_232(); Init_T1();void Init_T1() TMOD |= 0x01; TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; EA = 1; ET0 = 1; TR0 = 1;/MAX232

    12、 module Initialvoid Init_232() SCON = 0x50; /REN=1允许串行接受状态,串口工作模式1 TMOD= 0x20; /定时器工作方式2 PCON= 0x80; /TH1 = 0xFD; /baud*2 /* reload value 19200、数据位8、停止位1。效验位无 (11.0592) TH1 = 0xd0; / /baud*2 /* 波特率4800、数据位8、停止位1。效验位无 (12M) TL1 = 0xd0; TR1 = 1; REN = 1; ES = 1; /开串口中断 EA = 1; / 开总中断 /void SendData(ch

    13、ar dat)/ /void delay(uint s) uint i, j; for(j = 0;j s;j+) for(i = 0;i 200;i+); void RXProcess() interrupt 4 using 1 RI = 0; RXData = SBUF; P0 = LEDcodeRXData-0x30; Flag = 1; void T0_TIMER() interrupt 1 TH0 = (65536 - 50000) / 256; TL0 = (65536 - 50000) % 256; counter+; if(counter = 20) /if reach 1s

    14、LEDFlag = LEDFlag; counter = 0; void LED_Display() while(LEDFlag = 1) P3 |= 0xf0; A1 = 0; P2 = LEDcode0; delay(5); P3 |= 0xf0; A2 = 0; P2 = LEDcode1; delay(5); P3 |= 0xf0; A3 = 0; P2 = LEDcode2; delay(5); P3 |= 0xf0; A4 = 0; P2 = LEDcode3; delay(5); while(LEDFlag = 0) P3 |= 0xf0; A1 = 0; P2 = LEDcod

    15、e4; delay(5); P3 |= 0xf0; A2 = 0; P2 = LEDcode5; delay(5); P3 |= 0xf0; A3 = 0; P2 = LEDcode6; delay(5); P3 |= 0xf0; A4 = 0; P2 = LEDcode7; delay(5); 3.3仿真结果为了达到仿真的目的,首先我们需要安装Virtual Serial Port 和串口调试助手两个软件。前者为电脑建立虚拟串口,建立单片机与PC的连接。后者则发送PC数据和显示PC接收到的信息。实际中我们从PC中输入“8”,得到的数码管显示结果如下图3-3所示。图3-3 数码管仿真结果虚拟终

    16、端得到的仿真结果如下图3-4所示:图3-4 虚拟终端仿真结果PC接收到的数据仿真结果如下图3-5所示:图3-5 PC接收到的数据仿真结果3.4结果分析由仿真结果可知,我们从PC键盘键入的字符“8”成功的发送给了单片机,在虚拟终端和数码管上可以看到。同时,从单片机发送的字符串“i get 8”也成功发送到了PC机上,从而实现了单片机与PC机的双工通信,达到了此次设计的要求。4心得体会通过一周的不懈努力,我终于在一周时间内完成了这次单片机课程设计。通过该课程设计,全面系统的理解了单片机原理的一般原理和基本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的单片机原理基础原理的知识强

    17、化,能够把课堂上学的知识通过自己编写的程序表示出来,加深了对理论知识的理解。 在这次课程设计中,我先是认真阅读课本上的相关知识,理解透后又翻阅关于C语言的书籍,学习C语言中的运算符、数组和指针的用法。然后掌握了单片机串口通信、定时器、数码管动态扫描的原理与应用,学会了51单片机常用的寄存器的使用。总体来说,这次课设我学到了很多。在设计过程中,加深了对可内知识的理解就,真正懂得了学以致用,熟悉Keil软件的使用,了解Proteus单片机仿真中的重大应用。做课程设计我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐. 这次单片机原理课程设计虽然短暂,但我受益匪浅。首先,提高了我们的对C语言的

    18、运用能力。C语言是一种高级语言,运算符丰富,可读性好,移植性强,易于模块化设计,有丰富的函数可供调用。原来只是零零散散的做过一些单独的模块。通过C语言,很方便把原来做过的模块进行整合,方便调试与扩展。其次,锻炼了课外查资料的能力。我们在设计程序时,遇到很多不理解的东西,如虚拟串口的使用,操作指令比较多,后来通过网上查阅相关的PDF的文档,参考别人写的程序,才搞清楚它的控制字和操作过程。有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。最后通过课程设计提高了我的综合运用知识能力。原来我写程序的都是一个文件,而这次单片机课程设计首次采用多文件,把功能拆分成

    19、几个相对独立的模块,既方便调试,也方便以后直接调用。原来学微机原理也学过定时器和串行通信,但只停留在理论层面,通过这次单片机课程设计才真正理解。还有掌握了proteus在单片机仿真中的应用,原来只用proteus做过模数电的仿真,现在学会了单片机的仿真。参考文献1 李群芳,张士军,黄建单片微型计算机与接口技术北京:电子工业出版社,20072 王守中51单片机开发入门与典型实例北京:人民邮电出版社,20073 倪志莲单片机应用技术北京:北京理工大学出版社,20074 周润景Proteus入门实用教程北京:机械工业出版社,20075 张靖武,周灵彬单片机系统的Proteus设计与仿真北京:电子工业出版社,20076邹其洪.单片机原理. 北京:电子工业出版社,20057吴友宇.单片机原理与接口技术. 南京:东南大学出版社,20088吴锡龙.单片机实例与开发.北京:高等教育出版社,2004本科生课程设计成绩评定表姓 名刘冬性 别男专业、班级电信1005班题 目:实现单片机与PC串行双工通信答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 2014年 月 日


    注意事项

    本文(单片机课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开