嵌入式小组实验报告.docx

上传人:b****8 文档编号:9369425 上传时间:2023-02-04 格式:DOCX 页数:28 大小:264.98KB
下载 相关 举报
嵌入式小组实验报告.docx_第1页
第1页 / 共28页
嵌入式小组实验报告.docx_第2页
第2页 / 共28页
嵌入式小组实验报告.docx_第3页
第3页 / 共28页
嵌入式小组实验报告.docx_第4页
第4页 / 共28页
嵌入式小组实验报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

嵌入式小组实验报告.docx

《嵌入式小组实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式小组实验报告.docx(28页珍藏版)》请在冰豆网上搜索。

嵌入式小组实验报告.docx

嵌入式小组实验报告

 

嵌入式系统及其电路设计

小组实验报告

 

实验1并行接口的存储器读写实验

1、实验目的

掌握微机并行接口的存储器读写方法

2、实验设备

智能仪器试验仪1台,PC微机1台,实验软件1套

3、实验原理

在存储器没有被选通时,或在存储器被选通但读写信号还没有到来时,存储器的内部数据总线的输入输出端口对外部呈现高阻态,与外部数据总线互相隔离。

在从存储器读出数据或向存储器中写入数据时,处理器先输出存储单元的地址信号,同时由译码器对该地址信号译码输出片选信号。

下图表达了51单片机对并行接口的外部数据存储器的存取时序:

8051访问外部数据存储器时序图

4、实验步骤

并行数据读写部分程序

ucharxdatadat1[200]_at_0x0100;

ucharxdatadat2[200]_at_0x0200;

{unsignedcharj,k;

for(j=0;j<100;j++)

{

dat1[j]=0x99;

}

for(k=0;k<100;k++)

{

dat2[k]=0xAA;

}

}

运行dat1[j]=0x99后,XDATA窗口中0x100到以后100个单元的内容为99

运行dat2[k]为0xAA,XDATA窗口中0x200到以后100个单元的内容变为为AA

实验2I2C串行接口的存储器读写实验

1、实验目的

(1)掌握I2C总线的基本原理;

(2)掌握I2C元件的基本使用方法;

(3)掌握I2C元件电路的基本连接方法。

2、实验设备

智能仪器实验仪1台,PC微机1台,实验软件1套。

3、实验原理

在I2C总线上每个器件都有一个唯一的地址。

主机与其他器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。

由总线上接收数据的器件则为接收器。

I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化。

起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态:

在终止信号产生后,总线就处于空闲状态。

I2C读写实验程序如下:

{

uchardataj;

bitbp=0;

for(j=0;j<96;j++)

{

stt[j]=0x88;

}

for(j=0;j<10;j++)

{//WC02用8,WC256用16。

bp=NSend(0xa0,j*8,&stt[j*8],8);

dl20ms();

dl20ms();

dl20ms();

}

for(j=0;j<10;j++)

{//WC02用8,WC256用16。

bp=NRead(0xa0,j*8,&stu[j*8],8);//j,&tru[j],16);

}

//gotobnn;

//while

(1);

}

4、实验步骤

建立新工程,将I2C软件包加入工程文件中。

使用NSend()函数向存储器中写入数据。

使用Nread()函数从存储器中读出数据。

通过查看存储器来判断对I2C存储器操作是否正确。

实验3RS-232C通信实验

1、实验目的

掌握RS232通信的基本原理和基本方法,掌握对RS232通信的编程。

2、实验设备

智能仪器实验仪1台,PC微机1台,实验软件1套。

3、实验原理

本实验中采用MAX232芯片作为TTL电平到RS232C的电平的转换器,MAX232芯片内有一个泵电源,可以将芯片电源引脚输入的+5V电压转化为±15V输出。

从其第11脚(TX)输入TTL电平信号,在其第14脚(TXO)输出对应的RS232C电平信号,作为数据发送之用。

在其13脚(RXI)输入RS232C电平信号,则在其第12脚(RX)输出TTL电平信号,用于接收数据。

通信程序如下:

voidmain()

{

//初始化

{

led=0;

P0=0xff;

P1=0xff;

P2=0xff;

P3=0xff;

TCON=0xf0;/*0xf0,int0,int1都是低电平触发*/

TMOD=0x25;/*定时器工作方式控制,*/

SCON=0x58;//232C通信设置

PCON=0x80;

TH1=0xfa;/*TH19600B/S11.0592MHz1bit-start1bit-stop*/

TL1=0xfa;/*TL1*/

TR0=0;/*starttimer0*/

TR1=1;/*starttimer1*/

ET0=0;/*enableTimer0interrupt*/

EX0=0;/*disableexternal-0interrupt*/

EX1=0;/*disableexternal-1interrupt*/

ES=1;/*enablesirial-portinterrupt*/

EA=0;

IE=0x90;/*globalinterruptenable*/

EA=1;

}

voidsirial_port(void)interrupt4using0

{ucharii,m;

/*ReceivedatafromRS-232*/

EA=0;

if(RI==0)gotoabort;

RI=0;TI=0;

ii=SBUF;

if(ii==0x11)

{

unsignedcharfasong[]=“张超张丹朱成成”;

for(m=0;m<16;m++)

{SBUF=fasong[m];

while(TI==0);

TI=0;

}

}

abort:

EA=1;

}

4、实验内容

①设置串行口工作方式此时需要对SCON中的SM0、SM1进行设置。

PC机与单片机的通信中一般选择在串口工作在方式1下。

②选择波特率发生器选择定时器1作为其波特率发生器。

③设置定时器工作方式当选择定时器1作为波特率发生器时,需设置其方式寄存器TMOD为定时方式并选择相应的工作方式

④设置波特率参数影响波特率的参数有3个,一是寄存器PCON的SMOD位,另一个是定时器T1的高八位TH1的数值即计数初值,第三个是系统的时钟频率fosc。

在时钟频率已经确定时,8051通信的波特率由SCON、PCON和TH1控制。

⑤允许串行中断因在程序中一般采用中断接收方式,故应设EA=1,ES=1.

⑥允许接收数据设置SCON中的REN为1.表示允许串行口接收数据。

⑦允许定时/计数器工作令TR1=1,就开启了定时/计数器T1,使其产生波特率。

⑧编写串行中断服务程序当串口接收到一个字节时,系统将自动执行所编写的中断服务程序。

⑨收/发相应数据注意的是每发送完一个字节,需将T1清零,每接收一个字节,在接收到后需将R1清零。

注意:

要在VM集成实验界面主菜单的仿真器设置中设置晶体频率。

5、实验结果如图:

实验4键盘输入实验

1、实验目的

了解键盘上的工作原理,掌握键盘的控制方法。

2、实验设备

智能仪器实验仪1台,PC微机1台,实验软件1套。

3、实验原理

单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其他按键或键盘都是以开关状态来设置控制功能或输入数据的。

因此,这些开关不只是简单的用于电平输入。

当所设置的功能键或数字键按下时,计算机应用系统应完成该按键所设定的功能。

因此键信息输入是与软件结构密切相应的过程。

本对一组键,或一个键盘,总有一个接口电路与CPU相连。

通过软件了解键输入信息,CPU可以采用中断方式或查询方式了解有无键输入并检查是哪一个键按下,当有键按下时,执行该键的功能程序。

实验中所用的键盘为独立式键盘。

独立键盘是指直接用I/O口线构成的单个按键电路。

每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。

4、实验内容

编程读取键盘的键值,通过判断键值进行程序控制,通过仿真机观察实验结果。

(1)获取键值

本实验中键盘的地址定义为0F100H,编程通过函数的调用获得各键的键值。

其中通过软件去除键盘抖动。

(2)根据键值进行程序控制

编程实现通过键盘控制两个以上的程序段,一个是在液晶屏上显示键值,另一个是通过按键控制LED灯闪亮。

程序如下:

#defineucharundesignedchar

#defineunitunsignedint

#define_Nop()_nop_()

#include

#include

#include

#include

#include

#include

#include

#definekeyXBYTE[0xf200]

Unsignedcharxdatakdata_at_0x0030;

Voidmain()

{

SP=00x60;

Kkk:

Delay();

Kdata=key;

Gotokkk;

}

实际中,我们只使用了

{

key1:

send=key;

}

实验5液晶图形与字符显示实验

1、实验目的

掌握液晶显示的基本原理;

学会使用液晶进行字符显示;

学会使用液晶进行图形显示。

2、实验设备

智能仪器实验仪1台,PC微机1台,实验软件1套。

实验仪所用液晶为由东芝公司出品的T6963C芯片控制的240*128个像素点构成,内有64KB存储空间,可进行图形和字符的显示。

3、实验原理

硬件电路中,地址译码器将地址选通信号接入液晶的CE端,地址的最低位A0位接入液晶的指令数据选择端口C/D,使液晶的数据和指令地址分别为F100H和F101H。

240×128液晶内部具有64KB的RAM,这些存储区又可设置为图形显示区和字符显示区,两部分区域可以通过设置图形显示区和字符显示区首地址自由分配在64KB数据区内。

两区域所显示内容按一定的逻辑关系同时显示在液晶屏上,在分配数据区时两部分地址不可以重合。

4、实验内容

在使用液晶前先要对液晶进行初始化,初始化主要包括:

清屏、设置图形区首地址及宽度、设置文本区首地址及宽度、设置显示方式、设置显示开关。

(1)设置数据区

首先将液晶数据及指令地址设置为外部数据区,以方便对数据及指令的读写。

#definewclcdXBYTE[0xf101]

#definewdlcdXBYTE[0xf100]

(2)测试液晶状态

在液晶进行读写前必须读状态寄存器以检查液晶是否准备好,测试子程序如下:

voidtry()

{unsignedcharM;

wait0:

M=wclcd;

if(M&0x03!

=0x03)

{gotowait0;}

}

这主要是检测数据的读写是否准备好,若准备好进行下一步操作,若没有准备好则继续检测。

(3)清屏

voidclear()

{//清屏

try();

wdlcd=0x00;

try();

wdlcd=0x00;

try();

wclcd=0x24;

try();

wclcd=0xb0;

try();

for(i=0;i<0x1fff;i++)

{wdlcd=0x00;}

try();

wclcd=0xb2;

}

初始化图形区及文本区

voidstar()

{

clear();

//初始化文本区首址为0X0000;宽度为0X1E

try();

wdlcd=0x00;

try();

wdlcd=0x00;

try();

wclcd=0x40;

//textwide

try();

wdlcd=0x1e;

try();

wdlcd=0x00;

try();

wclcd=0x41;

//图形区设置首址为0X1000;宽度为0X1E

wdlcd=0x00;

try();

wdlcd=0x10;

try();

wclcd=0x42;

try();

wdlcd=0x1e;

try();

wdlcd=0x00;

try();

wclcd=0x43;

try();

//图形与文本逻辑或方式合成

try();

wclcd=0x80;

//文本与图形同时显示

try();

wclcd=0x9c;

}

文本区显示

voidtext(unsignedcharx,unsignedchary,unsignedcharword)

{

gotoadd(x,y);

try();

wdlcd=word;

try();

wclcd=0xc0;

}

(6)图形方式显示汉字

voidtuhz(unsignedcharx,unsignedchary,unsignedchar*s,unsignedcharn)

{//X为行,Y为列数

unsignedintaddress;

unsignedcharaddh,addl;

for(i=0;i

{

address=x*30+(i*2+y)+0x1000;

addl=address&0x00ff;

addh=(address&0xff00)/0x0100;

gotoadd(addl,addh);

for(k=0;k<0x10;k++)

{

try();

wdlcd=*s;

try();

wclcd=0xc0;

s++;

try();

wdlcd=*s;

try();

wclcd=0xc0;

s++;

for(m=0;m<0x1c;m++)

{

try();

wclcd=0xc1;

}

}

}

}

液晶显示程序:

{tuhz(0x00,0x00,name,7);//从第00行00字开如显示

//tuhz(0x53,0x08,company,6);//显示兰州公司

tuhz(0x60,0x08,xjtu,6);//显示西安交通大学

tu(0x53,0x13);//xiaohui//显示商标

for(i=0;i<500;i++)

{for(k=0;k<200;k++);}//延时7秒

//while

(1);

//clear();

tuhz(0x22,0x06,gui,2);

tuhz(0x39,0x06,gao,2);

tuhz(0x52,0x06,lee,2);

text(0xa0,0x00,0x1a);//显示第一行冒号

text(0xaa,0x00,0x4d);//MM符号

text(0xab,0x00,0x4d);

text(0xfa,0x00,0x1a);//显示第二行冒号

text(0x04,0x01,0x4d);//MM符号

text(0x05,0x01,0x4d);

text(0x54,0x01,0x1a);//显示第三行冒号

text(0x5e,0x01,0x4d);//M符号

dl1s();//延时7秒

}

利用软件制作“模具所控制室”字样,字符程序如下:

/*--文字:

天--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x00,

0x01,0x00,0x02,0x80,0x02,0x40,0x04,0x20,0x08,0x18,0x10,0x0E,0x20,0x04,0x40,0x00,

/*--文字:

长--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x08,0x00,0x08,0x10,0x08,0x20,0x08,0x40,0x09,0x80,0x0E,0x00,0x08,0x00,0xFF,0xFE,

0x0A,0x00,0x09,0x00,0x08,0x80,0x08,0x40,0x09,0x30,0x0A,0x1C,0x0C,0x08,0x08,0x00,

/*--文字:

地--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x20,0x11,0x20,0x11,0x20,0x11,0x24,0xFD,0x3E,0x11,0xE4,0x17,0x24,0x11,0x24,

0x11,0x24,0x11,0x34,0x11,0x28,0x1D,0x20,0x31,0x02,0xC1,0x02,0x00,0xFE,0x00,0x00,

/*--文字:

久--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x02,0x00,0x02,0x00,0x04,0x40,0x07,0xE0,0x08,0x40,0x08,0x40,0x10,0x80,0x20,0xC0,

0x41,0x40,0x01,0x20,0x02,0x20,0x04,0x10,0x08,0x18,0x30,0x0E,0xC0,0x04,0x00,0x00,

/*--文字:

有--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x01,0x00,0x01,0x00,0x7F,0xFE,0x02,0x00,0x04,0x00,0x0F,0xF0,0x18,0x10,0x28,0x10,

0x4F,0xF0,0x88,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,0x08,0x90,0x08,0x70,0x08,0x20,

/*--文字:

尽--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x00,0x1F,0xF8,0x10,0x08,0x10,0x08,0x1F,0xF8,0x10,0x80,0x10,0x80,0x10,0x40,

0x26,0x20,0x21,0x98,0x40,0x8E,0x84,0x04,0x03,0x00,0x01,0x80,0x00,0x80,0x00,0x00,

/*--文字:

时--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x10,0x00,0x10,0x7C,0x10,0x44,0x10,0x47,0xFE,0x44,0x10,0x7C,0x10,0x45,0x10,

0x44,0x90,0x44,0x90,0x7C,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x50,0x00,0x20,

/*--文字:

,--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,

/*--文字:

此--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x24,0x46,0x27,0x58,0x24,0x60,0x24,0x40,

0x24,0x40,0x24,0x40,0x24,0x40,0x27,0x42,0x38,0x42,0xE0,0x42,0x00,0x3E,0x00,0x00,

/*--文字:

恨--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x20,0x00,0x23,0xF8,0x22,0x08,0x32,0x08,0xAB,0xF8,0xAA,0x08,0xA2,0x08,0x23,0xF8,

0x22,0x44,0x22,0x4C,0x22,0x30,0x22,0x20,0x22,0x90,0x23,0x0E,0x22,0x04,0x00,0x00,

/*--文字:

绵--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x10,0x20,0x10,0x40,0x21,0xFC,0x21,0x04,0x45,0xFC,0xFD,0x04,0x09,0xFC,0x10,0x20,

0x21,0xFC,0x7D,0x24,0x01,0x24,0x0D,0x24,0xF1,0x24,0x41,0x2C,0x00,0x20,0x00,0x20,

/*--文字:

绵--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x10,0x20,0x10,0x40,0x21,0xFC,0x21,0x04,0x45,0xFC,0xFD,0x04,0x09,0xFC,0x10,0x20,

0x21,0xFC,0x7D,0x24,0x01,0x24,0x0D,0x24,0xF1,0x24,0x41,0x2C,0x00,0x20,0x00,0x20,

/*--文字:

无--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x00,0x00,0x3F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFE,0x01,0x80,

0x02,0x80,0x02,0x80,0x04,0x80,0x08,0x80,0x10,0x82,0x20,0x82,0xC0,0x7E,0x00,0x00,

/*--文字:

绝--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x20,0x80,0x30,0x80,0x21,0xFC,0x41,0x08,0x4A,0x10,0xFB,0xFC,0x15,0x24,0x21,0x24,

0x41,0x24,0xF9,0xFC,0x01,0x00,0x01,0x00,0x1D,0x02,0xE1,0x02,0x00,0xFE,0x00,0x00,

/*--文字:

期--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x22,0x00,0x22,0x7C,0x7F,0x44,0x22,0x44,0x3E,0x44,0x22,0x7C,0x3E,0x44,0x22,0x44,

0x22,0x44,0xFF,0x7C,0x00,0x44,0x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1