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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实习报告文档格式.docx

1、4个独立式键盘(包含外部中断按键)一个蜂鸣器一个PS2接口1602液晶接口(选配件)128*64液晶接口,单板支持带字库(ST7920)和不带字库(KS0108)两种128*64液晶.(选配件)DS18B20温度传感器(选配件)IrDA红外接收头(选配件)1.1小系统板原理图图1-2最小系统板原理图1.2小系统板连线图1.2.1 连线总图图1-3最小系统板连线图1.2.2数码显示屏图1-4数码显示屏1.2.3按键图1-5按键1.2.4 LED指示灯图1-6 LED指示灯1.2.5蜂鸣器图1-7蜂鸣器1.3keil使用简介1.3.1Keil具体使用(1)点击Project菜单,选择弹出的下拉式菜

2、单中的New Project,如图 。然后弹出一个标准Windows文件对话窗口,如图 。在“文件名”中输入第一个C程序项目名称,“张洋.c”。“保存”后的文件扩展名为uv2。图 18 New Project 菜单图1-9文件窗口接下来会弹出如下对话框,让选择处理器,这里选择Atmel/AT89S51图 110 选取芯片接下来会问是否把Startup Code加入到工程,选是即可图1-11是否添加文件窗口然后右击Source Group1,选择Add Files to Group Source Group1,然后弹出一个对话框图1-12添加文件然后把“张洋.c”加进去,关闭对话框,在Sourc

3、e Group1下找到“张洋.c”,打开文件。图1-13编写源程序然后对程序进行编译运行,这个项目只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX 文件。编译链接完成以后,点击“Options for Target”,弹出以下活动窗口图1-14项目选择窗口在输出选项中选中“创建.HEX文件”,调试选项中选中“U使用”图1-15选择“创建HEX”文件图1-16选择“U使用”点击“确定”,再编译链接一次,生成.hex文件。1.3.2Keil使用特点Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外

4、重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。使用独立的Keil仿真器时,注意事项:* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 * 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使

5、用。 2.软件设计 2.1软件系统功能及流程 N Y N 图2-1总体流程图 该软件系统主要是完成一个多功能电子时钟,包含有五个功能,北京时间的显示及调整、秒表功能、倒计时功能、整点报时功能、跑表功能。当MODE=4时,为功能模块一;当MODE=5时,为功能模块二;当MODE=6时,为功能模块三;当MODE=7时,为功能模块四;当MODE=8时,为功能模块五。2.2功能模块 该系统有五个功能模块:1北京时间显示及调整功能;2秒表功能;3倒计时功能;4跑表功能;5正点报时功能。图2-2模块图2.2.1功能模块1 北京时间的显示及调整:此模块包含5个模式,模式0时显示的为北京时间;模式1为小时的调

6、节;模式2为分钟的调节;模式3显示分秒;模式4可调节分钟;在模式1、2、4中按UP和DN键可对小时和分钟进行调节。 Y Y N N N Y Y N N Y N N N Y图2-3模块一流程图2.2.2功能模块2 秒表功能:模式5为秒表功能,可显示09999s。在此模块中,按UP键奇数次时,秒表计时,相反偶数次时,秒表暂停;按DN键可对秒表进行清0。 Y Y Y Y N Y 图2-4模块二流程图2.2.3功能模块3 倒计时功能:模式6为倒计时功能,该倒计时最大可定时99分钟。在此模块中,按UP键可以调整倒计的时间,按DN键可对倒计时进行暂停,倒计时减到0时,会有一次长鸣,用作标志倒计完成。图2-

7、5模块三流程图2.2.4功能模块4 整点报时功能:模式7为整点报时功能,当显示屏上显示“BS.00”,报时功能关闭,显示“BS.01”,报时功能开启。在此模块中UP键可选择功能的关闭或开启。 N N Y图2-6模块四流程图2.2.5功能模块5 跑表功能:模式8为跑表功能,可显示099s。在此模块中,按UP键奇数次时,跑表计时,相反偶数次时,跑表暂停;按DN键可对跑表进行清0。N N Y Y 图2-7模块五流程图3.系统操作说明此系统主要是运用单片机应用系统的开发,和Keil 51软件的编程调试,完成一个简单的多功能电子时钟,电子时钟的基本功能是北京时间的显示及调整,此外还有秒表功能、倒计时功能

8、、整点报时功能、跑表功能,共5个功能模块。其中除第二个功能模块显示屏小数点不闪动外,其他模块时显示屏上中间小数点0.5s亮,0.5秒灭。3.1功能模块一北京时间显示及调整 模式0为北京时间(时分)的显示:打开开关即为模式0,此时LED灯都不亮,在显示屏上前两位显示小时,后两位显示分钟,中间小数点0.5S亮,0.5S灭。 模式1为北京时间时间的调节:按MODE键1次进入模式1,LED1灯亮,按UP键小时加1,相反按DN键小时减1。 模式2为北京时间分钟的调节:按MODE键2次进入模式2,LED2灯亮,按UP键分钟加一,相反按DN键分钟减1。 模式3为北京时间(分秒)的显示:按MODE键3次进入模

9、式3,LED灯都不亮,显示屏上前两位显示分钟,后两位显示秒钟。模式4为北京时间分钟的调节:按MODE键4次进入模式4,LED3灯亮,按UP键分钟加1,相反按DN键分钟减1。3.2功能模块二秒表功能 按MODE键5次进入模式5,LED4灯亮,第一次按下UP键,秒表启动,开始计时,第二次按下UP键,秒表暂停,记录的是暂停时刻的数字,若再按一次UP键,秒表又继续计时,按DN键可对秒表进行清0,此秒表最大可计时09999s。3.3功能模块三倒计时功能 按MODE键6次进入模式6,LED1灯亮,按UP键可对分钟加1,进行定时,按下DN键可对倒计时进行暂停,当倒计时完成后,会有一个声音的提醒,此倒计时最大

10、可定时99分钟。3.4功能模块四整点报时功能 按MODE键7次进入模式7,LED2灯亮,此时显示屏上显示“BS.00”或“BS.01”,当显示“BS.00”时表示整点报时功能关闭,当北京时间显示整点时不报时;当显示“BS.01”时整点报时功能开始,当北京时间显示整点时报时,并且几点钟响几次。3.5功能模块五跑表功能 按MODE键8次进入模式8,LED灯亮,第一次按下UP键,跑表启动,开始计时,第二次按下UP键,跑表暂停,记录的是暂停时刻的数字,若再按一次UP键,跑表又继续计时,按DN键可对秒表进行清0,此跑表最大可计时99s。4.实习体会及建议 实习体会: 在学习了数字电子技术、电子线路计算机

11、辅助设计的课程设计后,我们对单片机有了初步的了解,在这次单片机系统综合训练的实习中,在老师和同学的帮助下,系统复习了理论知识,熟悉单一功能的硬件设计及软件编程;了解单片机应用系统的开发步骤,综合应用的软件开发;掌握单片机开发系统的功能(DP150-P),对单片机小系统板STC89C51有了更深的认识,知道芯片的结构,掌握了芯片的工作原理和其具体的使用方法,同时也知道了怎样才能把程序正确的下载到单片机中去;熟练应用Keil 51进行软件开发,怎样创建工程,添加文件,编写好的程序编译、链接、调试、下载、运行;对Keil 51语言有了更好的理解,知道了常用的一些语法功。在实习过程中也提高了自己分析问

12、题解决问题的能力,对word、photoshop、画图板等软件有了更进一步的了解,这使我在以后的工作中更加得心应手。实习建议:在软件设计过程中,可以从实习要求着手,分成几个功能模块完成,先画整体流程图,在各个模块中又画详细的流程图,这样对程序的后期调试很有帮助,有问题时很容易得到解决。4.1遇到的主要问题及解决方法4.1.1北京时间显示及调整 问题描述:打开开关,进入模式0时,蜂鸣器会响一次。 问题分析及解决办法: 每次打开开关时显示“00.00”,注意到在倒计时模块中,当倒计时完成时,显示“00.00”,此时有一个声音提醒标志,DJ_time=1,所以当开关打开时蜂鸣器也会响一次,为解决这个

13、问题可以再加一个条件MODE=6,这样打开开关时就不会有提醒声音了。4.1.2秒表问题描述:进入第二个模块时,当按下MODE键,模式为5时,发现秒表不是从0开始计时,而是以第一个模式的秒为初值计时;第二位后的小数点和其他模式一样也在闪动;当计时到255s时又开始归零,而不是9999s。问题分析及解决办法:1.秒表没有从0开始计时,是因为在定义时第一个模块与第二个模块的显示字符为同一个,为了加以区分,第二个模块的显示数字定义为Sec1,同时可以加个启动标志start_flag1,此时当MODE=5时,显示屏上“00.00”; 2.第二个小数点一直在闪动,是因为没有注意到,其他模式时都有定义if(

14、count100&Bit=1)P0|=0x80,意为0.5S中间小数点亮,之后灭,不断循环,此时应加个条件if(Mode!=5),这个问题就可以解决;3.计时到255s时归零重新开始,是因为定义的Sec1的类型不够9999那么长,注意到定义unsigned char Sec1=0,把char改为int,此问题即得到解决。4.1.3倒计时定好时间后,按下DN键启动倒计时,显示屏没有变化。解决办法:开始以为是初始化出了问题,把unsigned char Sec2=0改为Sec2=59,定好时后按下DN键,此时显示屏可显示倒计时,但是减到“00.59”时显示屏又不动了,然后改为static unsi

15、gned char Sec2=59,这时可以减到“00.00”,但是不会停止。然后检查程序,加一个条件当减到“00.00”时,start_flag2=!start_flag2,意为当减到0时,自动暂停倒计时。就此问题的解决方法我觉得除了上述的减为0,暂停倒计时外还有可以选择使用刷新,倒计时过程中一直刷新显示屏,倒计完成时关闭刷新。4.1.4整点报时开启报时功能,发现到整点时未报时。检查程序没有错误,检查定义语句,发现只有“P14=1”,而没有定义蜂鸣器I/O口,应加入sbit P14=P14,当重新开启整点报时功能时,北京时间显示整点时可以报时。4.2本系统的特点 1.系统采用Keil C51

16、生成的目标代码,此软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,生成的目标代码效率非常高,容易理解。 2.系统可实现电子钟的五个功能,各个功能模块独立完成,互补影响。 3.倒计时功能模块中,当倒计时减为“00.00”时,蜂鸣器会长鸣一次,用做提醒倒计完成。4.3可扩展功能 1倒计时分钟的减 功能模块三倒计时功能中,按UP键分钟加1,DN键实现倒计时的启动或暂停。在这个模块中,没有对分钟的减1,如果定时99分钟,就需要一直得加到99,很不方便,可以再增加模式实现对分钟的减操作。如果要实现大于99分钟的倒计时,还可增加模式进行操作。 2整点报时可有多种音乐的选择 功能模块

17、四整点报时功能中,显示“BS.01”报时功能开始时,当北京时间到达整点时,几点钟会响几次声音。可以增加模式做报时音乐的选择,不同的时间会有不同的音乐响起。 3可多段计数的跑表 功能模块五跑表功能中,按UP键可启动或暂停跑表,按DN键对跑表进行清0。在这个模块中,跑表不具备存储记忆功能,当按下UP键偶数次时,跑表暂停,只可显示暂停那一刻的时间,可以增加模式,实现对多个时间段记录的跑表。4指示灯 在整个过程中,模式比较多,LED灯作为区分模式的选择标志,在这里自己做的不是很好,在操作时不容易区分模式。因为LED灯有四个,模式一般有八九个,这时最好选用8421BCD码,如果模式大于16个就得另外想办

18、法。5此外还可以加几个功能:如闹钟功能,其中可设置打开或关闭闹钟,有无贪睡功能;显示年、月、日及调整功能,还可显示星期。附录:源程序代码#include reg52.h#define THCO 0xee#define TLCO 0x0Unsigned char code Duan=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;/共阴极数码管,0-9段码表unsigned char Data_Buffer4=0,0,0,0;/四个数码管显示数值,数组变量定义unsigned char Hour=0,Min=0,Min2=0,Sec=0,Sec

19、2=0,Sec3=0,Mill_sec=0;unsigned int Sec1=0;bit flag=0;/1分时间到标志bit Brush_flag=0;bit start_flag1=0;/秒表自启动bit start_flag2=0;/倒计时开启bit start_flag3=0;/跑表自启动sbit P10=P10; /四个数码管的位码口定义sbit P11=P11;sbit P12=P12;sbit P13=P13;sbit P14=P14 ;/蜂鸣器控制I/O口sbit K_Mode=P20; /按键定义sbit K_UP=P21;sbit K_DN=P22;sbit LED1=P

20、23; /四个指示灯sbit LED2=P24;sbit LED3=P25;sbit LED4=P26;void delay(int n);unsigned char ZD_time=1;/整点报时unsigned char ZD_N_flag=0;/整点报时功能开启否unsigned char DJ_time=1;/倒计时减到0unsigned char i;unsigned char Mode=0;void main() TMOD=0x11; /定时器0初始化 TH0=THCO; TL0=TLCO; TR0=1; ET0=1; EA=1; while(1) if(ZD_time&ZD_N_

21、flag=1)/整点报时功能开启 ZD_time=0; for(i=0;iHour;i+) P14=0; delay(100); P14=1; if(DJ_time&Mode=6) DJ_time=0; P14=0; delay(200); P14=1; if(Brush_flag=1) Brush_flag=0; if(Mode=2) Data_Buffer0=Hour/10; Data_Buffer1=Hour%10; Data_Buffer2=Min/10; Data_Buffer3=Min%10; else if(Mode=4) Data_Buffer0=Min/10; Data_Bu

22、ffer1=Min%10; Data_Buffer2=Sec/10; Data_Buffer3=Sec%10; else if(Mode=5) Data_Buffer0=Sec1/1000; Data_Buffer1=Sec1%1000/100; Data_Buffer2=Sec1%100/10; Data_Buffer3=Sec1%10; else if(Mode=6) Data_Buffer0=Min2/10; Data_Buffer1=Min2%10; Data_Buffer2=Sec2/10; Data_Buffer3=Sec2%10; else if(Mode=7) Data_Buf

23、fer0=Sec3/10; Data_Buffer1=Sec3%10; Data_Buffer2=Mill_sec/10; Data_Buffer3=Mill_sec%10; else if(Mode=8) Data_Buffer0=8; Data_Buffer1=5; Data_Buffer2=0; Data_Buffer3=ZD_N_flag;void delay(int n) unsigned char i,j;n; for(j=0;j=200) /秒计时,定时器定时5ms,计200次为一秒 count=0; Sec+; if(Sec=60) Sec=0; Min+; if(Min=60

24、) /时间计时 Min=0; Hour+; ZD_time=1; if(Hour=24)Hour=0; Brush_flag=1; /更新数码管显示 Bit+; if(Bit=4)Bit=0; P1|=0x0f; /先关位码 P0=DuanData_BufferBit; /开段码 if(Mode!=5) if(count=200) count1=0; Sec1+; if(Sec19999) Sec1=0; Brush_flag=1;if(start_flag2=1)/倒计时开启 count2+; if(count2 count2=0; if(Sec2=0) if(Min2=0)DJ_time=1;start_flag2=!start_flag2; elseMin2-;Sec2=59;

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

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