收藏 分享(赏)

单片机原理与应用实验报告.doc

上传人:精品资料 文档编号:10163907 上传时间:2019-10-15 格式:DOC 页数:22 大小:246.31KB
下载 相关 举报
单片机原理与应用实验报告.doc_第1页
第1页 / 共22页
单片机原理与应用实验报告.doc_第2页
第2页 / 共22页
单片机原理与应用实验报告.doc_第3页
第3页 / 共22页
单片机原理与应用实验报告.doc_第4页
第4页 / 共22页
单片机原理与应用实验报告.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、专业: 计算机科学与技术学号:姓名:单片机原理实验报告实验 1 计数显示器【实验目的】熟悉 Proteus 仿真软件,掌握单片机原理图的绘图方法【实验内容】(1) 熟悉 Proteus 仿真软件,了解软件的结构组成与功能(2) 学习 ISIS 模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作(3) 学会可执行文件加载及程序仿真运行方法(4) 理解 Proteus 在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】(1) 观察 Proteus 软件的菜单、工具栏、对话框等基本结构(2) 在 Proteus 中绘制电路原理图,按照表 A.1 将元件添加到编辑环境中(3)

2、在 Proteus 中加载程序,观察仿真结果,检测电路图绘制的正确性表 A.1Category Reference ValueMicroprocessor ICs U1 80C51Miscellaneous X1 CRYSTALCapacitors C1,C2/1nF CAPCapacitors C3/22uF CAP-ELECResistors R2R8/100 RESResistors R1/1000 RESOptoelectronics LED1,LED2 7SEG-COM-CAT-GRNSwitchesunsigned char x1=0;x2=0 ; unsigned char co

3、unt=0; unsigned char idata buf10= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void delay(int time) int k,j;for(;time0;k-)for(j=500;jvoid delay(int time) int k,j;for(;timevoid delay(int time) int k;for(;time0;time-)for(k=1000;k0;k-); void init()P1=0x00;delay(100);P1=0xff; delay(100);P1=0x00;de

4、lay(100);P1=0xff;delay(100);P1=0x00;delay(100);P1=0xff;delay(100);void main()int i,j; init();while(1) unsigned char k=0x01;for(i=7;i0;i-) P1=k; k=k*2; delay(100) ;for(j=8;j0;j-) P1=k;k=k/2; delay(100) ; 【实验结果】说明程序开始后,8 只发光二极管依次从上到下闪烁,然后再从下到上闪烁。实验 4 指示灯中断控制【实验目的】掌握行列式键盘的工作原理,熟悉 C51 语言的编程与调试【实验内容】(1)

5、学习使用 Proteus 软件,掌握原理图绘图方法(2) 学习 Keil C 软件,掌握 C51 程序编写与调试方法(3) 理解行列式键盘的扫描工作原理,完成扫描程序的编写与调试(4) 实现行列式键盘扫描中断控制功能【实验步骤】(5) 在 Proteus 中绘制电路原理图,将相应的元件添加到编辑环境中(6) 在 Keil 中编写 C51 程序,并使之编译通过(7) 在 Proteus 中加载程序,观察仿真结果【实验原理图】【实验源程序】#include sbit P3_7=P37;unsigned char x1=0;x2=0 ;unsigned char count=0;unsigned c

6、har idata buf16= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71;char key_buf=0x11,0x21,0x41,0x81,0x12,0x22,0x42,0x82,0x14,0x24,0x44,0x84,0x18,0x28,0x48,0x88;void init();void key_scan();char key=0,k=0;bit int_flag;void delay(int time) int k,j;for(;time0;time-)for(k=20

7、;k0;k-)for(j=500;j0;j-);void main()init(); while(1)P2=0x0f;P0=bufk;void init()IE=0xff;TCON=0x05;int_flag=0;P2=0x0f;P0=buf0;void key_scan() interrupt 1 char i=16; char keycode=0;delay(1); while(INT0=1) return;EX0=0;keycode=P2 P2=0xf0;keycode=0x0f for(;i0;i-)if(key_bufi=keycode)k=i ; EX0=1;return;EX0=

8、1; 【实验结果】说明按下相应的 1F 按键在 LED 的显示屏中会显示相应的按键对应的数字实验 5 电子秒表显示器【实验目的】掌握中断和定时/计数器工作原理,熟悉 C51 编程与调试方法【实验内容】(1) 学习使用 Proteus 软件,掌握原理绘制图的方法(2) 学习 Keil C 软件,掌握 C51 程序编写与调试方法(3) 理解定时器的工作原理,完成定时中断程序的编写与调试(4) 深入理解定时中断的编程【实验步骤】(8) 在 Proteus 中绘制电路原理图,将相应的元件添加到编辑环境中(9) 在 Keil 中编写 C51 程序,并使之编译通过(10) 在 Proteus 中加载程序,

9、观察仿真结果【实验原理图】【实验源程序】#include unsigned char min=0,sec=0,count=0;unsigned char idata buf10= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void init(); void isr_timer0();void delay(int time) int k,j;for(;time0;time-)for(k=20;k0;k-)for(j=50;j0;j-);void main()init(); while(1) P2=0xfe; P0=bufmin/10;d

10、elay(1);P2=0xfd; P0=bufmin%10;delay(1); P2=0xfb; P0=bufsec/10;delay(1); P2=0xf7;P0=bufsec%10;delay(1); void init()TMOD=0x01;TH0=0x3c;TL0=0xb0;ET0=1;EA=1;TR0=1; P2=0xf0; P0=0xff; delay(1);void isr_timer0() interrupt 1 P1=0x0f; if(count=20)count=0;if(sec=59)P1=!P1;sec=0; if(min=59)min=0 ;elsemin=min+1

11、;elsesec=sec+1;elsecount=count+1;TH0=0x3c;TL0=0xb0;【实验结果】说明数码管的初始值为 00,每过一秒,秒计数器加一;秒计数器到 60 时清零,并从 00 重新开始,当秒计时器清 0 时,分计时器加一,由此实现数字时钟。实验 6 单片机双机通信系统设计【实验目的】掌握串行口通信工作原理,熟悉 C51 编程方法,了解 PCB 设计过程【实验内容】(1) 学习使用 Proteus 软件,掌握原理图绘图方法(2) 学习使用 Keil C 软件,掌握 C51 程序编写与调试方法(3) 理解串行口通信的工作原理,完成串行口通信程序的编写与调试(4) 学习使

12、用 ARES 模块,了解 PCB 设计方法【实验步骤】(1) 在 Proteus 中绘制电路原理图,将相应元件添加到编辑环境中(2) 在 Keil 中编写 C51 程序,并使之编译通过(3) 在 Proteus 中加载程序,观察仿真结果【实验原理图】【实验源程序】#includechar led_mod=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71;void delay(int time) int k,j;for(;time0;time-)for(k=20;k0;k-)for(j=

13、500;j0;j-);void main()char counter=0;char text;P1=0x3f;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;SCON=0x50;while(1)text=led_modcounter;SBUF=text;while(TI=0);TI=0;while(RI=0);RI=0;if(SBUF=text)P1=text;counter+;if(counter15)counter=0;delay(200);#includechar led_mod=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d

14、,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71;void delay(int time) int k,j;for(;time0;time-)for(k=20;k0;k-)for(j=500;j0;j-);void main()char counter=0;char receive;P1=0x3f;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;TR1=1;SCON=0x50;while(1)while(RI=1)RI=0;receive=SBUF;SBUF=receive;while(TI=0);TI=0;P0=receive;delay(200);【实验结果】说明左边的单片机为发送端,右边的单片机为接收端,发送端循环发送 0F 的数据,接收端实时接收数据并显示出来,从而实现通信。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报