桂林电子科技大学信息科技学院嵌入式实训_第1页
桂林电子科技大学信息科技学院嵌入式实训_第2页
桂林电子科技大学信息科技学院嵌入式实训_第3页
桂林电子科技大学信息科技学院嵌入式实训_第4页
桂林电子科技大学信息科技学院嵌入式实训_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 桂林电子科技大学信息科技学院嵌入式微处理器结构与应用实训报告实训题目:倒计时秒表 1 系统设计1.1 设计要求 设计任务 使用AT89S52单片机与ARM9实验箱之间进行串口通信,实现秒表倒计时的功能。单片机接收串口发来的命令进行输出系显示,当按键按下后将按键信息通过串口发送给ARM实验箱上的2410芯片;ARM9试验箱模块要求实现相应的计算和控制功能。即单片机只承担信息输入、输出功能,ARM承担主控任务。并通过按键控制加减预置值和暂停计时,复位计时等。要求在下学期硬件能够继续使用。 性能指标要求 (一)功能要求(1) 实现99秒倒计时,并通过数码管显示;(2) 四个按键:一个“运行/暂停”

2、按键,一个“加计时”按键,一个“减计时”按键,一个“复位”按键;(3) 四个指示灯:倒计时为0时,指示灯闪烁。 (二)接口要求 使用串口连接51单片机与arm9实验箱。单片机模块功能:接收串口发来的命令进行输出显示,当按键按下后将按键信息通过串口发送出去。 实验箱模块功能:实现相应的计算和控制功能。 扩展多位数码管,实现多位显示(动态扫描) 加入了蜂鸣器,可作声音报警使用。1.2 设计思路及设计框图设计思路(1)串行通信基本通信方式:通信双方要正确的进行数据传输,需要解决何时开始传输、何时结束传输,以及数据传输速率等问题,这就是数据传输中的同步问题。 通常,实现数据同步有两种方式:异步通信和同

3、步通信。 1异步通信: 数据一帧一帧地传送。发送端和接收端可以由各自的时钟控制数据的发送和接收,两个 时 钟源彼此独立,互不同步。 数据的一帧:由一个字符代码组成。 :RS-232C接口采用双极性信号、公共地线和负逻辑;不能和TTL电平直接相连,使用时必须进行电平转换,否则将使TTL电路烧坏,实际应用时必须注意!在实际应用时,必须通过专用电平转换芯片进行电平转换。电平转换芯片MC1488、MC1489、 MAX232MC1488可实现TTLRS-232的电平转换;MC1489可实现RS-232TTL的电平转换。 MAX232芯片可完成TTL到EIA双向电平的转换 。通过使用一对max232(自

4、己做的板子上一个,实验箱上一个)完成电平转换,将单片机的SBUF和s2410芯片的串行通信寄存器完成数据传送从而达到远距离通信的目的。总体设计框图 2 各个模块程序的设计3 调试过程4 功能测试4.3 误差分析5 实训心得体会附录附录1:程序清单1、嵌入式AREA mb,CODE,READONLYENTRY EXTERN Main B Main B . END#define GPHCON (*(volatile unsigned *)0x56000070)#define ULCON0 (*(volatile unsigned *)0x50000000)#define UCON0 (*(vola

5、tile unsigned *)0x50000004)#define UBRDIV0 (*(volatile unsigned *)0x50000028)#define rUTXH0 (*(volatile unsigned *)0x50000020)/发送缓冲寄存器#define rUTRSTAT0 (*(volatile unsigned *)0x50000010) #define rURXH0 (*(volatile unsigned *)0x50000024)/接收缓冲寄存器 #define uchar unsigned charuchar revBuf;/接收到的数据int m =

6、99,ms = 99;int M =20;/*发送*/void send(uchar m,uchar ms,uchar led,uchar speak)while(!(rUTRSTAT0 & 0x02);rUTXH0=0xBB;while(!(rUTRSTAT0 & 0x02);rUTXH0=ms+led*128;while(!(rUTRSTAT0 & 0x02);rUTXH0=m+speak*128;/*秒表复位:复位后LED灯点亮,蜂鸣器不响数码管置为M.ms*/void reset()m = M;ms = 0;send(m,ms,1,1);/*延时延时0.01s0

7、.01/1/202.8MHz*/void delay()int i = 0;for(i=0;i<0x00002000;i+);/*ms 每10ms自减一次*/void run_stop()int i;while(1)if(rUTRSTAT0 & 0X1)revBuf = rURXH0;if(revBuf = 0x01)break;if( ms = -1 && m = 0 ) for(i=0;i<10;i+) if(i%2=0) send(0,0,0,1); else send(0,0,1,1); break; if(ms = -1) ms=99; m-; s

8、end(m,ms,0,1);delay();ms-;/*/void add()if(M<99)M+;m=M;send(M,0,0,0);/*/void sub()/if(M>0)/M-;m=M;send(M,0,0,0);/*/void Main()GPHCON=0xa<<2*2;ULCON0=0x3;UCON0=0x5;UBRDIV0=329;while(1)if(rUTRSTAT0 & 0X1)/接收是否完毕revBuf=rURXH0;/switch(revBuf)/case 0x01:run_stop();break;/case 0x02:add();br

9、eak;/case 0x03:sub();break;/case 0x04:reset();break;/default:break;2、单片机#include <AT89X51.h>#define uchar unsigned char#define uint unsigned intunsigned char cnt; / 区分数码管显示位unsigned char KEY = 0;/ 按键锁定unsigned char speak = 0;/蜂鸣器 不响unsigned char led = 0;/指示灯 不亮int mg=99,ms=99;/数码管整数位(099)小数位(0

10、99) 初始化显示数字unsigned char tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /数码管0-9断码表void uart_isr() interrupt 4/中断方式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; while(!RI);RI=0;mg=SBUF

11、;mg = SBUF & 0x7f;speak = !(SBUF/128); void Com_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; void Timer_Init(void)/配置定时器TMOD|=0x01;TH0=0xFC;TL0=0x18;TR0=1;EA=1;ET0=1;void Show_Init() /按键、

12、蜂鸣器初始状态 P2_0=1; P2_1=1; P2_2=1; P2_3=1; P1_3=0; void delay(void) /延时 unsigned char a,b; for(b=249;b>0;b-) for(a=17;a>0;a-);void timer() interrupt 1 using 0 /中断方式1TH0=0xFC;TL0=0x18;switch(cnt%2)/数码管动态扫描case 0:P2_4=0;P2_5=1;P2_6=1;P2_7=1;P0=tabmg/10;break;case 1:P2_4=1;P2_5=0;P2_6=1;P2_7=1;P0=ta

13、bmg%10;break;P1_3 = speak;/定义蜂鸣器接口P1_1 = led;/定义led指示灯接口 cnt+;void send(unsigned char c)SBUF = c;/发送中断标志位TIwhile(!TI);TI = 0;void main() Com_Init();Timer_Init();Show_Init();while(1)/*发送模块暂停/启动:启动停止按键加:整数位上限加一减:整数位上限减一复位:清除当前数字 恢复*/if(!KEY)if(!P2_0) /暂停/启动delay();if(!P2_0)send(0x01);KEY=1;if(!P2_1) /加计数按键delay();if(!P2_1)send(0x02);KEY=1;if(!P2_2)/减计数按键delay();if(!P2_2)s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论