桂林电子科技大学信息科技学院嵌入式实训Word下载.doc

上传人:b****9 文档编号:13005896 上传时间:2022-10-02 格式:DOC 页数:12 大小:64KB
下载 相关 举报
桂林电子科技大学信息科技学院嵌入式实训Word下载.doc_第1页
第1页 / 共12页
桂林电子科技大学信息科技学院嵌入式实训Word下载.doc_第2页
第2页 / 共12页
桂林电子科技大学信息科技学院嵌入式实训Word下载.doc_第3页
第3页 / 共12页
桂林电子科技大学信息科技学院嵌入式实训Word下载.doc_第4页
第4页 / 共12页
桂林电子科技大学信息科技学院嵌入式实训Word下载.doc_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

桂林电子科技大学信息科技学院嵌入式实训Word下载.doc

《桂林电子科技大学信息科技学院嵌入式实训Word下载.doc》由会员分享,可在线阅读,更多相关《桂林电子科技大学信息科技学院嵌入式实训Word下载.doc(12页珍藏版)》请在冰豆网上搜索。

桂林电子科技大学信息科技学院嵌入式实训Word下载.doc

接收串口发来的命令进行输出显示,当按键按下后将按键信息通过串口发送出去。

实验箱模块功能:

实现相应的计算和控制功能。

扩展多位数码管,实现多位显示(动态扫描)

加入了蜂鸣器,可作声音报警使用。

1.2设计思路及设计框图

1.2.1设计思路

(1)串行通信基本通信方式:

通信双方要正确的进行数据传输,需要解决何时开始传输、何时结束传输,以及数据传输速率等问题,这就是数据传输中的同步问题。

通常,实现数据同步有两种方式:

异步通信和同步通信。

1.异步通信:

数据一帧一帧地传送。

发送端和接收端可以由各自的时钟控制数据的发送和接收,两个时钟源彼此独立,互不同步。

数据的一帧:

由一个字符代码组成。

RS-232C接口采用双极性信号、公共地线和负逻辑;

不能和TTL电平直接相连,使用时必须进行电平转换,否则将使TTL电路烧坏,实际应用时必须注意!

在实际应用时,必须通过专用电平转换芯片进行电平转换。

电平转换芯片MC1488、MC1489、MAX232MC1488可实现TTL→RS-232的电平转换;

MC1489可实现RS-232→TTL的电平转换。

MAX232芯片可完成TTL到EIA双向电平的转换。

通过使用一对max232(自己做的板子上一个,实验箱上一个)完成电平转换,将单片机的SBUF和s2410芯片的串行通信寄存器完成数据传送从而达到远距离通信的目的。

1.2.2总体设计框图

2各个模块程序的设计

3调试过程

4功能测试

4.3误差分析

5实训心得体会

附录

附录1:

程序清单

1、嵌入式

AREAmb,CODE,READONLY

ENTRY

EXTERNMain

BMain

B.

END

#defineGPHCON(*(volatileunsigned*)0x56000070)

#defineULCON0(*(volatileunsigned*)0x50000000)

#defineUCON0(*(volatileunsigned*)0x50000004)

#defineUBRDIV0(*(volatileunsigned*)0x50000028)

#definerUTXH0(*(volatileunsigned*)0x50000020)//发送缓冲寄存器

#definerUTRSTAT0(*(volatileunsigned*)0x50000010)

#definerURXH0(*(volatileunsigned*)0x50000024)//接收缓冲寄存器

#defineucharunsignedchar

ucharrevBuf;

//接收到的数据

intm=99,ms=99;

intM=20;

/*****************************************

发送

*****************************************/

voidsend(ucharm,ucharms,ucharled,ucharspeak)

{

while(!

(rUTRSTAT0&

0x02));

rUTXH0=0xBB;

rUTXH0=ms+led*128;

rUTXH0=m+speak*128;

}

/******************************************

秒表复位:

复位后LED灯点亮,蜂鸣器不响

数码管置为M.ms

******************************************/

voidreset()

m=M;

ms=0;

send(m,ms,1,1);

延时

延时0.01s

0.01/1/202.8MHz

voiddelay()

inti=0;

for(i=0;

i<

0x00002000;

i++);

ms每10ms自减一次

voidrun_stop()

inti;

while

(1)

{

if(rUTRSTAT0&

0X1)

{

revBuf=rURXH0;

if(revBuf==0x01)

{

break;

}

}

if(ms==-1&

&

m==0)

for(i=0;

10;

i++)

{

if(i%2==0)

send(0,0,0,1);

else

send(0,0,1,1);

}

break;

}

if(ms==-1)

{ms=99;

m--;

}

send(m,ms,0,1);

delay();

ms--;

}

voidadd()

if(M<

99)

M++;

m=M;

send(M,0,0,0);

voidsub()//

if(M>

0)//

M--;

//

voidMain()

GPHCON=0xa<

<

2*2;

ULCON0=0x3;

UCON0=0x5;

UBRDIV0=329;

{

0X1)//接收是否完毕

{

revBuf=rURXH0;

switch(revBuf)//

case0x01:

run_stop();

break;

case0x02:

add();

case0x03:

sub();

case0x04:

reset();

default:

2、单片机

#include<

AT89X51.h>

#defineuintunsignedint

unsignedcharcnt;

//区分数码管显示位

unsignedcharKEY=0;

//按键锁定

unsignedcharspeak=0;

//蜂鸣器不响

unsignedcharled=0;

//指示灯不亮

intmg=99,ms=99;

//数码管整数位(0~99)小数位(0~99)初始化显示数字

unsignedchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//数码管0-9断码表

voiduart_isr()interrupt4 //中断方式4,串行口I/O中断

/*******************************************

接收模块

0xBB表示接下来要接收两个数码管数据

单片机串行口数据缓冲器SBUF

*******************************************/

if(RI) //接收中断标志位RI

{RI=0;

if(SBUF==0xBB)

while(!

RI);

RI=0;

ms=SBUF;

ms=SBUF&

0x7f;

led=SBUF/128;

mg=SBUF;

mg=SBUF&

speak=!

(SBUF/128);

}

}

voidCom_Init(void) //计数器初始化

TMOD=0x20;

//T1计时器

PCON=0x00;

//波特率不倍增,在方式1、2、3中0表示不倍增,1表示倍增

SCON=0x50;

//串行口控制器配置

TH1=0xFD;

//T1高8位

TL1=0xFD;

//T1地8位

TR1=1;

ES=1;

voidTimer_Init(void) //配置定时器

TMOD|=0x01;

TH0=0xFC;

TL0=0x18;

TR0=1;

EA=1;

ET0=1;

voidShow_Init()//按键、蜂鸣器初始状态

P2_0=1;

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

当前位置:首页 > 自然科学 > 物理

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

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