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

    毕业设计单片机课程设计应用系统论文.docx

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

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

    毕业设计单片机课程设计应用系统论文.docx

    1、毕业设计单片机课程设计应用系统论文湖南工业大学课 程 设 计资 料 袋 电气与信息工程 学院(系、部) 2014 2015 学年第 1 学期 课程名称 单片机应用系统 指导教师 贺正芸 职称 讲师 学生姓名 专业班级 学号 题 目 对外部脉冲计数及温度报警系统设计 成 绩 起止日期 2014年 12 月 25 日 2015 年 1 月 4 日目 录 清 单序号材 料 名 称资料数量备 注1课程设计任务书2课程设计说明书3课程设计图纸张456湖南工业大学课程设计任务书 2014 2015 学年第 1 学期电气与信息工程 学院(系、部) 专业 班级课程名称: 单片机应用系统设计题目: 对外部脉冲计

    2、数及温度报警系统设计完成期限:自 2014 年 12 月 25 日至 2015 年 1 月 4 日共 2 周内容及任务1.1 外部脉冲自动计数,自动显示:(1)设计255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。(2)设计50000计数器:050000计数,计满后自动清0,重新计数(在数码管中显示)。1.2设计一个温度报警系统: 温度显示范围为051度,当温度大于40度时,上限报警指示灯点亮,并驱动电机1转动;当温度小于于10度时,下限报警指示灯点亮,并驱动电机2转动。1.3* 长短按键的设计(附加题) 系统从000开始,一个按键若短按一下(0.5s以内),则个位数加1

    3、;如果长按2s不放,则个位数按步长0.2s快速进满后,十位数按步长0.5s加1;加到100则停止并长时间显示。注:要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机板上进行硬件调试。进度安排起止日期工作内容2014. 12.25讲述设计内容及基本原理2014.12.262013.12.31进行系统的设计2013.12.31-2014.1.4进行系统的调试主要参考资料1 刘苗生、潘宗预.单片机测控系统设计.中国物质出版社,2006年2 周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真M .北京航天航空大学出版社,2006指 导 教

    4、师 (签字): 年 月 日系(教研室)主任(签字): 年 月 日(单片机原理与应用)课程设计(题目)对外部脉冲计数及温度报警系统的设计起止日期: 2014 年 12 月 26 日 至 2015 年 1 月 5 日 小 组 成 员 学生姓名班级学号成绩指导教师(签字)目录绪论 1一、设计任务 1二、设计思路 1三、单片机硬件电路原理图 2四、设计内容 31.255数码管计数 31.1)系统设计总框图 31.2)设计仪器 31.3)proteus8仿真 31.4)硬件实物图 41.5)源程序 52.50000数码管计数 52.1)系统设计总框图 52.2)设计仪器 62.3)proteus8仿真

    5、62.4)硬件实物图 62.5)源程序 73.温度控制报警器 93.1)系统设计总框图 93.2)设计仪器 93.3)proteus8仿真 103.4)硬件实物图 103.5)源程序 11五、心得与体会 15绪论单片机(Single chip microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计的目的就是要通过对它

    6、的学习应用,从而达到学习、设计、开发单片机软硬件的能力。一、 设计任务:11 外部脉冲自动计数,自动显示。111设计一个255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。112设计一个50000计数器:050000计数,计满后自动清0,重新计数(在数码管中显示)。1. 2设计一个温度报警系统: 温度显示范围为051度,当温度大于40度时,上限报警指示灯点亮,并驱动电机1转动;当温度小于10度时,下限报警指示灯点亮,并驱动电机2转动。二、设计思路1. 设计一个255计数器:0255计数,计满后自动清0,重新计数(在数码管中显示)。原理:255可用8位二进制数表示,故本设计可

    7、直接采用可以重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制-十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。2设计一个50000计数器:050000计数,计满后自动清0,重新计数(在数码管中显示)。原理: 将TH1和TL1中的十六进制数转为BCD码,入口:HT1,TL1中是 16 位二进制数,其中TH1中是高 8 位;出口:R2 R3 R4 中是 BCD 码,其

    8、中R2中是万位,R3中是千、百位,R4中是十、个位。再转为对应的个.十.百.千.万位。送到缓冲区。接着调用显示子程序。3.设计一个温度报警系统:温度显示范围为051度,当温度大于40度时,上限报警指示灯点亮,并驱动电机1转动;当温度小于于10度时,下限报警指示灯点亮,并驱动电机2转动。三、单片机硬件电路原理图四、设计内容1255数码管计数1.1)系统设计总框图1.2)设计仪器单片机开发实验仪1.3)proteus8仿真1.4)源程序 ORG 0000HAJMP STARTORG 001BHAJMP TINT1ORG 0030HSTART: MOV TMOD,#60H ;计数方式2 MOV TH

    9、1,#00H ;初值0 MOV TL1,#00H SETB TR1 SETB ET1 SETB EALOOP: LCALL DISP SJMP LOOPTINT1: RETIDISP: MOV A,TL1 MOV B,#64H DIV AB ;A为百位 MOV DPTR,#SEGTABMOVC A,A+DPTR MOV P2,#05H ;位选5 MOV P0,A ;送百位数据 ACALL DELAYMOV A,BMOV B,#0AH DIV AB ;A为十位,B为个位 MOVC A,A+DPTR MOV P2,#06H ;位选6 MOV P0,A ;送十位数据 ACALL DELAY MOV

    10、A,B MOVC A,A+DPTR MOV P2,#07H ;位选7 MOV P0,A ;送个位数据 ACALL DELAY RETDELAY:MOV R5,#05H ;延时1msLOOP1: MOV R6,#0FFH DJNZ R6,$ DJNZ R5,LOOP1 RETSEGTAB:DB 3FH,06H,5BH,4FH,66H ;0,1,2,3,4 DB 6DH,7DH,07H,7FH,6FH ;5,6,7,8,9END1.5)硬件电路实物2.50000数码管计数2.1)系统设计总框图2.2)设计仪器单片机开发实验仪2.3)proteus8仿真2.4)硬件电路实物图2.5)源程序 ORG

    11、0000HAJMP STARTORG 0030HWANWEI EQU 20HQIANWEI EQU 21HBAIWEI EQU 22HSHIWEI EQU 23HGEWEI EQU 24HSTART: MOV R0, #20H;显示缓冲数据 MOV R1, #01H;位选缓冲 MOV TMOD,#50H ;计数工作方式1 MOV TH1, #00H ;初值0 MOV TL1, #00H SETB TR1 SETB ET1 SETB EALOOP: LCALL DISP SJMP LOOPDISP: LCALL READDISP1: MOV P2, R1 MOV P0, R0 LCALL DEL

    12、AY INC R0 INC R1 CJNE R1,#06H,DISP MOV R1, #01H MOV R0, #20H SJMP DISP1READ: MOV R5, TH1 MOV R6, TL1 CJNE R5, #0C3H,READ1 CJNE R6, #51H,READ1 MOV TH1,#00H ;初值0 MOV TL1,#00H;调用子程序把R5 R6中的数字,转换成BCD码,送到R2 R3 R4READ1:LCALL TXBCD MOV A, R4 MOV B, #16 DIV AB ;除以16,目的是分离出高、低四位 MOV DPTR,#SEGTAB MOVC A, A+DP

    13、TR MOV SHIWEI, A ;存放十位 MOV A,B MOVC A,A+DPTR MOV GEWEI, A ;存放个位 MOV A, R2 MOVC A,A+DPTR MOV WANWEI, A ;存放万位 MOV A, R3 MOV B, #16 DIV AB MOVC A,A+DPTR MOV QIANWEI, A MOV A,B MOVC A,A+DPTR MOV BAIWEI, A RET;两个字节的二进制数转换成BCD码的程序如下:;功能:16位二进制数变换成为 BCD 码;;入口:R5 R6 中是 16 位二进制数,其中R5中是高 8 位;;出口:R2 R3 R4 中是 B

    14、CD 码,其中R2中是万位,R3中是千、百位,R4中是十、个位。TXBCD: CLR A MOV R2, A ;先清零 MOV R3, A MOV R4, A MOV R7, #16;共转换十六位数READ2: CLR C MOV A, R6 ;从待转换数的高端移出一位到Cy RLC A MOV R6, A MOV A, R5 RLC A MOV R5, A MOV A,R4 ;送到BCD码的低端 ADDC A, R4 ;带进位加。自身相加,相当于左移一位 DA A ;十进制调整,变成BCD码 MOV R4, A MOV A, R3 ADDC A, R3 DA A MOV R3, A MOV

    15、A, R2 ADDC A, R2 MOV R2, A DJNZ R7,READ2 ;共转换十六位数 RETDELAY: MOV R5,#05H ;延时1msLOOP2: MOV R6,#0FFH DJNZ R6,$ DJNZ R5,LOOP2 RETSEGTAB: DB 3FH,06H,5BH,4FH,66H ;0,1,2,3,4DB 6DH,7DH,07H,7FH,6FH ;5,6,7,8,9END3.温度控制报警器3.1)系统设计总框图3.2)设计仪器单片机开发实验仪3.3)proteus8仿真3.4)硬件电路由于环境温度接近15-18摄氏度,为了显示结果,把温度报警上限调到18摄氏度,把

    16、单个数码管的一段当成LED报警灯,报警灯亮,3.5)源程序 #include#include#define uchar unsigned char#define uint unsigned intsbit DQ=P37;sbit BEEP=P36;sbit HI_LED=P14;sbit LO_LED=P15;bit HI_Alarm=0,LO_Alarm=0; bit DS18B20_IS_OK=1;uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00; /数码管共阴极段码 uchar code

    17、df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9; /温度小数位对照表uchar CurrentT=0; /温度整数部分uchar Display_Digit=0,0,0,0; /数码管待显示的各位温度uchar Temp_Value=0x00,0x00; /DS0832读取的温度值 uint Time0_Count=0; / 定时器中断计数char Alarm_Temp_HL2=40,10;/*延时程序*/void Delay(uint x)while(-x);/*DS18B20初始化*/uchar Init_DS18B20() uchar status; D

    18、Q=1;Delay(8); DQ=0;Delay(90); DQ=1;Delay(8); status=DQ; Delay(100); DQ=1; return status; /*DS18B20读字节*/ uchar ReadOneByte() uchar i,dat=0; DQ=1;_nop_(); for(i=0;i=1;DQ=1;_nop_();_nop_(); if (DQ) dat |=0x80; Delay(30); DQ=1; return dat; /*DS18B20写字节*/ void WriteOneByte(uchar dat) uchar i; for(i=0;i=1

    19、; /*从DS18B20读取温度*/ void Read_Temperature() if( Init_DS18B20()=1) DS18B20_IS_OK=0; else WriteOneByte(0xCC); WriteOneByte(0x44); Init_DS18B20(); WriteOneByte(0xCC); WriteOneByte(0xBE); Temp_Value0=ReadOneByte(); Temp_Value1=ReadOneByte(); DS18B20_IS_OK=1; /*给DS18B20设置报警值*/ void Set_Alarm_Temp_Value()

    20、Init_DS18B20(); WriteOneByte(0xcc); /跳过序列号 WriteOneByte(0x4e); /将设定的温度报警值写入DS18B20 WriteOneByte(Alarm_Temp_HL0); /写TH WriteOneByte(Alarm_Temp_HL1); /写TL WriteOneByte(0x7f); /12位精度 Init_DS18B20(); WriteOneByte(0xcc); /跳过序列号 WriteOneByte(0x48); /将温度报警值存入DS18B20/*温度值显示*/ void Display_Temperature() /显示温

    21、度uchar i;uchar t=150; /延时值uchar ng=0,np=0; /负数标示,及负号显示位置char Signed_Current_Temp;if(Temp_Value1&0xf8)=0xf8) /如果为负数,取反加1;设置负数标示及负号显示位置Temp_Value1=Temp_Value1;Temp_Value0=Temp_Value0+1;if(Temp_Value0=0x00)Temp_Value1+;ng=1;np=0xfd;Display_Digit0=df_TableTemp_Value0&0x0f; /查表显示温度小数位CurrentT=(Temp_Value

    22、0&0xf0)4)|(Temp_Value1&0x07)= Alarm_Temp_HL0 ? 1:0;LO_Alarm= Signed_Current_Temp = Alarm_Temp_HL1 ? 1:0;Display_Digit3=CurrentT/100;Display_Digit2=CurrentT%100/10;Display_Digit1=CurrentT%10;if(Display_Digit3=0) /高位为0,不现实,负号后移 Display_Digit3=10; np=0xfb; if(Display_Digit2=0) Display_Digit2=10; np=0xf

    23、7; for(i=0;i30;i+) /刷新数码管显示温度值P0=0X39;P2=0X7F;Delay(t);P2=0XFF;P0=0X63;P2=0XBF;Delay(t);P2=0XFF;P0=DSY_CODEDisplay_Digit0;P2=0XDF;Delay(t);P2=0XFF;P0=(DSY_CODEDisplay_Digit1)|0X80;P2=0XEF;Delay(t);P2=0XFF;P0=DSY_CODEDisplay_Digit2;P2=0XF7;Delay(t);P2=0XFF;P0=DSY_CODEDisplay_Digit3;P2=0XFB;Delay(t);P

    24、2=0XFF;if(ng)P0=0X40;P2=np;Delay(t);P2=0XFF;/*定时器0中断,控制报警声音*/ void T0_INT()interrupt 1 TH0=-1000/256; TL0=-1000%256; BEEP=!BEEP; if(+Time0_Count=400) Time0_Count=0; if(HI_Alarm)HI_LED=HI_LED; else HI_LED=1; if(LO_Alarm)LO_LED=LO_LED; else LO_LED=1; void main() IE=0X82; TMOD=0X01; /方式1计数 TH0=-1000/25

    25、6; TL0=-1000%256; TR0=0; HI_LED=1; LO_LED=1; Set_Alarm_Temp_Value(); Read_Temperature(); Delay(50000); Delay(50000); while(1) Read_Temperature(); if(DS18B20_IS_OK) if(HI_Alarm=1|LO_Alarm=1)TR0=1; else TR0=0; Display_Temperature(); elseP0=P2=0X00; 五.心得与体会在这次单片机课程设计中,我获益匪浅。首先,在选题后极大考验了我对芯片手册的自学能力,由于芯片

    26、手册是英文版的,所以在学习的过程中耗费了一定的时间,但是,最后我还是顺利完成了对芯片手册的阅读,而且,由于单片机设计中,用到的芯片很少,所以总体来说,不是很困难。其次,在对整个设计有了大体的认识之后,我便开始进行程序设计以及电路仿真。在程序设计之前,要对整个流程有一个清晰的认识,在查阅了一些资料后,参照上文中的软件设计中的流程图,并在老师及同学的帮助下完成了程序的编写。还有,在本次设计过程中,开发板比实验箱精简了部分功能,但是使用起来更加方便,电路图更加明了,这大大减少了我们对于硬件的学习时间,使得我们能够将更多的时间用来编写程序;开发板的另一个优点就是效果特别稳定,不用担心是硬件出了问题。总体来说,单片机设计的思路并不难,但要做到每一步都细心认真很难。这次的设计能顺利完成要非常感谢同学的帮助以及老师的指导,让我学到了很多东西!


    注意事项

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

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




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

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

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


    收起
    展开