单片机原理实验报告

更新时间:2024-03-18 08:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

桂林航天工业学院

电子工程系

单片机技术 课程实验报告

2013-----2014学年第 二 学期

专业: 班级 : 学号 : 姓名: 同组者:

指导教师: 王勇军

任务一:单片机控制单灯亮灭

一、实验目的

1.初步学会使用Keil μVision开发环境和简单程序的编辑、编译、与运行方法;

2.学习Proteus软件绘制简单电路图与仿真运行方法C51程序的初步过程 3. 掌握单片机控制单只发光二极管亮灭的原理并仿真实现

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

1、用Keil μVision仿真调试简单的C51程序; 2、用Protues软件绘制简单的电路图

3、在绘制好的电路原理图中,调入已编译好的目标代码文件“*.HEX”,可以在原理图中看到模拟实物的运行状态和过程。

四、单片机控制发光二极管亮灭实验原理图:

五、实验程序: #include void main() {

unsigned int value; value=0xfe; P0=value; }

六、实验结果及心得体会

(按步骤记录调试程序及proteus绘制原理图及仿真过程中出现的现象,在上述程序实现的基础上,如何修改程序使其他的发光二极管实现亮灭,本部分手写,写不下可写在背面)

实验成绩评定表

序号 1 4 5 6 7 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名 任务二:单片机控制流水灯

一、实验目的

1.初步掌握C51的基本语法、基本控制语句的使用,函数调用等知识,学习按任务编写基本程序

2.掌握 MCS-51 单片机的 P0、P1、P2 口的使用方法 3. 掌握实现发光二极管的移动、闪烁程序的编写方法

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

1、掌握C51程序调试和proteus软件联调的方法,学习设置二软件联调。 2、由P0口连接8只发光二极管,实现如下功能 1)让发光二极管从左至右循环轮流点亮两只灯; 2)让8只光二极管从外向内循环轮流点亮; 3)让8只光二极管从内向外循环轮流点亮;

四、实验线路:

五、实验程序: #include void delay(); void main() {

unsigned char output=0xfe; while(1) {

P0=output; delay(); output<<=1;

output|=1;

if(output==0xff) output=0xfe; } }

void delay() {

int i;

for(i=40000;i>0;i--); }

六、实验结果及心得体会

(在上述程序中标出使发光二极管左移的实现语句,按步骤记录调试程序及实验开发板中出现的现象,在上述程序实现的基础上,修改相应部分,使电路实现2)3)功能,本部分手写)

实验成绩评定表

序号 1 4 5 6 7 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名

任务三:独立按键识别

一、实验目的

1.掌握单片机 I/O 口读写方法。 2.掌握独立按键的连接方法及使用。

3. C 语言基本语句的编写,对I/O 口基本操作。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

单片机P3.0-P3.1口连接2只按键,利用以上按键,实现如下功能 1)当按钮1按下时,第1只发光二极管点亮; 2)当按钮2按下时,第8只发光二极管点亮; 3)当两按钮都按下时,8只发光二极管流水显示

四、实验线路(部分):

五、实验程序(略): 六、实验结果及心得体会

(在上述电路原理图中加入需要的按钮,修改程序实现对按钮的响应,注意对于按键的抖动如何编程,根据讲解完成带消抖功能的按键程序)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名

任务四 数码管静态显示控制

一、实验目的

1、掌握一维数组定义和调用的方法;

2、掌握数码管的原理,学习定义数码管及LED各种图形组合数组的技巧; 3、学习程序组合和函数调用方法,进一步提高编程能力

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

利用数码管,完成从0到9之内顺序循环显示效果。

四、实验线路:(可参照开发板电路)

五、实验程序: 略 六、实验结果及心得体会

(修改程序,完成从0到F之内顺序循环显示,并写出心得)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格

综合成绩: 教师签名 任务五 数码管动态显示控制

一、实验目的

1、掌握二维数组定义和调用的方法;

2、掌握数码管动态显示的原理,学会数码管动态扫描的技巧; 3、学习二维数组调用和函数调用方法,进一步提高编程能力

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

利用八位数码管,完成学号后八位的显示。

四、实验线路:

五、实验程序: 略

六、实验结果及心得体会

(修改程序,使用二维数组完成12位学号的左移显示)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名 任务六 单片机外部中断应用

一、实验目的

1、学习单片机外部中断的使用方法。

2、掌握单片机应用程序开发的软硬件结合思想。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台。 2、单片机开发板一套。

三、实验内容及要求

从单片机的外部中断端口P3.2输入一脉冲信号(利用按键产生),编程实现脉冲到来后,P1.0对应的LED灯亮灭发生变化。

四、实验线路:

五、实验程序:(略) 六、实验结果及心得体会

(根据所给电路和程序,编写利用单片机P3.3口作外部中断口,实现对LED的上述控制)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格

综合成绩: 教师签名 任务七 单片机定时/计数器中断应用

一、实验目的

1、学习单片机定时/计数器中断的使用方法。

2、掌握单片机定时/计数器工作在不同工作方式的寄存器设置。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台。 2、单片机开发板一套。

三、实验内容及要求

利用定时/计数器0,使得单片机P1.0产生一个1S的方波信号,控制P1.0的LED闪烁。(定时/计数器工作在方式1,初值自设)

四、实验线路:

五、实验程序:(略) 六、实验结果及心得体会

(根据所给电路和程序,使定时/计数器工作在方式2,实现对LED的上述控制,并写出心得体会)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名

任务八 单片机控制的电子钟

一、实验目的

1、掌握单片机应用程序开发的软硬件结合思想。 2、综合单片机动态显示和中断完成数字钟的设计。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台。 2、单片机开发板一套。

三、实验内容及要求

利用单片机开发板,综合八位数码管的动态显示和定时器中断完成数字钟的设计。

四、实验线路:

五、实验程序:(略) 六、实验结果及心得体会

(根据编程练习,优化相应例程算法,并写出实验心得)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格

综合成绩: 教师签名 任务九 单片机与上位机通信

一、实验目的

1、掌握 MCS-51 单片机的串口控制方法,掌握串口中断的原理及中断服务程序的编写。

2、学会对STC串口调试助手的应用。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台; 2、单片机开发板一套。

三、实验内容及要求

将单片机通过串口连接到STC下载软件的串口调试界面,设置串口调试界面的波特率与单片机设置相一致,当界面向单片机发送启动信号后,单片机连续向上位机发送一组数据,并在单片机上显示发送数据的个数。

四、实验线路部分:

五、实验程序: (略)

六、实验结果及心得体会

(运行老师提供的程序,观察实验现象,自己设置不同的波特率进行数据传输,实现功能。)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名

任务十 双单片机控制流水灯

一、实验目的

1、深化C51的基本语法、基本控制语句的使用,函数调用等知识,学习按任务编写基本程序

2、掌握 MCS-51 单片机的串口控制方法,掌握串口中断的原理及中断服务程序的编写

3、掌握双单片机通信的时序控制方法

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台; 2、单片机开发板一套。

三、实验内容及要求

将两个单片机开发板通过串口连接,一个单片机A连接数码管,一个单片机U2连接8只发光二极管,实现如下功能

1)U1输出数据控制U2的发光二极管流水显示。

2)U1的数码管显示流水灯循环的次数,当显示到9时数码管归零,如果U2数据发送错误,则数码管显示F,并闪烁;

四、实验线路部分: 原理图文件名 Two51conLSD

五、实验程序: 对U1编程:

#include

unsigned char sdata=0xfe; void isr_uart(); void main() {

TMOD=0X20; TH1=136; TL1=136; SCON=0Xd0; PCON=0; TR1=1;

EA=1;ES=1; SBUF=sdata; while(1) { } }

void isr_uart() interrupt 4 {

if(TI==1) {

sdata<<=1; sdata |=1;

if(sdata==0xff) sdata=0xfe; SBUF=sdata;TI=0; } else {

RI=0;P0=SBUF;P2=0; } }

对U2编程

#include

unsigned char sdata; unsigned char count=0; void isr_uart(); void main() {

TMOD=0X20; TH1=16; TL1=16; SCON=0Xd0; PCON=0; TR1=1; EA=1;ES=1; while(1); }

void isr_uart() interrupt 4 {

if(RI==1) {

RI=0;sdata=SBUF;P1=sdata; if(count++==8) {

count=0; }

SBUF=count; } else { TI=0; } }

六、实验结果及心得体会

(1、运行老师提供的电路原理图,观察实验现象,分析出现问题的原因及修改办法, 2、在原理图中加入第二个数码管,修改程序,使显示周期最大为99,实现功能。

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名 任务十一:矩阵按键识别

一、实验目的

1.掌握矩阵键盘与单片机的连接方法。 2.掌握矩阵键盘的编程及应用。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

单片机P3口连接4*4矩阵按键,扫描以上按键,实现如下功能

当按下按键时,最左边的两只数码管显示相应键值,最右边数码管显示键号;

四、实验线路(部分):

五、实验程序(略): 六、实验结果及心得体会

(根据讲解,利用定时器实现对矩阵键盘的定时扫描检测,并完成实验要求功能)

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格

综合成绩: 教师签名 任务十二 用单片机最小系统实现简单交通灯控制

一、实验目的

1、深化C51的基本语法、基本控制语句的使用语句知识,读懂程序

2、进一步掌握keilC和proteus联调技巧,并能解决试验中遇到的问题。

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台;单片机开发板一套。

三、实验内容及要求

在单片机最小系统下,由P2、P0口连接12只发光二极管,实现交通灯功能 1)每个路口分别接红、黄、绿三个等代表路口控制灯; 2)初始状态为四个路口红灯全亮之后,东西路口绿灯亮,南北红灯亮;延时20s, 3)东西路口绿灯闪烁3次后熄灭,黄灯闪亮3秒(每秒闪烁一次)后,东西路口红灯亮,在切换到南北路口的绿灯亮;延时20s;

4)南北路口绿灯闪烁3次后熄灭,黄灯 亮3秒后,南北路口的红灯亮,再切换到东西路口绿灯亮;延时20s;重复以上过程

四、实验线路:

五、实验程序: #include unsigned

char time=20*20,timey=10,county=6; unsigned char allr=0x36; unsigned char ewg_snr=0x1e; unsigned char ewy=0x2e;

unsigned char sng_ewr=0x33; unsigned char sny=0x35;

sbit P01=P0^1; sbit P04=P0^4; sbit P21=P2^1; sbit P24=P2^4; bit ewg=1; void isr_time0(); main() {

unsigned int i; P0=P2=allr;

for(i=50000;i>0;i--); P0=P2=ewg_snr;

TMOD=0x11; TL0=-50000;TH0=-50000>>8; TL1=-50000;TH1=-50000>>8; EA=1;ET0=1;ET1=1; TR0=1; while(1); }

void isr_time0() interrupt 1 {

TL0=-50000;TH0=-50000>>8; time--; if(time==0) {

TR0=0;TR1=1; time=400; if(ewg) {

P0=ewy;P2=ewy; } else {

P0=sny;P2=sny; } } }

void isr_time1() interrupt 3 {

TL1=-50000;TH1=-50000>>8; timey--; if(timey==0) {

timey=10; county--; if(county) {

if(ewg)

{ P04= ~P04;P24=~P24;} else

{ P01= ~P01;P21=~P21;} } else {

county=6; if(ewg)

{ P0=sng_ewr;P2=sng_ewr;} else

{ P0=ewg_snr;P2=ewg_snr;} TR1=0;TR0=1; ewg = ~ewg; } } }

六、实验结果及心得体会

(1)在程序上标注出各路口灯亮的控制语句的注释,并将程序逻辑用流程图的形式表示出来;

(2)试编写一个程序,将东西路口的通行时间延长到40秒,其余不变;

(3)编写一个主程序,实现每天早上7:30到8:30采用此通行次序,周末和其他时间都采用原程序的通行次序。(回答)考虑电路可实现性,应增加硬件还是全部用软件的方法实现?如果增加硬件,拟采用什么元件来实现对时间的计算?

实验成绩评定表 序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名

任务十三 单片机控制模拟电压显示(选作)

一、实验目的

1、深化C51的基本语法、基本控制语句的使用,函数调用等知识,学习按任务编写基本程序

2、学习电压值的显示技巧

3、proteus仿真时对单片机ALE信号的设置方法

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台。

三、实验内容及要求

参考案例20:用软件延迟等待方式采集IN0通道电压,并将电压值由数码管显示出来

四、实验线路:

五、实验程序: 六、实验结果及心得体会

1、按步骤记录调试程序及proteus绘制原理图及仿真,改变滑动变阻器的位置,观察显示器是否变化,确定改电路的测试量程2、分析程序关于电压值显示部分的原理,并说明编程时应注意什么问题。

实验成绩评定表

序号 1 2 3 4 5 实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格

综合成绩: 教师签名 任务十四 单片机控制锯齿波输出(选作)

一、实验目的

1、掌握proteus仿真中设备的调用

2、理解输出波形的幅度、周期原理,学习按编程输出不同频率,不同幅度的模拟信号

二、实验仪器

1、安装Keil μVision及Protues软件的计算机一台。

三、实验内容及要求

用如图所示电路输出一个锯齿波。

计算该锯齿波的输出幅度和周期,说明理由,并尝试修改程序使输出锯齿波的频率和幅度均为原来的一半

四、实验线路:

五、实验程序: 六、实验结果及心得体会

实验成绩评定表

序号 1 2 3 4 5

实验名称: 实验方法: □有创新 □有改进 □有缺陷 □合理 实验结果: □一次成功 □改进后成功 □ 不成功 文字表述: □简明通顺 □重复冗长 □没有实质内容 实验态度: □严谨认真 □循规蹈矩 □ 敷衍应付 课堂评价: □优秀 □良好 □及格 □不及格 综合成绩: 教师签名

本文来源:https://www.bwwdw.com/article/g7f8.html

Top