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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实训报告Word文档下载推荐.docx

1、第五章 附录 6第1章 概述此次实训融合了单片机与C语言的知识,通过利用C语言编写程序将单片机理论知识和实践知识相结合,来提升我们学生对单片机和C语言的综合运用能力。实训内容是利用动态扫描和定时器1在数码管上显示出从123456开始以1秒的速度往上递增直至123476并保持显示此数,与此同时利用定时器0以500mS速度进行流水灯从左至右移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HELLO”。到此保持住。此次实训改变了以往分组进行的方式,我们自行编写自己的程序。要求用C语言编写程序,编译无误后将程序带给老师看,对程序进

2、行讲解并回答老师提出的问题,然后将程序下载到单片机实验板上,看实际效果。因为往往理论上看起来正确的程序并不能保证能达到你要的结果。我们通过此次的深入学习更加透彻的把理论与实践结合起来,来实现我们学以致用的学习方法和学习态度,能够更加灵活的把单片机知识与C语言知识相结合,让我们尝试到当遇到硬件与软件问题同时存在时解决问题的艰辛。相信我们通过此次的单片机与C语言综合实训会使我们个方面的专业知识与专业技能得以迅速提升。第二章 思路设计及方案 一、分解总程序将总程序分为四个小程序,一步一步的将程序写出,然后再将四个小程序融合成总程序。 二、用C语言编写程序1、分程序1:利用定时器0以500mS速度进行

3、流水灯从左至右移动。#includeintrins.h#define uchar unsigned char#define uint unsigned intuchar a;uint t;void init( );void main( ) init( ); a=0xfe; P1=a; while(1) if(t=10) t=0; a=_crol_(a,1); P1=a; void time0( ) interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; t+;/进入中断的次数void init( ) t=0; TMOD=0X01; E

4、A=1; ET0=1; TR0=1;2、分程序2:实验板上流水灯开始全部闪烁,3秒后(用T0定时)流水灯全部关闭。reg52.h #define uint unsigned int #define uchar unsigned char void init();void main() init(); while(1);void timer0() interrupt 1 /定时器0中断 TL0=(65536-50000)%256; t+; if(t%4=0) /小灯每200毫秒变化一次 P1=P1; if(t=60) TR0=0; /3秒后关闭定时器0,关闭灯 P1=0xff;void init

5、()/定时器初始化3、分程序3:利用动态扫描和定时器1在数码上显示出从123456开始以1秒的速度往上递增直至123476并保持此数。uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,;sbit dula=P26;sbit wela=P27;uchar t,shi,ge;uint shu;void display(uchar a0,uchar a1,uchar a2,uchar a3,uchar shi,uchar ge);void delay(uin

6、t z) /延时子函数 uint x,y; for(x=z;x0;x-) for(y=110;yy-);void main() shu=56; TMOD=0x01; TH1=(65536-50000)/256; TL1=(65536-50000)%256; /定时器初始化 ET1=1; TR1=1; display(1,2,3,4,shi,ge); void time1() interrupt 3 /定时器1中断函数 if(t=200) shu+; shi=shu/10; ge=shu%10; if(shu=76) /当到67时把原来T0中的数清除,重新加裁初值让小灯闪烁 TR1=0;void

7、 display(uchar a0,uchar a1,uchar a2,uchar a3,uchar shi,uchar ge) /显示子函数 dula=1; P0=tablea0; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); P0=tablea1; P0=0xfd; P0=tablea2; P0=0xfb; P0=tablea3; P0=0xf7; P0=tableshi; P0=0xef; P0=tablege; P0=0xdf;4、分程序4:数码管上显示HELLO。#include uchar code table= 0x39,

8、0x5e,0x79,0x71,0x76,0x79,0x38,0x3f,0;void display(uchar one,uchar two,uchar three,uchar four,uchar five,uchar six);void delay(uint); display(16,17,18,18,19,20); void display(uchar one,uchar two,uchar three,uchar four,uchar five,uchar six) P0=tableone; P0=tabletwo; P0=tablethree; P0=tablefour; P0=tab

9、lefive; P0=tablesix;void delay(uint z) 3、分程序汇总将四个分程序用连接语句进行连接,组成总的程序。uchar a,t0,t1,flag,flag1,shi,ge; TMOD=0x11; if(flag1!=1) display(1,2,3,4,shi,ge); else display(16,17,18,18,19,20);void time0() interrupt 1 t0+; if(flag! if(t0=10) t0=1; else if(t0%4=0) P1=P1; if(t0=60) TR0=0; P1=0xff; flag1=1; void

10、 timer1() interrupt 3 t1+; if(t1=20) t1=0; shu+; if(shu=76) flag=1; t0=0; void display(uchar a0,uchar a1,uchar a2,uchar a3,uchar shi,uchar ge)第3章 所得结果及结论1、编程中所存在的问题1、在分程序3中,在定时器1中断函数中在图A与图B的区别在于如果按前者编程,最后数码管会从123400开始接着是123456到123476,如果按后者,数码管才会按要求从123456一直累加到123476。(图A) (图B)2、在分程序2中,在定时器0中断函数中两图的区别

11、在于如果按前者编程,3秒后流水灯不会关闭,而后者会关闭。2、实训小结1、准确分析总程序,将总程序分成几个简短的小程序进行编写。2、正确使用keil软件,并熟练应用。3、熟练掌握中断、延时、定时器等主要程序。4、学会使用连接程序将四个小程序组合成总程序。5、通过将程序下载到实验板上,能够通过实验板上显示的不足马上分析出程序问题之所在,并要能熟练的去修改。3、实训结果在实训的近一个星期里,我基本上每天都能按照要求完成当天的任务。在最后结果检查中虽然结果不是很完美但也是良好。我相信这次的实训让我们大家都有收获。第四章 总结与体会通过这一周的单片机的实训,还有老师的精心指导和同学的帮助,以及在网上找的

12、一些资料,让我有了不少体会。首先,通过老师对总程序的讲解,让我们对此次实训有一个基本的认识,在自己的心里能够将C语言程序中的数组以及函数的一些知识慢慢的移植到单片机程序编写中。在编写程序的过程中其中最重要,最麻烦,也是学到和掌握的东西最多的地方就是程序的编写检验。这样你必须对程序的每部分都很熟悉,掌握每句程序在整个整体的作用,这样出现问题才能根据问题改编程序内容而达到目的,出问题最多的也是这个地方,这证明了我对程序的掌握还有欠缺,不能熟悉的掌握和运用程序,所以不能导致很快很好的完成任务。当然也还有很多细节方面的失误问题,程序编写上也出现了很多细节的错误,并不能把程序一次性就编写好,这也浪费了很多的时间,这主要也是没有把这方面的知识学扎实。而我都能通过自己研究,翻阅书籍,请教同学,网上查找资料等方法来解决问题。能够做到不懂就问,不懂就及时解决。最后,在开始程序检验时,先通过我们对老师的讲解,及老师对我们提问,使我们自己对程序有了跟进一步的掌握和了解。在这过程中,发现自己平时基本功不够扎实,不能及时有效的解决问题,而且不能善于思考问题,不能对问题有本质上的了解,而老师的一些点拨让我有些了解,进而解决问题,这次实训还是有了不少收获,对单片机级C语言的的认识更加深了。第5章 附录参考文献:单片机的C语言应用程序设计 马忠梅北京 北京航空航天大学出版社 2003.1151单片机应用基础

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

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