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

    单片机原理及应用课程设计.docx

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

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

    单片机原理及应用课程设计.docx

    1、单片机原理及应用课程设计单片机原理及应用课程设计智能仪器设计基础课程设计摘要-3题目-3整体设计及系统原理-3主要硬件介绍-4 STC89C51单片机特点-4STC89C51引脚说明-4硬件设计-6单片机最小系统-6数码管显示电路-7键盘电路-8AD转换电路-9 信号调理电路-924C02电路-10报警电路-11加热电路-11电源电路-12软件设计-12数码管显示程序-1224C02读写程序-14AD转换程序-18算数平均滤波程序-18热电阻非线性校正算法-19按键子程序-20报警子程序-23PID子程序-23主程序-23课程设计总结-27参考文献-27附录: 系统原理图 系统PCB图摘要:随

    2、着电子技术的飞速发展,单片机在国民经济生产各行业发挥了重要的作用。它因为集成度高、体积小、运行可靠、应用灵活、价格低、面向控制等特点得到了广大工程技术人员和客户的好评。在温度控制方面,单片机能够代替常规的模拟调节器。本文主要设计了单片机炉温控制系统硬件电路和软件程序。系统具有工作可靠、实时性强等特点,满足控制精度的要求。本着在满足系统性能要求的前提下,尽可能的减少硬件成本。本文主要涉及到控制系统的硬件设计和单片机的控制软件编程。本系统选用热电阻Cu50对炉温进行检测,在AD0804完成模数转换之后,STC89C51单片机对数据进行处理。人机接口电路部分能实现温度设定、温度显示、超温报警等功能。

    3、题目:20. 试设计智能仪表实现智能数字显示仪表。要求8位数码管显示(4位显示测量值,4位显示设定值),4输入按钮(功能选择、数码管选择、数字增加、数字减少),可设定上下限报警,蜂鸣器报警。适配Cu50热电阻,测温范围为0130。采用比例控制、并用晶闸管移相驱动1000W电加热器(电源电压为AC220V)。整体设计及系统原理:在系统中,利用热电阻测得电阻炉实际温度并转换成毫伏级电压信号。该电压信号经过温度检测电路转换成与炉温相对应的数字信号进入单片机,单片机进行数据处理后,通过LED数码管显示温度并判断是否报警,同时将温度与设定温度比较,根据设定的P算法计算出控制量,根据控制量通过控制双向晶闸

    4、管的导通和关闭从而控制电阻丝的导通时间,以实现对炉温的控制。该系统中的时钟电路可以根据要求进行准确计时。 主要硬件介绍:STC89C51是改进型的51内核单片机,它比人们常用的AT89S51单片机编程更简单。STC89C51单片机特点:12时钟/6时钟机器周期的8051CPU;工作电压3.4-5.5V;工作频率0-40MHz;程序存储器容量4KB;RAM容量512B;I/O端口与AT89S51相同;通过串口(P3.0 P3.1)直接下载用户程序到代码存储器中(ISP功能),可下载10万次以上;具有EEPROM;具有看门狗,冷启动后未关闭状态,一旦启动无法关闭;3个定时计数器;2个外部中断,掉电

    5、模式可由外部中断低电平触发唤醒;一个异步串行口;温度范围0-75(商业),-40-85(工业);具有PDIP-40、PLCC-44、PQFP-44封装。STC89C51引脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P

    6、1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2

    7、口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通) P3.7

    8、 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被

    9、略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。硬件设计:单片机最小系统:时钟电路采用12MHz的晶振和两个30pF的电容连接而成,是单片机的机器周期为1u

    10、s左右,在使用定时器时便于计算和设置定时器的初始值。复位电路:由于机器周期为2us,所以RESET引脚上产生一个2us以上的高电平脉冲,即可产生复位动作。电源接上瞬间,电容上没有电荷,相当于短路,所以复位引脚直接连到VCC,单片机复位,随时间增加,电容上电压逐渐变大,RESET引脚上电压逐渐降低至低电平时,单片机恢复正常状态,在此使用10k电阻,10uF电容,时间常数远大于2us,高电平能保持2us以上,足以使系统复位。串口可以用来向单片机里下载程序,以及和计算机通讯等。数码管显示电路:此电路采用8个数码管和一个74LS245,一个74LS138和一个排阻组成。74LS245是一个8双向总线接

    11、收器,与单片机的P0口相接,控制数码管的段选端。由于P0口内部没有上拉电阻,所以做输出口时,必须外接上拉电阻。74LS138是一个3-8译码器,与P2口的高三位相接,经过译码控制数码管的位选端,数码管都是共阳数码管。键盘电路: 4个按键分别与单片机的P3.3、P2.2、P2.3、P2.4相接,功能分别为功能选择、数码管选择,加数字、减数字,都是低电平有效,都接上拉电阻是保证没有键按下时,均为高电平,其中功能键按下时会触发外部中断。AD转换电路:ADC0804是一个CMOS的逐步逼近式AD转换器,具有8为分辨率,转换时间为100us,而最大误差为1个LSB值,差动式模拟电压输入、三态数字输出,模

    12、拟输入电压为0-5V。信号调理电路:Cu50在0130时电阻变化为50.00077.833,左上方电路为提供1mA电流的恒流源,因此Cu50输出的电压为0.005-0.077833V的电压,通过信号调理电路将其转化为04.2V的电压送入AD。可列方程组 0.005m+b=0与 0.077833m+b=4.2解得 m=151 b=-7.55 由电路图可得 可令R23=150K,R24=1K右下方为参考电压电路Vref=(1+R22/R21)*V, 可令V=0.03V R22=2K R21=3K. 0.03V可由稳压管TL431经分压可得。此电路中,放大器选择满摆幅运放TLV2472。24C02电

    13、路:24C02是一种由I2C接口的EEPROM存储芯片,存储容量为256B,100万次的编程/擦除周期,数据保存可达100年。在此电路中使用此芯片是要保存仪表中某些已设定好的数据,当掉电后,数据不会丢失。由于I2C总线是开漏结构,因此时钟线SCL和数据线SDA用10k电阻上拉到高电平。报警电路: 该报警电路由蜂鸣器和发光二极管、PNP三极管组成,当单片机的P2.0口输出低电平时三极管基极为低电平,三极管导通,蜂鸣器工作发出响声,同时发光二极管也导通,发光。三极管在此处是为了驱动蜂鸣器和发光二极管工作。在软件设计中可设置当温度超过上限或下限时,报警电路工作。加热电路:单片机驱动移相型驱动器、具有

    14、点阻性负载的电路如上图所示。移相型驱动器可以在单片机控制驱动器的瞬间使驱动器MOC3022触发双向晶闸管BTA12,因此可以按照单片机发出的控制信号控制双向晶闸管导通角。其中R9=(5V-VOL-VF)/IFT=2V/10mA=200,电阻R11用于限制MOC3022的输出电流ITSM,计算公式如下:R11=Vpeak/ITSM=(220)V/1A=311.第二个电路为电压过零检测电路,当电压过零时,向单片机发一个中断,单片机可以按照此信号控制双向晶闸管的导通角。电源电路:这是仪表的供电电路可以通过外接直流电源,然后通过该电源电路给仪表供电。电路图中的二极管桥式电路是滤波电路。接入电源后通过稳

    15、压模块7805稳压最终获得+5V的电压。最左面的发光二极管是检测电源是否接通。通电时,二极管亮。软件设计:数码管显示程序:#define uchar unsigned char#define uint unsigned intvoid delay(uint x) /延时函数大约延时5ms uchar m,n; for(m=x;m-;m0) for(n=60;n-;n0);void display1(uchar a,uchar b,uchar c,uchar d)/设定值显示 P2=0x8f&P2; /送第一个数码管的位码 P0=a; /送第一个数码管的段码 delay(10); /短暂延时 P

    16、2=0x9f&P2; /送第二个数码管的位码 P0=b; /送第二个数码管的段码 delay(10); P2=0xaf&P2; /送第三个数码管的位码 P0=c; /送第三个数码管的段码 delay(10); P2=0xbf&P2; /送第四个数码管的位码 P0=d; /送第四个数码管的段码 delay(10);void display2(uchar a,uchar b,uchar c,uchar d)/测量值显示 P2=0xcf&P2; /送第一个数码管的位码 P0=a; /送第一个数码管的段码 delay(10); P2=0xdf&P2; /送第二个数码管的位码 P0=b; /送第二个数码

    17、管的段码 delay(10); P2=0xef&P2; /送第三个数码管的位码 P0=c; /送第三个数码管的段码 delay(10); P2=0xff&P2; /送第四个数码管的位码 P0=d; /送第四个数码管的段码 delay(10);24C02读写程序:#define uchar unsigned char#define uint unsigned intuchar a;sbit sda=P34;sbit scl=P35;void delay() ; void start() /启用总线 sda=1; delay(); scl=1; delay(); sda=0; delay(); v

    18、oid stop() /停用总线 sda=0; delay(); scl=1; delay(); sda=1; delay(); void reply() /应答信号 uchar i; scl=1; delay(); while(sda=1)&(i250) i+; scl=0; delay();void first() /24C02初始化程序 sda=1; delay(); scl=1; delay();void write(uchar date) /写一个字节的程序 uchar k,temp; temp=date; for(k=0;k8;k+) temp=temp1; scl=0; dela

    19、y(); sda=CY; delay(); scl=1; delay(); scl=0; delay(); sda=1; delay(); uchar read() /读一个字节的程序 uchar i,m; scl=0; delay(); sda=1; delay(); for(i=0;i8;i+) scl=1; delay(); m=(m0;a-) for(b=100;b0;b-);void write_add(uchar address,uchar date) /写程序 start(); write(0xa0); reply(); write(address); reply(); writ

    20、e(date); reply(); stop();uchar read_add(uchar address) /读程序 uchar dat; start(); write(0xa0); reply(); write(address); reply(); start(); write(0xa1); reply(); dat=read(); stop(); return dat;AD转换程序:sbit wr=P36;sbit rd=P37;#define uint unsigned int#define uchar unsigned charuint AD() /AD转换函数 uchar AD;

    21、wr=0; delay(2); wr=1; delay(20); rd=0; delay(2); P1=0xff; AD=P1; rd=1; return AD; 算数平均滤波子程序: #define N 8 /定义采样次数uchar value_bufN;uchar lvbo() /滤波函数uchar i;uchar count;int sum=0;value_bufi+=AD; /获取AD转换结果,并计算累加和if(i=N)i=0;for(count=0;countv1) max=mid;else min=mid; if(max-min)=1) /多次循环后,获得v1值对应的下限值元素序/

    22、号与上限元素序号 j=( Rtablemax-Rtablemin)/10;/表中相邻两值对应温度相差/10度j=(v1-Rtablemin)/j; /得到max-min之间的电压/度var=10*min+j; /获得总温度break; 按键子程序:uchar ba,sh,ge,sf,m;sbit set=P33;sbit xuan=P22;sbit jia=P23;sbit jian=P24;void key() /按键函数uchar i;if(xuan=0) /按下数码管选择键delay(10); /延时消抖if(xuan=0) /再次确认是否按下i=i+0x10; /位选值加1if(i=0xcf)i=0x8f;P2=P2&i; /送入位选while(!xuan); /等待松手while(jia!=0)&(jian!=0)&(set!=0)&(xuan!=0)/数码管闪烁P0=0xff;delay(20);P0=0x00;delay(20); if(jia=0) /加数子程序 delay(10);if(jia=0)switch (i) /选择要加数的数码管case


    注意事项

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

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




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

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

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


    收起
    展开