单片机控制发光二极管实验报告
- 格式:pdf
- 大小:233.06 KB
- 文档页数:13
单片机控制发光二极管实验报告
发光二极管 广东石油化工学院单片机实验一实验报告 实验报告
实验一 发光二极管实验
学院: 电信学院 专业:
班级 学生
学号:
实验时间 一、实验目的
1、掌握AT89C51 单片机IO 口的输入输出。 2、掌握用查表方式实现AT89C51 单片机IO 口的控制。
3、练习单片机简单延时子程序的编写。
4、熟练运用Proteus 设计、仿真AT89C51 系统。 二、实验内容 1、编写延时子程序,延时时间为0.1S。
代码: void delay(){
int i, j;
for (i = 0; i 100; i++) for (j = 0; j 125; j++);
}
2、见图一。通过AT89C51 单片机控制8 个发光
二极管发光,实现亮点以由上到下循环移动,间
隔时间为0.1S。 代码:
#includereg51.h #includeintrins.h
void delay(){
int i, j; for(i = 0; i 100; i++)
for(j = 0; j 125; j++); }
void main(){
P1 = 0xFE; while(1){
P1 (转载于:www.xiElw.coM 写论文 网:单片机控制发光二极管实验报告)= _crol_(P1,1);
delay();
} }
运行结果截图: 图一
3、见图一。通过AT89C51 单片机控制8 个发光
二极管发光,循环实现亮点由上到下移动1 次(间
隔时间为0.2S),由下到上移动1 次(间隔时间为 0.2S),闪烁1
次(即先全亮0.1S,再全灭0.1S)。 代码:
#includereg51.h #define uchar unsigned char
#define uint unsigned int
void delay(){ uint i, j;
for (i = 0; i 100; i++){ for (j = 0; j 128; j++){
//delay 100ms, do nothing.
} }
} void shangXia(){
uchar k;
P1 = 0xFE; for (k = 0; k 8; k++){
delay(); P1 = _crol_(P1,1);
}
}
void xiaShang(){
uchar k; P1 = 0x7F;
for (k = 0; k 8; k++){ delay();
P1 = _crol_(P1,-1);
} }
void main(){ while(1){
shangXia();
xiaShang(); }
} 截图与题一相同,增加由下至上。 4、见图一。用数组方式实
现题3 。
代码: #includereg51.h
#define uchar unsigned char #define uint unsigned int
uint light[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
void delay(){
uint i, j;
for (i = 0; i 100; i++){ for (j = 0; j 128; j++){
//delay 100ms, do nothing. }
}
} void shangXiaUseArry(){
uchar i; for (i = 0; i 8; i++){
delay();
P1 = light[i]; }
} void xiaShangUseArry(){
char i;
for (i = 7; i -1; i--){ delay();
P1 = light[i]; }
}
void main(){
while(1){
shangXiaUseArry(); xiaShangUseArry();
} }
效果截图与题一相同。
5、见图二。P2 口作为输入口,接8 只开关。P1 口做为输出口,接8 只发光二极管,通过设置8只拨动开关的状态控制8 只发光
二极管的亮灭。(自己画硬件连线图,程序流程图如下) 图二
代码:
#includereg51.h void main(){
while(1){ P1 = P2;
}
} 仿真截图:
6、用蜂鸣器发出固定电话回音声音。见图三。 固定电话回音声音:450Hz,通1秒断4秒。
代码:
#includereg51.h
#define uchar unsigned char
#define uint unsigned int void delay_1ms(){
篇二:单片机原理与应用技术实验报告(实验项目:发光二极管闪烁)
***数学计算机科学系实验报告
专业: 计算机科学与技术 班级: 实验课程:单片机原理与应用技术 姓名:学号: 实验室:硬件实验室 同组同学:实
验时间: 2013年3月20日指导教师签字:成绩: 实验项目:发光二极管闪烁
一 实验目的和要求
1.使用单片机的P1.5口做输出口,使该位发光二极管闪烁。 2.掌握单片机使用。
二 实验环境 PC机一台,实验仪器一套
三 实验步骤及实验记录
1.在pc机上,打开Keil C。 2.在Keil C中,新建一个工程文件,点击“Project-New Project?”
菜单。 3. 选择工程文件要存放的路径 ,输入工程文件名 LED, 最后
单击保存。
4. 在弹出的对话框中选择 CPU 厂商及型号。
5. 选择好 Atmel 公司的 89c51 后 , 单击确定。
6. 在接着出现的对话框中选择“是”。 7. 新建一个 C51 文件 , 点击file菜单下的NEW,或单击左
上角的 New File快捷键。 8. 保存新建的文件,单击SAVE。
9. 在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。
10. 保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to
Group ‘Source Group 1'。 11. 选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击 Close。
12. 在编辑框里输入代码如下:
#include reg51.h //包含头文件 sbit led=P1; //表示用led等效于P1, P1 就是指头文件里定义
的P1寄存器的第5BIT #define uchar unsigned char
#define uint unsigned int
delay(uint time)//int型数据为16位,所以最大值为65535 { uint i,j; //定义变量i,j,用于循环语句
for(i=0;itime;i++) //for循环,循环50*time次 for(j=0;j50;j++); //for循环,循环50次
}
void main() //主函数
{
while(1)//进入while死循环 {
led=~led;//led电平取反来控制LED亮灭 delay(5000);//延时,修改延时即可修改闪烁频率
}
} 13.单击 快捷键或单击Project/Rebuild all the files, 如果在错
误与警告处看到 0 Error(s) 表示编译通过 。 14. 单击Options for Target, 单击 Output, 选中 Create HEX Fi。
再单击“确定”,再次编译产生HEX文件。
15.STC-ISP 软件烧写程序,步骤如下: 步骤1、选择单片机型号STC12C5A60S2。
步骤2、打开程序文件(后缀为.HEX 的文件)。 在相应工程下找到待下载的HEX文件,点击打开即可。
步骤3、选择串行口COM3。
步骤4、用USB线连接电脑和主板,将主板和核心板上的电源都关闭,点击“Download下载”,打开核心板上的电源开关(注
意不是主板上的电源开关),等待完成下载。 16.在单片机上, 用1位杜邦线将J8_5与J13_1连接。
17.打开单片机电源开关,观察现象。
四 实验结果与分析
发光二极管闪烁
篇三:单片机实验报告 实验一I /O口输出实验—LED
流水灯实验报告 一、 实验要求
利用单片机及8个发光二极管等器件,构成一个流水灯单片机
系统。 二、 实验目的
1、掌握单片机最小系统的构成; 2、掌握I/O口的使用及驱动能力的概念; 3、熟悉移位指令和
软件延时程序。
三、 实验电路及连线 注意事项: (1)实验箱上各模块是独立供电,实验时需要用
到的模块都要给它提供电源,即+5V接口都要接到电源模块的+ 5V电源接口,GND接口可以不用接(默认实验箱上的GND网络都接
在一起了),千万不要把+5V接口接到GND接口上,短路烧坏保
险管。 (2)硬件连接表都是按照C语言编写的仿真工程连接硬件,适用于AT89S52、ATmega16、PIC16F877A单片机,若做实验
时用到汇编工程,请参照汇编工程里面的仿真电路连接硬件。 四、 实验说明
1、主要知识点概述: