单片机原理实验实验报告册 - 范文中心

单片机原理实验实验报告册

11/23

电子科技大学成都学院

实验报告册

课程名称:

姓 名:

学 号:

院 系:

专 业:

教 师:

实验一LED 流水灯

一、实验目的:

1. 掌握并口的使用

2. 掌握移位指令的使用

二、实验原理和内容:

实验原理:

1. 共阳LED

(1)位移指令 左移>

(2)循环移位指令 _crol_(A,B), _cror_(A,B)函数,在头文件intrins.h 中

实验内容:实现LED 灯上下流水显示效果

三、实验步骤:

1. 创建工程;2. 编写程序; 3. 调试程序 ; 4. 下载验证

四、实验数据和结果

程序功能描述: 实现LED 的流水灯显示,即通过单片机P0口控制8个LED

灯循环点亮,循环方式为:左循环依次点亮一次,随后右循环

依次点亮一次。

本例中是调用的 intrins.h 中的函数实现的循环移位。

#include

#include

#define uchar unsigned char

#define uint unsigned int

//****功能 : 延时, 延时时间为

10ms * del

void Delay(uint del)

{

}

//****功能 : 实现灯的闪烁

void Main(void)

{

}

五、实验总结:

通过本实验我学会了共阳LED 的电路原理,深入了解共阳LED 的工作原来,

完成一系列的调试工作。

uint i,j; for(i=0; i

一、实验目的:

1. 掌握LED 数码管显示

2. 掌握数组使用

二、实验原理和内容:

实验原理:

1.LED 8段显示器

2. 共阴极数码管电路图

(1)LED 静态显示方式

静态显示就是当显示器显示某个字符时,相应的段(发光二极管) 恒定地导通或截

止,直到显示另一个字符为止。静态显示器的亮度较高,

这种显示方式编程容易,

管理也较简单,但占用I/O口线资源较多。在显示位数较多的情况下,一般都

采用动态显示方式。

(2)LED 动态显示方式

在多位LED 显示时,将所有位的段选线并联在一起,由一个8位I/O口控制。

而共阴(或共阳) 极公共端K分别由相应的I/O线控制,实现各位的分时选通。

因人眼的视觉暂留时间为0.1 s(100 ms) ,所以显示间隔要受到此条件的约束。

实验内容:用8位LED 数码管显示自己学号

三、 实验步骤:

1. 创建工程;2. 编写程序; 3. 调试程序 ; 4. 下载验证

四、实验数据和结果:

程序功能描述: 8位数码管分别显示40710324

#include

#define uchar unsigned char

#define uint unsigned int

uchar code table[10] = {0x66,0x3f,0x07,0x06,0x3f,0x4f,0x5b,0x66};

uchar code LED_W[8] = {0,1,2,3,4,5,6,7};

//**** 功能 : 延时子程序,延时时间为 1ms * x

void Delay(uint i)

{

}

//**** 功能 : 数码管的显示

void Main(void)

{

while(1) { P0 = table[1]; // i 值的 个位数 //点亮第一位数码管

uchar x,j; for(j=0;j

} } Delay(3); P0 = table[2]; // i 值的 个位数 //点亮第一位数码管 P2 = LED_W[7]; Delay(3);

五、实验总结:

掌握数据的运算与使用,掌握LED 的数码显示。

实验三 定时器/计数器使用

一、实验目的:

1. 掌握定时函数使用

2. 学习配置工作模式寄存器 TMOD 、控制器寄存器 TCON

二、实验原理和内容:

实验原理:

1.MCS-51单片机 定时/计数器的工作原理

2. 模式控制寄存器TMOD

3. 控制寄存器TCON

实验内容:根据课堂要求内容进行实验

三、实验步骤:

1. 创建工程;2. 编写程序; 3. 调试程序 ; 4. 下载验证

四、实验数据和结果:

#include

#define uchar unsigned char

#define uint unsigned int

uchar Count = 0;

uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //**** 功能 : 定时器的初始化,11.0592MZ 晶振,50ms

void Time0_Init()

{

} TMOD = 0x01; TH0 = 0x4c; TL0 = 0x00; IE = 0x82; TR0 = 1;

//**** 功能 : 定时器中断,中断中实现 Count 加一

void Time0_Int() interrupt 1

{

}

void main()

{

uchar i = 0;

TH0 = 0x4c; TL0 = 0x00; Count++; //长度加1

} Time0_Init(); while(1) { } P0 = table[i % 10]; //取 i 的个位 while(1) { } if(Count == 20) //当Count 为 20 时,i 自加一次,20 * 50MS = 1S { } Count = 0; i++; break;

五、实验总结:

掌握了计时器和定时器的使用,深入了解其原理,掌握定时函数使用,学习配置工作模式寄存器 TMOD 、控制器寄存器 TCON 。

实验四: 点阵LED 显示

一、实验目的:

1. 掌握8*8-LED点阵的结构原理

2. 掌握8*8-LED点阵的使用

二、实验原理和内容:

实验原理:

1. 8X8点阵LED 等效电路

8 X 8 点阵LED 工作原理说明 :8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置0电平,某一行置1电平,则相应的二极管就亮;一根竖柱:对应的列置0,而行则采用扫描的方法来实现。一根横柱:对应的行置1,而列则采用扫描的方法来实现。 LP00~ LP07图1-8,P2.0~P2.7图A-H 。

实验内容:显示心形和自己姓名拼音首字母

三、实验步骤:

1. 创建工程;2. 编写程序; 3. 调试程序 ; 4. 下载验证

四、实验数据和结果:

程序功能描述:需要连接上J16这个跳线帽。这个代码在点阵上显示相应的图形。 显示心形和自己的姓名拼音首字母。

#include

#include

#define uint unsigned int

#define uchar unsigned char

//心形显示

unsigned char code tabP0[]={0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00};

unsigned char code tabP2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};

unsigned char code tabP0[]={ };

unsigned char code tabP2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE}; //**** 功能 : 延时子程序,延时时间为 1ms * x

void Delay_1ms(uchar i) //1ms延时

{

uchar x,j;

for(j=0;j

for(x=0;x

}

void main()

{

int i;

while(1)

{

for(i=0;i

{

P0=0;

P2=tabP2[i];

P0=tabP0[i];

Delay_1ms(2);

}

}

}

五、实验总结:

掌握8*8-LED点阵的结构原理

掌握8*8-LED点阵的使用

实验五:矩阵按键

一、实验目的:

1. 掌握矩阵键盘原理

2. 矩阵式键盘的按键识别方法

二、实验原理和内容:

实验原理:

在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。矩阵式键盘的按键识别方法:扫描法,线反法

扫描法:又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。

(1)判断键盘中有无键按下: 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

(2) 判断闭合键所在的位置: 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 线反法:先找按下的按键在那一行(或列),然后在找在那一列(或行),从而可以找到按下按键的具体位置。

2. 实验内容:编写按键扫描程序,识别按键。

三、实验步骤:

1. 创建工程;2. 编写程序; 3. 调试程序 ; 4. 下载验证

四、实验数据和结果:

程序实现功能:在一位数码管上显示对应的4*4键盘按下后的数值,以十六进制

数来表示。#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit dula=P2^6;

sbit wela=P2^7;

uchar code table[]={0xc0,0xf9,0xa4,0xb0, //数码显示依次为:0、1、2、3

0x99,0x92,0x82,0xf8, // 4、5、6、7

0x80,0x90,0x88,0x83, // 8、9、a 、b

0xc6,0xa1,0x86,0x8e,0xff / c 、d 、e 、f

};

uchar num,temp;

void delay(uint z) //延时子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

uchar keyscan() //键盘扫描程序,返回uchar 型参数

{

uchar i;

for(i=0;i

{

P3=_crol_(0xfe,i);

temp=P3;

temp=temp&0xf0;

while(temp!=0xf0)

{

/

delay(5); //延时消抖

temp=P3; //第二次确认该键按下

temp=temp&0xf0;

while(temp!=0xf0)

{

//再次确认该键按下

//等待按键释放

temp=P3; switch(temp) { case 0xee:num=1; break; case 0xde:num=2; break; case 0xbe:num=3; break; case 0x7e:num=4; break; case 0xed:num=5; break; case 0xdd:num=6; break; case 0xbd:num=7; break; case 0x7d:num=8; break; case 0xeb:num=9; break; case 0xdb:num=10;break; case 0xbb:num=11;break; case 0x7b:num=12;break; case 0xe7:num=13;break; case 0xd7:num=14;break; case 0xb7:num=15;break; case 0x77:num=16;break; } while(temp!=0xf0) { temp=P3;

temp=temp&0xf0; }

}

}

}

return num;

}

void display(uchar aa) //显示函数

{

dula=1;

P0=table[aa-1];

dula=0; //显示完成后立即清空缓存

}

void main()

{

num=17;

dula=1;

P0=0;

dula=0;

wela=1;

P0=0x20;

wela=0;

while(1)

{ display(keyscan())}

}

五、实验总结:

通过本次实验,我们学习到了单片机系统中的4*4矩阵键盘的原理


相关内容

  • 微处理器与应用实验报告
    微处理器原理与应用实验日志 微处理器原理与应用实验日志一 指导教师 实验时间: 学院 专业 班级 学号 姓名 实验室 实验题目: 熟悉并使用传送类指令 实验目的: 1. 熟悉并掌握Keil C51 的基本用法: 2. 掌握MCS-51 传送 ...
  • 继电器控制实验
    电气工程学院 课程设计说明书 设计题目: 继电器控制实验 系 别: 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 电气工程学院<课程设计>任务书 课程名称: 单片机原理及应用课程设计 基层教学单位: 自动化仪表系 指 ...
  • 简易电子琴课程设计
    课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 信息工程学院 题 目: 简易电子琴电路的设计仿真与实现 初始条件: 可选元件:集成运算放大器LM324.电阻.电位器.电容若干,直流电源,或自备元器件. 可用仪器:示波器,万用 ...
  • 直流电机控制
    微机应用课程设计报告 题 目: 基于单片机的直流电动机控制器设计 专 业: 班 级: 姓 名: 学 号: 地 点: 时 间:指导老师: 摘要 电动机作为最主要的机电能量转换装置,其应用范围已遍及国民经济的各个领域和人们的日常生活.无论是在工 ...
  • 89c51抢答器制作
    郑州科技学院 本科课程设计论文 题 目 专 业 姓 名 学 号 指导老师 郑州科技学院信息工程学院 二〇一四年 摘要 ............................................................. ...
  • 交通灯课程设计内容
    硬件大型实验周设计说明书11.1引言设计背景 自从 1886 两个德国人发明了第一辆汽车交通灯改变了交通路况,交通问题也渐渐被人们所重视.从英国伦敦街头的第一个以燃煤气为光源的红,蓝两色的机械 扳手式信号灯,到现在以电为光源的红黄绿三色交通 ...
  • 霍尔式液位传感器的设计与实现
    霍尔式液位传感器的设计与实现 淮文博,高宗海,李大成 (西安理工大学高等技术学院机电系,陕西西安710082) 要:针对干簧管液位传感器的诸多缺点,构思了一种利用开关式霍尔片作为传感元件的液 位测量传感器:霍尔式液位传感器的测量原理.测量电 ...
  • 频率计数器
    一.实验目的 本应用系统实验的目的是通过在"单片机原理及应用"课堂上学习的知识,以及查阅资料,培养一种自学的能力.并且引导一种创新的思维,把学到的知识应用到日常生活当中.在设计的过程中,不断的学习,思考和同学间的相互讨论 ...
  • 微电子科学与工程专业
    微电子科学与工程专业一.培养目标本专业培养德.智.体等方面全面发展,具备微电子科学与工程专业扎实的自然科学基础.系统的专业 知识和较强的实验技能与工程实践能力,能在微电子科学技术领域从事研究.开发.制造和管理等方面工作 的专门人才.二.专业 ...
  • 单片机 四路抢答器
    课程设计说明书 (2009/2010学年第二学期) 课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 : 单片机应用课程设计 四路抢答器 电气2班 韩昱 苗敬利 两周(10.6.28-10.07.09 ...