嵌 入 式 实 验 报 告
一、 实验目的
通过在ARM7TDI实验机上,使D7~D8两个灯如下进行亮灭:开始时D7灯亮,D8灯灭;而后D7灯灭,D8灯亮;最后两个灯均亮。
按此顺序循环交替使D7~D8亮。
二、 实验原理
通过查实验手册说明书可知:
1) D7~D8通过IOB口控制的第四位和第五位控制,将pcomb的第4、5位置为0,可以使该两个灯为输出。
2) pcomb的地址是:0x01d20008
3) D7-D8的亮灭可由Pdata控制,地址为0x01d2000c,将相应的位置0,该灯既可以亮。
三、 实验步骤
1) 使用ARM Developer Suite v1.2软件,新建一个工程。
2) 在新建一个源文件,为.c的文件,编写所需的代码。
3) 将ARM Developer Suite v1.2的初始化代码放在新建的工程中。
四、 实验代码
void delay()
{
int i;
for(i=0; i < 200000; i++);
}
void main()
{
#define pbcon *((volatile unsigned int *)0x01d20008)
#define pbdat *((volatile unsigned int *)0x01d2000c)
int i=0;
pbcon = pbcon & ~(3 << 4);
while(1)
{
pbdat = pbdat & ~( 3 << 4 ) | ( i << 4 );
i++;
i = i % 4;
delay();
}
}
MCS-51单片机接口技术实验
适用:电气类专业本科学生
实验报告
实验一 熟悉Proteus仿真模拟器,LED花样表演
一、实验目的
掌握以下方法:
1.在Proteus的环境下,设计硬件原理图;
2.在keilc集成环境下设计C51语言程序;
2.在Proteus的环境下,将硬件原理图与软件联接仿真运行。
二、实验环境
1.个人微机,Windows操作系统
2.Proteus仿真模拟器
3.Keilc编程
三、实验题目
基本题:使用8051的并口带动8个LED发光二极管显示一种花样表演。
提高题:使用一个键切换实现3种以上花样表演。
四、实验类型:
学习、模仿与简单设计型。
五、实验步骤:
0、进入ISIS,先选择需要的元件,然后设计电原理图,保存文件;
1、在keilc软件集成环境下编写源程序,编译工程文件;
2、将所设计的硬件原理图与目标代码程序相联接;
4、按play键,仿真运行程序。
附,可能用到的元件名称:
CPU:AT89C51或任一种MCS-51家族CPU;
晶振:Crystal;
电容器:Capacitors,选22pf
电解电容:CAP-ELEC或GENELECT10U16V
复位电阻:MINRES10K
限流电阻:MINRES330R
按键:BUTTON
LED:LED-BLUE/RED/YELLOW或DIODE-LED
(一)接线图如下:
(二).基础花样
(四)程序流程图
(五)C程序
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
const tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, /*正向流水灯*/
0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,};/*反向流水灯*/
const tab2[]={0xff,0x00,0xff,0x00,0xff,0x00,};
void delay()
{
uint i,j;
for(i=0;i<256;i++)
for(j=0;j<256;j++)
{;}
}
void int1() interrupt 0
{
uchar i;
for (i=0;i<6;i++)
{ P0=tab2[i];
delay();
}
}
void main(void)
{
EX0=1;
IT0=1;
EA=1;
while(1)
{
uchar x;
for(x=0;x<15;x++)
{ P0=tab1[x];
delay();}
}
}
(六)总结
本次实验让我能够熟练的掌握和使用keil和proteus等软件进行编程和仿真,也对流水灯的原理和硬件结构有了更加深刻的认识。只会基础花样不懂变通。