




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用法UART与PC通信实现msp430g2553单片机超声波测距示例_ 这篇文章主要介绍了用法UART与PC通信实现msp430g2553单片机超声波测距示例,需要的伴侣可以参考下. 适用于msp430g2553单片机 用法到了hc-sr04超声测距模块,用法UART与PC通信。 代码如下: #include long current_time;/最近一次测得时间 /*MyPro*/ #define LED_1 BIT0 #define SW_2 BIT3 #define TA1_1 BIT2 /TA0.1 HC-SR04 Echo #define TRIG BIT4 /HC-SR04 Tri
2、g #define ACCU_GRD 7 /Accuracy Grade xxx.x+ #define MIN_UNIT_TO1M 1000 /1 m to 1 mm /*TIMER0*/ #define SOUR_CLK 1045000 #define DIV_CLK_1 1 #define SYS_CLK_SIG_1 SOUR_CLK/DIV_CLK_1 #define DISTANCE 45/dm #define TIMER_RIG_MAX 0xffff #define MAX_TIME_1 DISTANCE*2/34*SYS_CLK_SIG_1 #ifdef MAX_TIME_1 #d
3、efine SYS_CLK SYS_CLK_SIG_1 #endif #define UART_TXD BIT2 void init_timer1() P2SEL |= TA1_1; /TA1.1 CCI1B be used P2DIR = TA1_1; TA1CTL = MC_0 + TASSEL_2; /TimerA_0 stop mode,clock=1Mhz TA1CCTL1 = CCIE + SCCI + CCIS_1 + SCS + CAP + CM_2; /TA0CC1 capture mode + down edge /*UART*/ void init_uart() /USC
4、I 初始化函数 UCA0CTL1 |= UCSWRST; /初始化串口寄存器 UCA0CTL1 |= UCSSEL_2; /选择子系统时钟 1.045MHz UCA0BR0 = 0x6d; /波特率为9600 UCA0BR1 = 0x00; P1SEL |= UART_TXD; P1SEL2 |= UART_TXD; P1DIR |= UART_TXD; /将P1.2设为其次功能 UCA0CTL1 = UCSWRST; /初始化结束 long cal_distance() /通过测得时间计算距离 return (long)(340*(0.5000*current_time/SYS_CLK)*M
5、IN_UNIT_TO1M); void delay() /粗略延迟 unsigned char i,j; for(i=124;i0;i-) for(j=8;j0;j-); static char * translater(long distance) /将测得的距离以字符串形式存储 static char transACCU_GRD; int i; long f; trans0= ; if(distance) for(i=1,f=MIN_UNIT_TO1M;i if(i=4) transi = .; continue; transi = 0+ distance/f; distance %= f
6、; f /= 10; transACCU_GRD-1 = ; return trans; void once_pro() /发一次超声波 if(TA1CCTL1 COV) TA1CCTL1 = COV; if(!(P1IN BIT3) TA1R = 0; P1OUT |= TRIG; /Trig 10 us 高电平 _EINT(); TA1CTL |= MC_2; /continue mode P1OUT = TRIG; P1OUT |= LED_1; while(TA1CCTL1 CCIFG); /等待 捕捉中断结束 else P1OUT = LED_1; _DINT(); void uar
7、t_txstring(char *string) /UART_TX 发送一个串 int i=0; while(stringi+) switch (i) /过滤无效 0 case 1:if(stringi=0) continue; case 2:if(stringi=0stringi-1=0) continue; UCA0TXBUF = stringi; delay(); /*UART_ISR*/ #pragma vector = USCIAB0TX_VECTOR _interrupt void usci_txdistance() /向 PC 发送 测得的距离 uart_txstring(nr)
8、; uart_txstring( Current ); uart_txstring( distance: ); uart_txstring(translater(cal_distance(); uart_txstring( cm); IE2 = UCA0TXIE; /*TIMER0_INT_ISR*/ #pragma vector = TIMER1_A1_VECTOR _interrupt void capture() current_time = TA1CCR1; TA1CTL = MC_2; TA1CCTL1 = CCIFG; /清CC1中断标记位 IE2 |= UCA0TXIE; /*Main*/ void main() WDTCTL = WDTPW + WDTHOLD; /关狗 DCOCTL = 0; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; P1OUT = 0; P2OUT = 0; P1REN |= SW_2; P2REN |= TA1_1; P1OUT |= SW_2; P1DIR = SW_2; P1DIR = TRIG + L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国内销售代理合同模板示例
- 2025年协议存款居间合同
- 2025年烘焙工艺试题及答案
- 2025年唐朝科举试卷图片及答案
- 2025年美容营养试卷及答案
- 供水工程检测方案(3篇)
- 工程现场作业安排方案(3篇)
- 11-3、施工方案专家论证审查会专家签到表
- 2025年质量考试题库及答案
- 工程师做方案(3篇)
- 部编版六年级语文上册重点难点解析
- 重庆市南开中学高2026届高三第一次质量检测+化学答案
- 肖婷民法总则教学课件
- 教育培训课程开发与实施指南模板
- 2025保密协议范本:物流行业货物信息保密
- 2025卫星互联网承载网技术白皮书-未来网络发展大会
- 半导体行业面试问题及答案解析
- 《研学旅行课程设计与实施》全套教学课件
- DB15T 2618-2022 公路工程工地试验室建设与管理规范
- 2025至2030年中国绿色船舶行业发展前景预测及投资方向研究报告
- 2025年小学生“学宪法、讲宪法”网络知识竞赛题库及答案
评论
0/150
提交评论