单片机实训报告范本(WORD档).doc_第1页
单片机实训报告范本(WORD档).doc_第2页
单片机实训报告范本(WORD档).doc_第3页
单片机实训报告范本(WORD档).doc_第4页
单片机实训报告范本(WORD档).doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实训报告 题 目 : 单片机原理与应用 学 院 : 电子信息工程学院专 业 : 光电子技术学生姓名 : 学 号 : 指导老师 : 日 期 : 2013年5月10日1、 硬件系统: 实验板的系统组成: 1.8路跑马灯 2.动态扫描共阳型数码管 3.4x4矩阵键盘 4.4路独立键盘 5.蜂鸣器 6.温度传感器DS18B20 7.I2C通信方式的EEPROM芯片24C022、 开发软件KEILC、下载软件:1、 Keil C u Vision2使用说明(1)打开u Vision2 (2)新建工程:菜单【Project】_【New Project】 选择工程存放路径,并输入工程文件名,然后点“保存”。2、进入器件选择界面 数列表框内选择“Atmel”_”AT89s52”,然后点“确定”完成器件选择。 (1)编辑源程序:新建文件:菜单【File】_【New】。然后输入代码存入硬盘。C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。(2)加入源文件到工程中:在左边浮动窗口【file】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group “Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。(1)设置编译选项:先选中左边浮动窗口【File】选项卡里“Target 1”树节点,然后选菜单【Project】_【Options for Target“Target 1”】。(2)在弹出的“Options for Target “Target 1”对话框中选择【output】选项卡,勾选“Greate HEX File”,然后按“确定”完成设置。(3)按“F7”开始编译,编译成功后会在工程文件夹内生成.hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。2、下载软件简介软件界面如上图所示。i. 连接好电源线与串口线,确定此单片机开发板上的单片机的型号(图中为C51)。ii. 检查电源板上的电源灯是否亮起,如果没亮则检查USB线,如果亮了就关掉电源再做其他步骤。iii. 启动软件并选择好STC单片机型号(STC89C51RC)和计算机串口号。iv. 点击Open File选择编译好的HEX文件。v. 然后可以直接点击下载vi. 点击下载时,按下“冷启动”按键,使单片机上电。vii. 如果正常会看到下载程序进度条闪过的过程。3、 具体实验: 1.按键控制P1口发光二极管显示 实验原理图: 实验硬件电路:(1)8个发光二极管单灯右移再左移点亮 C语言源程序:12 #include void delay(unsigned char i);void main() unsigned char j,k;while(1)k=0x7f;for(j=0;j=1;k=0xfe;for(j=0;j8;j+)P1=k;delay(200); k=1; void delay(unsigned char j)unsigned char m,n;for(m=0;mj;m+)for(n=0;n255;n+);(2)8个发光二极管间隔闪烁 C语言源程序:#includeunsigned char code numCode=0x55,0xaa;void main() unsigned char i=0;unsigned int t;P1=0xff;while(1)P1=numCodei;i=(i+1)%2;for(t=0;t20000000000;t+);(3)8个发光二极管呈伸缩状显示 C语言源程序:#include#define uint unsigned intunsigned char code num1=0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00;unsigned char code num2=0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff;void delay( uint ms );void main()unsigned char i=0,j=0; while(1) for(i=0;i9;i+) P1=num1i; delay(250); for(j=0;j9;j+) P1=num2j; delay(250) ; void delay(unsigned char j)unsigned char m,n;for(m=0;mj;m+)for(n=0;n255;n+);2、按键控制实验硬件电路:按下S17,P1口灯闪5次;按下S18,P1口灯左移;按下S19,P1口灯右移;按下S20,P1口灯两边扩散。C语言源程序:#include void delay(unsigned int i);unsigned char code numCode=0xff,0xe7,0xc3,0x81,0x00;unsigned char i=0;sbit S17=P32;sbit S18=P33;sbit S19=P34;sbit S20=P35;void main()unsigned char j;while(1)P1=0xff;if(S17=0)delay(5);if(S17=0)P1=0x00;for(j=0;j5;j+)delay(1000);P1=P1;if(S18=0)delay(5);if(S18=0)for(i=0;i8;i+) P1=1;delay(500); if(S19=0)delay(5);if(S19=0)for(i=0;i=1; delay(500); if(S20=0)delay(5);if(S20=0)while(1)P1=numCodei;delay(200);i=(i+1)%5;void delay(unsigned char j)unsigned char m,n;for(m=0;mj;m+)for(n=0;n255;n+);3、矩阵按键 实验硬件电路:矩阵按键显示116发光二极管C语言源程序:#include#include#define uchar unsigned char#define uint unsigned int#define sm_data P0sbit c0=P20;sbit c1=P21;sbit c2=P22;sbit c3=P23;sbit c4=P24;sbit c5=P25;sbit c6=P26;sbit c7=P27;void delay1(uchar time) ;uchar jianpanzhi();void display(uchar b);void main()uchar x;while(1)x=jianpanzhi();delay1(50);display(x) ; uchar jianpanzhi()uint i,a;c4=0;c5=0;c6=0;c7=0;if(P2!=0x0f) delay1(50) ; if(P2!=0x0f) for(i=0;i4;i+) switch(i) case 0: c4=0;c5=1;c6=1;c7=1; break; case 1: c4=1;c5=0;c6=1;c7=1; break; case 2: c4=1;c5=1;c6=0;c7=1; break; case 3: c4=1;c5=1;c6=1;c7=0; break; default:break; if(!c0) a=i+1;break; if(!c1) a=i+5;break; if(!c2) a=i+9;break; if(!c3) a=i+13;break; return a; void display(uchar b ) switch(b) case 1:sm_data=0xc0;break; case 2:sm_data=0xf9;break; case 3:sm_data=0xa4;break; case 4:sm_data=0xb0;break; case 5:sm_data=0x99;break; case 6:sm_data=0x92;break; case 7:sm_data=0x82;break; case 8:sm_data=0xf8;break; case 9:sm_data=0x80;break; case 10:sm_data=0x98;break; case 11:sm_data=0x88;break; case 12:sm_data=0x83;break; case 13:sm_data=0xc6;break; case 14:sm_data=0xa1;break; case 15:sm_data=0x86;break; case 16:sm_data=0x8e;break; default:sm_data=0xff;break; void delay1(uchar time) while(time-) _nop_(); 4、数码管动态显示 实验硬件电路:(1) 四位数码管同时显示14 C语言源程序:#include #include #define uchar unsigned char#define uint unsigned int#define sm_data P0#define sm_dp P2code uint zk10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delay(uint n);void main() uchar i,k;while(1)i=0x80;for(k=1;k=1;void delay(uint n)uchar i;while(n-)for(i=0;i125;i+);(2)60秒倒计时 C语言源程序:#include#define uchar unsigned char#define uint unsigned intvoid delay(uint ms);void delay1s();uchar zk10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void main() uint j; j=59; while(1) uint i,a,b; a=j/10; b=j%10; for(i=0;i100;i+) P0=zka;P2=0x7f;delay(5);P0=zkb;P2=0xbf ; delay(5); j-; if(j=0) delay(3);j=59;void delay(uint ms) uint i; while(ms-) for(i=0;i120;i+);5、蜂鸣器发声 实验硬件电路:C语言源程序:#include#include#define uchar unsigned char#define uint unsigned intsbit P3_6=P36;void delay1(uint time);void f1khz(uint x);void f5khz(uint y);void main()while(1)f1khz(4000); f5khz(2000); void f1khz(uint x) uint i; for(i=0;ix;i+) P3_6=0; delay1(41); P3_6=1; delay1(42); void f5khz(uint y) uint i; for(i=0;iy;i+) P3_6=0; delay1(8); P3_6=1; delay1(8); void delay1 (uint time) while(time-) _nop_();6、中断控制 实验硬件电路:C语言源程序:#include#define led P1#define unit unsigned int#define uchar unsigned charvoid delay();void right();void main()led=0xff;EA=1;EX0=1;IT0=1; while(1) right(); void int0(void) interrupt 0 unsigned char saveled,i; saveled=led;led=0xff; for(i=0;i5;i+) led=led;delay(); led=saveled; void right() unsigned char i,k; k=0x80; for(i=0;i=1;void delay()unsigned int m,n;for(m=0;m250;m+) for(n=0;n500;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论