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

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

单片机原理实验报告

专业:计算机科学与技术

学号:

姓名:

实验1 计数显示器

【实验目的】

熟悉Proteus仿真软件,掌握单片机原理图的绘图方法

【实验内容】

(1)熟悉Proteus仿真软件,了解软件的结构组成与功能

(2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作

(3)学会可执行文件加载及程序仿真运行方法

(4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】

(1)观察Proteus软件的菜单、工具栏、对话框等基本结构

(2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中

(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性

【实验原理图】

【实验源程序】

#include

sbit P3_7=P3^7;

unsigned char x1=0;x2=0;

unsigned char count=0;

unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time)

{

int k,j;

for(;time<0;time--)

for(k=200;k>0;k--)

for(j=500;j<0;j--);

}

void init()

{

P0=buf[x1];

delay(10);

P2=buf[x2];

delay(10);

}

void main()

{

init();

while(1)

{

x1=count/10;

x2=count%10;

P0=buf[x1];

delay(10);

P2=buf[x2];

delay(10);

if(P3_7==0)//

{

delay(10);

while(!P3_7);

if(count==99)

count=0;

else

count=count +1; }

}

}

【实验结果】

说明

该计数器的功能是,按下按下K1后,数码管LED1和LED2会显示出按键的按下次数,LED1表示个位,LED2表示十位。当计数器达到99后再次按压K1按键,显示值从0重新开始。

实验2 指示灯开关控制器

【实验目的】

学习汇编语言的编程与调试方法

【实验内容】

(1)熟悉Proteus仿真软件,了解软件的结构组成与功能

(2)学习汇编语言的程序设计方法

(3)学会在ISIS模块中进行汇编程序录入、编译和调试

(4)理解单片机程序控制原理,实现指示灯/开关控制器的预期功能【实验步骤】

(1)在ISIS中绘制电路原理图,并把对应元件添加到编辑环境中(2)在ISIS中编写汇编语言程序

(3)利用ISIS的汇编调试功能检查程序的语法和逻辑错误

(4)观察仿真结果,检测程序与电路的正确性

【实验原理图】

【实验源程序】

#include

void delay(int time)

{

int k,j;

for(;time<0;time--) {

for(k=100;k<0;j--) for(j=500;j<0;j--); }

}

void init()

{

P1=0x00;

delay(20);

P1=0xff;

delay(20);

P1=0x00;

delay(20);

P1=0xff;

delay(20);

P1=0x00;

delay(20);

P1=0xff;

delay(20);

}

void main()

{

init();

P1=0x00;

delay(20);

P1=0xff;

delay(20);

while(1)

{

P1=P2 ;

}

}

【实验结果】

说明

点击运行后,8个发光二极管一起闪烁3次。然后根据开关K2K4K6K8控制对应发光二极管的亮灯状态,当按下K1K3K5K7中的其中一个是,该开关对应的二极管亮,除K2以外,K2不亮的原因我也不明白,代码没有问题,电路图也没有问题,我觉得是BUG。

实验3 指示灯循环控制

【实验目的】

熟悉uVision3编译软件,掌握C51编程与调试方法

【实验内容】

(1)熟悉uVision3编译软件,了解软件的结构组成与功能

(2)学习C51语言的程序设计方法

(3)学会在uVision3中进行C51程序录入、编译和调试

(4)理解Proteus与Keil联合的仿真原理,实现LED指示灯循环控制功能【实验步骤】

(1)在ISIS中绘制电路原理图,将相应元件添加到编辑环境中

(2)在uVision3中编写C51程序

(3)利用uVision3的编译调试功能检查程序的语法和逻辑错误

(4)下载可执行文件,在Proteus中观察仿真结果,检验程序的正确性【实验原理图】

【实验源程序】

#include

void delay(int time)

{

int k;

相关文档
最新文档