单片机原理与应用实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;