《单片机实训报告(共8页).doc》由会员分享,可在线阅读,更多相关《单片机实训报告(共8页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上单片机原理及应用实训报告班级: 学号: 姓名: 指导教师: 实训总成绩: 专心-专注-专业一、 节日彩灯设计题目:8位逻辑电平模块上的LED小灯从左向右呈现“鞭甩”的实验现象,状态间隔为0.25秒;按键1开始,按键2结束。原理图程序代码:#include#define uchar unsigned charuchar tab=0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00;sbit S1=P14;sbit S2=P17;unsigned char i,j;delay(unsigned int x)for(j=0;jx;j+)for(i=
2、0;i10;i+);void main()uchar i,b,d;while(1)if (S1=0)delay(50);if(S1=0);S1=b;b=0;for(i=0;i8;i+)P2=tabi;delay(50);if (S2=0)delay(50);if(S2=0);S1=d;d=1;P2=0xff;设计思想总结用C语言程序控制单片机最小系统,使IO口输出高低电平控制彩灯电路的闪烁。节日彩灯控制器是利用将单片机的CPU、RAM、ROM、定时器/计数器及输入/输出、I/O接口电路集成在一块集成电路芯片上的特点。通过其与发光二极管及驱动电路的连接,从而构成一个完整的硬件电路。然后通过对单片
3、机的ROM进行编程,实现对彩灯闪烁的控制。 二、定时器实现流水灯题目:利用定时器/计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯点亮,依次循环点亮。原理图程序代码#include #includeint lamp = 0xfe ; int cnt = 0;main()P2 = 0xfe;TMOD = 0x01;TL0 = (65536 - 50000) % 256; TH0 = (65536 - 50000) / 256; TR0 = 1 ;ET0 = 1; EA = 1;while(1)P2=lamp;void _time0(void ) interrupt 1TL0 = (65
4、536 - 50000) % 256; TH0 = (65536 - 50000) / 256; cnt+;if(cnt = 40)cnt=0;lamp=_crol_(lamp,1);P2 = lamp;设计思想总结当AT89C51的P2口有低电平输出时,相应的发光二极管就会点亮。应用这一原理我们可以容易的点亮一个LED,通过定时器来保证每个LED灯点亮时间大约为2秒。三、LED数显屏设计题目:P0端口控制动态数码管的段码显示,P2端口控制动态数码管的位码显示,P1.7接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“54321”字样。原理图程序代码#include
5、unsigned char seg=0xf9,0xa4,0xb0,0x99,0x92;unsigned char i,j;sbit P1_7=P17 ;delay( unsigned int x) for (j=0;jx;j+) for(i=0;i10;i+);main()unsigned char n,temp;temp=0x01;while(1)for(n=0;n5;n+)P0=segn;P2=temp;delay(100);P2=0x00;temp=temp0;n-)P0=segn-1;P2=temp;delay(100);P2=0x00;temp=temp1;temp=0x01;设计思
6、想总结利用单片机进行LED汉字显示平设计与制作是利用单片机控制技术编写程序,通过程序控制LED的显示,显示所要显示的内容。技术线路为通过程序控制AT89C51芯片输出高低电平、高低电平控制分别控制LED的亮和灭最终达到所要显示的内容。在显示电路中主要靠按键来实现各种显示要求的选择与切换。 实训总结通过本次单片机实训使得我更深层次的学习单片机原理与应用技术这门专业课程,同时对KEIL软件进行复习。这次实训是我看到了我最薄弱的一点那就是编程,对于编程有很大的困难。对以往学习过的编程知识没有好好掌握,特别是编程这方便的知识很薄弱。学习过的知识在实际应用中仿佛是冰山一角,完全不够用,需要通过查阅很多资料才能解决到碰到的相关问题。而且实训中出现的问题都是实际应用出比较典型的问题。这次实训还让我深刻的体会了结构化程序设计的优势,让我懂得当我们要进行一个复杂的程序设计时应该先将其分解为多个不同的功能模块再分别编程实现,这样做不仅降低了编程的难度,也容易让编程者思路更加清晰,避免出现不必要的错误。在做仿真时,仿真图正确也不一定就是说明一定正确。