单片机实验报告 (2)

  • 格式:doc
  • 大小:937.50 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验课程:单片机原理及应用

班级:12自动化2班

学号:

姓名:

教师:张玲

成绩:

实验日期:年月日实验名称:实验1——计数显示器

一、实验目的:

学习Proteus 软件的使用,掌握单片机原理图的绘图方法。

二、实验内容:

1、绘制“计数显示器”电路原理图;

2、利用提供的hex文件验证此电路的运行效果。

三、实验要求:

提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图;3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验1体会等。

参考电路原理图如下:

元件类别电路符号元件名称

Microprocessor ICs “U1”80C51

Miscellaneous “X1”/12MHz CRYSTAL

Capacitors “C1”~“C2”/1nF CAP

Capacitors “C3”/22μF CAP-ELEC

Resistors Packs “RP1”/7-100ΩRESPACK-7

Resistors “R1”/100ΩRES

Optoelectronics “LED1”~“LED2”7SEG-COM-CAT-GRN

Switches & Relays “BUT”BUTTON

1、编程思路及C51源程序:

2、电路原理图:

3、仿真运行效果展示:

4、实验小结:

熟悉Proteus软件,了解软件的结构组成与功能;学习ISIS模块的使用方法,学会设置图纸、选元件、线画总线、修改属性等基本操作;学会可执行文件加载及程序仿法;理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制。

实验名称:实验2——LED指示灯循环控制

一、实验目的

熟悉μVision3编译软件、掌握C51编程与调试方法。

二、实验内容

1、按照教材P243的图A.34,绘制实验二电路原理图;

2、编写C51程序,实现8个LED灯依次点亮的功能:P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;

3、观察仿真结果,完成实验报告。

三、实验要求

1、采用两种加载并运行可执行文件的方法,即proteus独立运行和proteus + Keil联合运行,体会其中的差异和意义;

2、练习采用单步、断点以及监视窗等手段进行程序调试的方法;

3、观察仿真结果,完成实验报告:绘制的电路原理图、编程思路分析及C51源程序、调试过程简述,仿真运行效果以及实验小结。

1、电路原理图:

2、编程思路及C51源程序:

3、仿真运行效果:

4、实验小结:

通过本次实验我熟悉uVision3编译软件了解软件的结构组成与功能学习

C51语言的程序设计方法)学会在uVision3中进行C51程序录入、编译、和调试理解Proteus与Keil联合的仿真原理实现LED指示灯循环控制功能。

更好的将C语言和C51语言联系在了一起)学到的知识能准确的利用了出来。实验名称:实验3——指示灯和数码管的中断控制

一、实验目的

掌握外部中断的工作原理,学会中断程序设计。

二、实验内容

1、按照教材帕图A.53,绘制实验四电路原理图;

2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级;

3、编写C51程序实现如下功能:开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2 →LED1从0开始循环显示0~F字符。

4、观察仿真结果,完成实验报告。

三、实验要求

提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。

1、电路原理图:

2、外部中断工作原理阐述:

持续按下K1则D1将“亮→灭→亮→灭→…→亮→灭如此循环,表明实现了K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0~F间的数码管加一计数显示。

3、编程思路及C51源程序:

4、仿真运行效果:

5、实验小结:

通过实验对Protues有了更多的了解,同时了解到中断系统在实际中的更好应用。经过编程操作起来更加熟练能很快的完成绘图,编程时也得心应手,能熟练的运用软件找出自己所编程中的语法问题及其他问题,并以改正。

实验名称:实验4——电子秒表显示器

一、实验目的

掌握定时/计数器的中断法工作原理,熟悉C51编程与调试方法

二、实验要求:

1、实验电路原理图如教材P260 A.65图所示。程序开始时显示“00”;当1s产生时,秒计数加1;秒计数到59后,自动从“00”开始。

2、采用12MHz晶振频率,T0定时方式1、50ms定时中断法编程(1s需要经过20软循环)(流程图和参考程序模版如下所示)。

//定时中断方式实现的电子秒表

(51头文件)

(定义无符号字符型变量t——中断次数计数器,并赋初值0

(定义无符号字符型变量second——秒计数器,并赋初值0

(定义位于ROM区的无符号字符型数组table——显示字模)

timer0() (中断函数关键词){

(关闭T0)

(初值重装载0x3cb0)

(中断次数计数器增1)

if(t==20){ //若中断20次,相当于1秒

t=0; //中断次数计数器清零

second++; //秒计数器清零

}

(若秒计数器值达到60,清零)

(P0和P2口分别输出变量second的显示值)

(启动T0)

}

main(){

P0=table[second/10]; //P0和P2口分别输出显示值

P2=table[second%10];

(定义T0定时方式1——TMOD)

(50ms溢出初值0x3cb0加载——TH0和TL0)

(中断初始化——ET0,EA)

(启动T0)

(死循环)