单片机实验报告
单片机技术
实验项目名称
五、矩阵键盘改变数码管显示
开课系(部)及实验室
实验日期
学生姓名
学号
班级
指导教师
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
(按步骤记录调试程序过程中出现的现象,调试方法,修改程序的方法)
课程名称
单片机技术
实验项目名称
六、单片机外部中断应用
开课系(部)及实验室
实验日期
学生姓名
学号
班级
指导教师
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
while (--i)
{
j=250;
while(--j);
}
}
void main(void)
{
while(1)
{
P1 = 0x0F;
delay(1000);
P1 = 0xF0;
delay(1000);
if(P2 = 0xff)
{
P1 = 0x0F;
P3 = 0xF0;
}
else
{
P1 = 0xFF;
case 0xDE : keytemp = 9;break;
case 0xBE : keytemp = 8;break;
case 0x7E : keytemp = 7;break;
default : keytemp = 16; break; //无摁键反映*/
}
return keytemp;
}
六、实验结果及心得体会
//函数功能:摁键专用延时函数
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:
//*******************************************
void KeyDelay20ms( void )
{
uint uitime = 2000;
while (--uitime);
(按步骤记录调试程序过程中出现的现象,调试方法,修改程序的方法)
课程名称
单片机技术
实验项目名称
四、数码管动态显示
开课系(部)及实验室
实验日期
学生姓名
学号
班级
指导教师
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
1 2 3 12 7B BB DB EB
0 15 14 13 77 B7 D7 E7
四、实验线路
五、实验程序
#include "keyboard.h"
//*******************************************
//函数名称: void Delay20ms( void )
1)让发光二极管从左至右循环轮流点亮两只灯;
2)让8只光二极管从外向内循环轮流点亮;
3)让8只光二极管从内向外循环轮流点亮;
四、实验线路
图1实验线路图
五、实验程序
#include<reg52.h>
void delay(unsigned int i)
{
unsigned char j;
while (--i)
{
j=250;
while(--j);
}
}
void main(void)
{
unsigned char output = 0xfe;
while(1)
{
P1 = output ;
output = output << 1;
delay(1000);
output |= 1;
if(output == 0xff)
output = 0xfe;
{
uctmp1 = KeyScanIO; //第六步:扫描在哪一行,存于低四位
KeyScanIO = 0xf0;
uctmp2 = KeyScanIO; //第七步:扫描在哪一列,存于高五位
while ((KeyScanIO & 0xf0) != 0xf0);//第八步:等待按键释放
return (uctmp1 | uctmp2); //第九步:合并行列位置,并返回
KeyScanIO = 0x0f;//第二步:判断在哪一行
if ((KeyScanIO & 0x0f) != 0x0f) //第三步:为真时说明有摁键反应,判断第一次
{
KeyDelay20ms(); //第四步:延时20ms
if ((KeyScanIO & 0x0f) != 0x0f)//第五步:为真时真的有摁键反应,判断第二次
}
//*******************************************
//函数名称: uchar ScanKeyRead( void )
//函数功能:扫描键盘若有摁键有反应就返回键值
//形式参数:无
//行参说明:无
//返回参数:键值
//使用说明:
//键值:
//7E BE DE EE
P3 = 0xFF;
}
}
}
六、实验结果及心得体会
(按步骤记录调使其他的发光二极管实现亮灭,本部分手写,写不下可写在背面)
课程名称
单片机技术
实验项目名称
二、单片机控制流水灯
开课系(部)及实验室
实验日期
2015年3月31日
学生姓名
学号
班级
指导教师
三、实验内容及要求
单片机P3.0-P3.3口连接4只按键,利用以上按键,实现如下功能
1、动态改变数码管显示值
2、使用按键输入改变数码管显示的数字
3、设计按键输入与显示的交互控制(发挥)
四、实验线路
5、实验程序
六、实验结果及心得体会
(按步骤记录调试程序过程中出现的现象,调试方法,修改程序的方法)
课程名称
三、实验原理
1、用KeilμVision编辑、编译简单的C51程序;
2、将编译好的的目标代码文件“*.HEX”,使用下载软件(STC_ISP)下载到开发板。
四、单片机控制发光二极管亮灭实验原理图:
五、实验程序:
#include<reg52.h>
void delay(unsigned int i)
{
unsigned char j;
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
5
课堂评价:□优秀□良好□中等□及格□不及格
教师签名:批改时间:年月日
一、实验目的和要求
1、掌握一维数组定义和调用的方法;
2、掌握数码管的原理,学习定义数码管及LED各种图形组合数组的技巧;
3、学习程序组合和函数调用方法,进一步提高编程能力
二、主要仪器设备
1、安装KeilμVision及Protues软件的计算机一台;单片机开发板一套。
}
else
return 0;//无按键标志
}
else
return 0;//无按键标志
}
//*******************************************
//函数名称: uchar KeyValOpe( uchar ucKeyval )
//函数功能:转换键值,并返回键号
//形式参数:无
uchar KeyValOpe( uchar ucKeyval )
{
uchar keytemp;
switch (ucKeyval)
{
case 0xE7 : keytemp = 13; break;
case 0xD7 : keytemp = 14;break;
case 0xB7 : keytemp = 15;break;
case 0x77 : keytemp = 0;break;
case 0xEB : keytemp = 12;break;
case 0xDB : keytemp = 3;break;
case 0xBB : keytemp = 2;break;
case 0x7B : keytemp = 1;break;
实验成绩
教师评语:
实验成绩评定
1
实验方法:□有创新□有改进□有缺陷□合理
2
实验结果:□一次成功□改进后成功□不成功
3
文字表述:□简明通顺□重复冗长□没有实质内容
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
5
课堂评价:□优秀□良好□中等□及格□不及格
教师签名:批改时间:年月日
一、实验目的和要求
1、初步掌握C51的基本语法、基本控制语句的使用,函数调用等知识,学习按任务编写基本程序
3
文字表述:□简明通顺□重复冗长□没有实质内容
4
实验态度:□严谨认真□循规蹈矩□敷衍应付
5
课堂评价:□优秀□良好□中等□及格□不及格
教师签名:批改时间:年月日
一、实验目的和要求
1.掌握单片机I/O口读写方法。
2.掌握独立按键的连接方法及使用。
3. C语言基本语句的编写,对I/O口基本操作。