欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机原理及应用实习总结报告.docx

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

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

    单片机原理及应用实习总结报告.docx

    单片机实习总结 实习目的1.通过对单片机小系统的设计、焊接、装配,把握电路原理图及电子线路的根本焊接装配工艺、标准及留意事项;2。通过对系统板的测试,了解系统板的工作原理及性能,把握元器件及系统故障的排解方法;3。把握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、键盘、显示等程序的编制及调试汇编语言、C 语言均可;4. 通过单片机系统的硬件焊接、调试,程序的编制、调试及运行,与理论及试验的有机结合和指导教师的补充介绍,使学生把握测控系统的工作原理、开发方法;5。培育学生解决实际问题的力量,提高对理论学问的感性生疏。二 实习意义通过本实习不但可以单片机的软硬件的综合调试方法,而且可以娴熟把握电路原理图,激发对单片灵巧能型的探究精神,提高学生的综合素养,培育学生应用单片机实现工业掌握系统的设计、开发与调试的力量。在制作学习过程中,不但可以把握软硬件的综合调试方法, 而且可以是学生对单片灵巧能性产生猛烈的欲望到达最大限度的把握微机应用技术,软件及 接口设计和数据采集与处理的技能,培育电综合实践素养的目的。三 系统根本组成及工作原理3。1 系统根本组成最小系统包括单片机的晶振、复位、电源、下载电路,以及简洁的输入输出等模块,其框图如图 1 所示。在根本档完成的前提下设计完成扩展模块,使显示信息更丰富,其框图如 图 2 所示。图 1 最小系统框图1电源模块 乐曲演奏琴键模块键盘模块复位喇叭STC89C52RC显示驱动四位LED 显示循环灯模块晶振3。2 系统工作原理图 2 扩展总框图串口下载、通讯模块在单片机的P3 口接 12 个发光二极管,通过外部中断、定时中断和位扫描等程序掌握实现每个发光二极管指示灯闪耀.将全部行线至于低电平,检验列线的状态,只要有一列的电平为底,则表示键盘中键被按下,而且闭合的键位于低电平线与 4 根行线相穿插的 4 个按键之中;假设全部列线均为高电平,则表示键盘中无按键按下。四 系统硬件设计4.1 电路设计利用单片机的P1 口扩展一个 4×4 的矩阵键盘;单片机的P3。0 和 P3.1 连接联机通讯模块; P2。0-P2。3 口作四位数码显示接口;P3。2P3.7 口做交通灯和循环灯接口。电路最小系统原理和模块如图 3 所示。电路系统原理图如图附录 1 所示图 312图 3-2五 系统软件设计5.1 主程序设计主程序包括 5 个局部,以状态号标识系统所处的状态。在上电初始化后即进入状态号的轮询扫描,状态号的值打算了子程序的入口。其中子程序分别为:循环灯点亮(状态号为 1、四位数码显示倒计时状态号为 2、交通灯掌握状态号为 3、电子琴演奏状态号为 4。开头 初始化状态号设为默认 1取得状态号n,依据 n 值,选择程序分支n=1, 执行状态 1处理程序n=2, 执行状态 2处理程序n=3, 执行状态 3处理程序n=4, 执行状态 4处理程序n=5 , 执行状态 5 处理图 5 主程序流程框图、PC 机状态号位 5主程序流程框图如图 5 所示:5.2 功能子程序设计5。2.1 循环灯掌握模块利用查表法,定时器定时实现任意历程跑马灯的掌握。5.2.2 四位数码显示模块编程实现千位数秒倒计时。35.2。3 交通灯掌握模块利用模块 1 和模块 2 的硬件电路模拟实现十字路口交通等的治理功能,要求有黄灯闪耀警示功能.信号灯掌握系统:南北线有红黄绿三只信号灯,东西线有红黄绿三只信号灯。表 1 交通灯切换掌握挨次表绿黄红绿黄红30亮灭灭灭灭亮10灭闪灭灭灭亮30灭灭亮亮灭灭10灭灭亮灭闪灭时间秒南北线东西线45。2.4 电子琴模块该模块的硬件电路,可以利用单片机的 1 位 IO 口接一只三极管来驱动蜂鸣器,演奏编好的乐谱;或者实现利用按键模拟电子琴演奏。利用定时器掌握单片机引脚发出肯定频率声波频率 20Hz20230Hz)的方波信号,就可使喇叭发出单调的声音,也可以产生DO,RE,ME,FA,SO,LA,XI 等音阶在内的各种频率声音。乐曲演奏模块通过编程将乐谱输入输入单片机,由外接扬声器奏出动听动听的音乐。55.2。5 PC 通讯六 实习总结、体会通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培育我们的创精神,从而不断地战胜自己,超越自己.创可以是在原有的根底上进展改进,使之功能不断完善,成为真真正自己的东西。首先在做本次实习的过程中,我感受最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是格外必要的,同时也是必不行少的。我们是在做单片机实习,但我们不是艺术家,他们可以抛开实际尽情在梦想的世界里飞行,而我们一切都要 有据可依,有理可寻,不切实际的设想永久只能是设想,永久无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课学问,如:C 语言、模拟和数字电路学问等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我觉察效率很高,这是我做这次课程设计的又一收获。最终,在实习之前,我们要对所用单片机的内部构造有一个系统的了解,知道该单片机内有哪些资源;要有一个清楚的思路和一个完整的的软件流程图;在设计程序时,不能妄想 一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的 好习惯,一个程序的完善与否不仅仅是实现功能,而应当让人一看就能明白你的思路,这样 也为资料的保存和沟通供给了便利;在实习过程中遇到问题是很正常的,但我们应当将每次遇到的问题记录下来,并分析清楚,以免下次再遇到同样的问题。但是从中学到的学问会让我受益终身.觉察、提出、分析、解决问题和实践力量提高都会受益于我在以后的学习、工 作和生活中。6参考文献1. 彭伟。单片机 C 语言程序设计实训 100 例基于 8051+Proteus 仿真。北京:电子工业出版社,20232. 郭天祥.概念 51 单片机C 语言教程入门、提高、开发、拓展全攻略.北京:电子工业出版社,20233. 刘建清。轻松玩转 51 单片机C 语言。北京:北京航空航天大学出版社,20234. 谭浩强.C 程序设计。北京:清华大学出版社,19915。求是科技. 单片机典型模块设计实例导航。北京:人民邮电出版社,20236。潘民,王燕芳。单片微型计算机有用系统设计.北京:电子工业出版社,20237.胡汉才。单片微机原理及其接口技术。清华大学出版社,2023(推举教材) 8。宏晶科技 STC Microcontroller Handbook, 20239.单片机教程网 :/www。51hei。com/附件 1 单片机实习最小系统原理总图附件 2 实习材料清单附件 3 实习工作进展及完成记录表附件 4 调试通过的源程序清单7附件 1原理总图附件 2单片机实习最小系统设计材料清单材料名称规格数量备注说明电阻10k1电阻1k7R1R2-R8电阻20012电容30pf2电容1uf4电解性电容220uf1电解性电容10uf1芯片AT89C511R10R21 C1 C2 C4C7 C3C8芯片NAX2321三极管5pnpQ1-Q5发光二极管LEDRED4发光二极管LEDGREEN4发光二极管LED-YELLOW49 键插座CONN-D9F1D1 D2 D9 D10 D3 D4 D11 D12 D5 D6 D13 D14喇叭SOUNDER1多功能电路板1管座40 位1管座16 位1按钮16晶振12M1排阻810k14 位液晶数码管1共阳极RP18实习工具清单工具规格数量电烙铁1钳子尖口1钳子圆口1附件 4 源程序清单101. 循环灯点亮include reg52.h>include <intrins。h>#include ”led。h”define uchar unsigned char #define uintunsigned int uchar code led_table =0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff, 0xfb,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff, 0xfb,0xf3,0xe3,0xc7,0x8f,0x1f,0x3e,0x7f, 0xff,0xff,0xcf,0xb7,0x7b , 0xff,0xff , 0x7b,0xb7 ,0xcf,0xff;int su_du=1500;void lighting_ledstatic uchar i; static uint m;m+;if (i=34 i=0; ifm = su_dum=0;P3 = led_tablei+;if (m >su_dum = 0;2. 四位数码显示(1#include ”daojishi.h” #include “timer0。h”bit daojishi_OK = 0; int jishi=0;void _Dao_Ji_Shistatic uchar Minute_buf =2; if (daojishi_OK = 1if Minute_buf != shi_zhong)jishi; ifjishi 0)jishi = 0;daojishi_OK = 0;Minute_buf = shi_zhong;2)#include “REG52.h“#include ”timer0.h”typedef unsigned char BYTE; typedef unsigned int WORD;/-/* define constants */ #define FOSC 12023000Ldefine T1MS (65536-FOSC/12/1000/1mstimer calculation method in 12T mode/ define SFR */ sbit we1=P23; sbit we2=P22; sbit we3=P21; sbit we4=P20;/ define variables */BYTE code table=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x86,0x8e;WORDcount;/1000 times counterWORD shi_zhong = 0; WORD beep_delay_count; bit seg_flag;bit search_key_flag;/-void seg_displayWORD datswitchcount % 4case 0:P0 = 0xff; we1=0 ; we2=1 ; we3=1 ;we4=1;P0=tabledat/1000; break;case 1:P0 = 0xff;we1=1;we2=0;we3=1;we4=1;P0=tabledat1000/100;/reload timer0 high byteifTR1 = 1beep_delay_count+; ifcount+ =1000/1ms 1000 > 1scount = 0;/resetcountershi_zhong+;seg_flag = 1; ifcount%10 = 0search_key_flag = 1;/-void tm0_int)TMOD = 0x01;/settimer0 as mode1 (16-bit)TL0 = T1MS;/initialtimer0 low byteTH0=T1MS>8;break;/initial timer0 high bytecase 2:TR0 = 1;/timer0P0 = 0xff;start runningwe1=1;we2=1;we3=0;ET0 = 1;/enablewe4=1;timer0 interruptP0=tabledat100/10;EA = 1 ;/openbreak;global interrupt switchcase 3:count = 0;/initialP0 = 0xff;counterwe1=1 ; we2=1;we3=1;we4=0;3。交通灯掌握P0=tabledat10;break;include reg52.h>#include ”traffic。h”default :;include ”timer0。h“#define uchar unsigned char#define uint unsigned int/ Timer0 interrupt routine/sbit RED_A = P32;void tm0_isr interrupt 1sbit RED_B= P33;sbit GREEN_A = P34;TL0=T1MS;sbit GREEN_B = P35;/reload timer0 low bytesbit YELLOW_A = P36;TH0=T1MS>>8;sbit YELLOW_B = P37;uchar dao_ji_shi=0;uchar Operation_Type = 1; void Traffic_lignt烁 5scase 4:/B 黄灯闪dao_ji_shi = 29-shi_zhong %30; switch(Operation_Type)case 1:if dao_ji_shi =10 |dao_ji_shi=8|dao_ji_shi =6 |dao_ji_shi =4 dao_ji_shi=2|dao_ji_shi=0RED_A=1;YELLOW_A=1;GREEN_A=0;/A 绿灯、B 红灯亮RED_B=0 ; YELLOW_B=1 ;GREEN_B=1;if dao_ji_shi< 11/十秒红灯、B 绿灯elseYELLOW_B = 0;YELLOW_B = 1; RED_A=0;GREEN_A=1;/ARED_B=1;GREEN_B=0;Operation_Type = 2;break; case 2:if(dao_ji_shi=10dao_ji_shi=8|dao_ji_shi=6 |dao_ji_shi=4dao_ji_shi = 2|dao_ji_shi=0)YELLOW_A = 0;elseYELLOW_A = 1;/A 黄灯闪耀 5sif(dao_ji_shi =29)Operation_Type = 3;RED_A=1;GREEN_A=0;/A 绿灯、B 红灯亮RED_B=0;GREEN_B=1;break; case 3:RED_A=0;YELLOW_A=1;GREEN_A=1;/A 红灯、B 绿灯亮RED_B=1;YELLOW_B=1;GREEN_B=0;if dao_ji_shi < 11)/十秒Operation_Type = 4;break;ifdao_ji_shi =29)Operation_Type = 1; break;default:break;4.电子琴、乐曲演奏include <reg52.h>#include ”dianziqin。h”include “timer0.h”#include “key。h“#define uchar unsigned char #define uint unsigned int sbit beep=P24;uint code Tone_Delay_Table=/音符延时64021,64103,64260,64400,64524,64580,64684,64777,64820 , 64898,64968,65030 , 65058,65110 ,65157,65178;uchar code DSY_Table=/ 数码管 0xc0 , 0xf9,0xa4,0xb0 , 0x99,0x92 , 0x82 , 0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xBF;/第一段uchar code song1_Tone= 0,1,2,3,4,5,5,6,7, 8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0xff; uchar code song1_Time=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xff;/其次段uchar code song2_Tone= 3,5,5,3,2,1,2,3,5,3, 2,3,5,5,3,2,1,2,3,2,1,1,0xff;uchar code song2_Time=2,1,1,2,1,1,1,2,1, 1,1,2,1,1,2,1,1,1,2,1,1,1,0xff;/第三段uchar code song3_Tone=1,3,3,3,3,5,4,2,5,3,7, 6,5,5,7,4,4,3,6,7,2,1,0xff;uchar code song3_Time=2,1,1,2,1,1,1,2, 1,1,1,2,1,1,2,1,1,1,2,1,1,1,0xff;/音乐片段引索,音符引索uchar song_index=0,Tone_index=0;/指针uchar song_Tone_Pointer,*song_Time_Pointer;/取音符位置uchar i=0;song_Time_Pointer=song2_Time;break;case 2:song_Tone_Pointer=song3_Tone;song_Time_Pointer=song3_Time;break; default :break;Tone_index=song_Tone_Pointeri;if(Tone_index=0xff)TR1=0; i=0;elseuchar KeyNo; /按键TR1=1;uchar inter_cont=0;void Dian_zi_qin(if(beep_delay_count=song_Time_Pointeri200 ifKey_value != 0)beep = 1;TR1=1;beep_delay_count=0;KeyNo= Key_value;i+;beep_delay_count=0;else if(beep_delay_count >= 200/* Timer0 interrupt routine */beep = 1;void tm1_isr( interrupt 3TR1=0;ifinter_cont = 0)if inter_cont 0)TH1=Tone_Delay_TableKeyNo>>8;switchinter_cont-1)TL1=Tone_Delay_TableKeyNo;case0:else /if(inter_cont = 0)song_Tone_Pointer=song1_Tone;TL1 = Tone_Delay_Table Tone_index;song_Time_Pointer=song1_Time;/reload timer1 low bytebreak;TH1=Tone_Delay_TablecaseTone_index>8 ;/reload1:song_Tone_Pointer=song2_Tone;timer1 high bytebeep=beep;/-void tm1_inteven parity bit busy;void SendData(uchar dat;void SendString(char *s); void Uart_int#if (PARITYBIT = NONE_PARITY)TMOD=TMOD|0x10;SCON = 0x50;/8bit variable16-bit)/set timer1 as mode1UART#elif(PARITYBIT=ODD_PARITY)|TL1 = Tone_Delay_Table Tone_index ;/reload timer1 low byteTH1 = Tone_Delay_TableTone_index>8 ;/reload timer1 high byteTR1 = 0;/timer1start runningET1 = 1;/enabletimer1 interruptEA = 1;/openglobal interrupt switch PARITYBIT=EVEN_PARITY | (PARITYBIT = MARK_PARITYSCON = 0xda;/9-bit variable UART, parity bit initial to 1elif (PARITYBIT = SPACE_PARITYSCON = 0xd2;/9-bit variable UART, parity bit initial to 0endifTL2=RCAP2L=65536-FOSC/32/BAUD); /Set autoreload vaule TH2=RCAP2H=5.联机通讯65536(FOSC/32/BAUD 8;#include REG52。hT2CON = 0x34;/Timer2 startinclude ”intrins。h“runinclude “uart。h“ES = 1;/Enable UART#include “timer0.h“interrupt/sfr T2CON= 0xC8;/timer2 controlEA = 1;/Open masterregisterinterrupt switch/sfr RCAP2L = 0xCA;/sfr RCAP2H = 0xCB;void Uart)/sfr TL2= 0xCC;/sfr TH2= 0xCD;if shi_zhong%3 = 0 #define uchar unsigned char#define uint unsigned int#defineFOSC12023000L/System frequency#define BAUD 2400/UART baudrate/Define UART parity mode*/#define NONE_PARITY0/None paritydefine ODD_PARITY1/Odd paritydefine EVEN_PARITY2/Even paritydefine MARK_PARITY3/Mark parity #define SPACE_PARITY4/Space parity #define PARITYBIT EVEN_PARITY/TestingSendString”12 电气本!rn”; shi_zhong+;/*-UART interrupt service routine-/void Uart_Isr) interrupt 4if (RIRI = 0;/Clear receiveinterrupt flagbusy = 1;/ bit9 = RB8;/P2.2 show parity bitSBUF = ACC;/Send data toUART bufferif (TI)/-TI =0;/CleartransmitSend a string to UARTinterrupt flagInput: s address of stringbusy= 0;/CleartransmitOutput:Nonebusy flag-/void SendString(char *s/*-Send a byte data to UART Input: dat data to be sent) Output:None-/void SendData(uchar dat)while busy);/Wait for the completion of the previous data is sentACC = dat;/Calculate the even parity bit P (PSW。0if (P/Set the parity bitaccording to P#if (PARITYBIT = ODD_PARITY)TB8 = 0 ;/Set parity bitto 0elif PARITYBIT = EVEN_PARITYTB8 = 1 ;/Set parity bitto 1 #endifelse#if (PARITYBIT = ODD_PARITYTB8 = 1 ;/Set parity bitto 1#elif PARITYBIT = EVEN_PARITYTB8 = 0 ;/Set parity bitto 0endifwhile (s/Check the end of the stringSendDatas+);/Send current char and increment string ptr6.按键#include <REG52.hinclude ”key。h”include ”led.h“#include “dianziqin.h“ #define uchar unsigned char #define uint unsigned int uchar Model=1;uchar Key_value;extern int jishi; extern bit daojishi_OK; uchar Key_get(unsigned char KeyNo = 0; uchar Tmp,k;static uchar k_yanchi=0;/高四位置 0,放入四行P1=0x0F;/Delayms(10); k_yanchi+; ifk_yanchi = 18)/按键后 00001111 将变成 0000XXXX, X 中 1 个为 0,3 个仍为 1,下面抑或会把 3 个 1 变 0.唯一一个 0 变 1Tmp=P10X0F;Model+;/推断按键发生于 0-3 哪一列P3=0xff;switch(TmpKey_value=0;case 1:k=0;break; case 2:k=1;break;elseif (Key_value = 8)/减速su_du = su_du +200;case 4:k=2;break;if(su_du >5000)case 8:k=3;break;su_du =5000;default:return 0;/无键按下Key_value=0;/低四位 0,放入四列else if (Key_value = 4/加速P1=0xf0;/Delayms(10;su_du = su_du 200;if k_yanchi = 20)ifsu_du 400su_du =400;k_yanchi = 0;Key_value=0;/ 按 键 后 11110000将 变 成xxxx0000,X 中 1 个为 0,3 个仍为 1,下面会将break;高四位移至低四位case daojishi:Tmp=P10Xf0;if Key_value != 0&jishi >/对 03 行分别附加起始值 0。10004.8。12jishi = 0;switchTmp>>4if (Key_value =13 )Model+;case 1:k+=0;break;else if(daojishi_OK = 0)case 2:k+=4;break;switch(Key_value)case 4:k+=8;break;case 8:k+=12;break;case 0:break;default:return 0;case 1:KeyNo=k+1;jishi=jishi*10+1;/数字键

    注意事项

    本文(单片机原理及应用实习总结报告.docx)为本站会员(1390****791)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开