单片机实习报告(共14页).docx





《单片机实习报告(共14页).docx》由会员分享,可在线阅读,更多相关《单片机实习报告(共14页).docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上单片机实习报告学 院: 专 业: 姓 名: 学 号: 起讫时间: 指导教师: 二一年九月九日一、实习目的 1、熟悉单片机的原理、功能与应用 2、熟悉单片机开发的相关软硬件 3、培养单片机应用开发的兴趣 4、提高单片机应用系统的开发能力 二、实习要求 1、熟悉MCS-51单片机的原理; 2、熟悉单片机KEIL C51编程语言; 3、熟悉uVision2单片机C语言开发环境; 三、实习内容 1、熟悉单片机实习板的电路原理,焊接数字钟电路板,连接实习板上的电路,构成数字钟电路。 2、熟悉C51编程语言和开发环境,设计数字钟的软件程序,调试软硬件实习数字时钟功能。数字钟的具体
2、设计要求 一、设计要求 1、以MCS-51系列单片机为核心器件,组成一个电子时钟系统。 2、系统显示器由8位LED数码管组成,分别显示时间值的小时、分和秒,以24h(小时)计时方式。 3、 能够使用按键开关随时对当前时间进行调整。(推荐:键1为功能切换键,键2为移位键,键3为增加键,键4为减少键。也可自行定义。) 4、 有精力的学生可以实现秒表功能、闹钟定时功能、温度显示功能和通讯功能。 二、实习工具 计算机、万用表、稳压电源、编程器、电烙铁、单片机实习套件 三、方案论证 1、总体设计 为了实现LED显示器的数字显示,采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,接口复杂一些
3、。考虑时钟显示有8位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现LED的显示。单片机采用Atmel的AT89S52芯片,这样单片机可具有足够的空余硬件资源实现其它的扩充功能。2、系统硬件电路的设计 秒表/时钟计时器的硬件电路采用AT89S52单片机,最小化应用设计;采用共阴七段LED显示器,P0口输出段码数据,P2.0P2.5口作列扫描输出,P1.0,P1.1,P1.2,p1.3口接四个按钮开关,用以调时功能设置。P3.2口接温度传感器,P3.3口接闹铃,P3.4口接闹铃旁的LED。采用12MHz晶振,有利于精确定时。3、系统程序的设计(1)程序实现功能说明刚开始复位,数码管显示
4、学号,随后从1秒开始计时。短按按键1,可以实现调时功能,长按1可实现闹钟设置功能,当可以设置闹钟时LED灯亮,当设置时间与计时时间吻合时,闹铃响1分钟。短按按键2,实现移位功能,长按按键2,实现确定锁定功能。按键3实现“+”功能,按键4实现“-”功能。18B20为温度传感器,所以数码管后两位可以实现温度显示功能。(2)主程序本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。 (3)LED显示子程序 数码管显示的数据存放在内存单元dis 0-dis5中。其中dis0-dis1存放秒数据,dis2-dis3存放分数据,dis4-dis5存放时数据
5、,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应码段存放在ROM表(LEDMAP中)。显示时,先取出dis0-dis5中的某一数据,然后查得对应的显示用码段,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。 (4)定时器T0中断服务程序 定时器T0用于时间计时。中断进入后,时钟计时累计中断达1秒时,对秒计数单元进行加1操作。在计数单元中采用十进制BCD码计数,满60进位,T0中断服务程序执行流程见图2.4。 (5)具体程序如下#include #include #define LEDLen 8#define ju
6、mp_ROM 0xcc#define start 0x44#define read_EEROM 0xbeunsigned char k=0;unsigned char status; /按键处理的状态bit seconds_flag=0; /秒标志位,表明时间已到一秒bit flag_key_delay; /键盘连续处理间隔时间周期信号bit key_first=1; /第一次扫描到按键按下#define KEY_PORT P1 /按键连接的端口bit key_operated=1; /按键已处理过标记unsigned char elaps; /按键长按的时间unsigned char tim
7、er_s; /按键随时时间unsigned char temperature; /温度显示unsigned char hours, minutes, seconds; /时间显示的时、分、秒unsigned char timer_hours,timer_minutes; /闹钟定时的小时、分钟unsigned char hours_flag,minutes_flag,naozhong_flag;/小时,分钟,闹钟可设置标志位sbit P10 = P10;sbit P11 = P11;sbit P12 = P12;sbit P13 = P13;sbit DQ = P32;sbit P33 = P
8、33;sbit P34 = P34;unsigned char disLEDLen; /发光二极管位选数组 code unsigned char LEDMAP = /发光二极管0F的段码 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;延时程序void delay_ms(unsigned char N) /N*100us 软件延时 unsigned char i,j;i=N;j=50;dodowhile(-j);while(-i);-键盘相关程序unsi
9、gned char scankey() /按键的监测unsigned char temp1,temp2; unsigned char start_time;temp1=KEY_PORT; /按键未按下为1,按下为0temp1&=0x0f; /取低四位if(temp1=0) /若没有键按下,temp1为0key_first=1;elaps=0;else /否则有键按下 delay_ms(10); /延时去抖动,通过比较temp1 和temp2=KEY_PORT; temp2是否相等,确切判断是否有键temp2&=0x0f; 按下if(temp1=temp2)if(key_first)start_
10、time=timer_s;key_first=0;key_operated=0;elaps= (timer_s+60-start_time)%60; /计算按键时间长短return temp1; /返回键值return 0; /没键按下时返回0void keydeal() /按键的处理unsigned char keyval; /键值keyval=scankey();if(keyval=1) /长按及短按key1(调时、定时闹钟)if(elaps6)hours_flag=1;naozhong_flag=1; /闹钟标志位,等于1时表示可以设置闹钟P34=0; /可设置闹钟时间时LED灯亮if(
11、keyval=2) /短按及长按key2(移位、锁定) if(elaps6) /长按为锁定功能 if(hours_flag=1)&(minutes_flag=0)&(naozhong_flag=0) hours_flag=0; if(hours_flag=1)&(minutes_flag=1)&(naozhong_flag=0) hours_flag=0; minutes_flag=0; if(hours_flag=1)&(minutes_flag=1)&(naozhong_flag=1) P34=1; hours_flag=0; minutes_flag=0; naozhong_flag=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实习 报告 14

限制150内