[LaunchPad] 超声波测试,数码管显示

  1 #include "io430g2553.h"
  2 
  3 unsigned char    Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};  //段码控制 
  4 unsigned char    dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};    //位选控制 
  5 
  6 unsigned char LedOut[4];
  7 
  8 unsigned int num =1234;
  9 unsigned int time;
 10 unsigned char i;
 11 
 12 unsigned char RxFlag;
 13 unsigned char Byte_H;
 14 unsigned char Byte_L;
 15 
 16 void selectled(unsigned char led)
 17  {
 18    switch(led)
 19    {
 20    case 0:
 21      P2OUT_bit.P5=0;
 22      P1OUT_bit.P6=1; 
 23      P1OUT_bit.P7=1;
 24      break;
 25    case 1:
 26      P2OUT_bit.P5=1;
 27      P1OUT_bit.P6=0; 
 28      P1OUT_bit.P7=1;
 29      break;
 30    case 2:
 31      P2OUT_bit.P5=1;
 32      P1OUT_bit.P6=1; 
 33      P1OUT_bit.P7=0;
 34      break;
 35    default:
 36      P2OUT_bit.P5=1;
 37      P1OUT_bit.P6=1; 
 38      P1OUT_bit.P7=1;
 39      break;  
 40    }
 41  }
 42  
 43  void showled(unsigned char led)
 44  {
 45  
 46    if(led & 0x01)    P1OUT_bit.P3=1;
 47     else P1OUT_bit.P3=0;
 48     
 49    if(led & 0x02)    P1OUT_bit.P4=1;
 50     else P1OUT_bit.P4=0;
 51     
 52    if(led & 0x04)    P1OUT_bit.P5=1;
 53     else P1OUT_bit.P5=0;
 54     
 55    if(led & 0x08)    P2OUT_bit.P0=1;
 56     else P2OUT_bit.P0=0;
 57     
 58    if(led & 0x10)    P2OUT_bit.P1=1;
 59     else P2OUT_bit.P1=0; 
 60     
 61    if(led & 0x20)    P2OUT_bit.P2=1;
 62     else P2OUT_bit.P2=0; 
 63     
 64    if(led & 0x40)    P2OUT_bit.P3=1;
 65     else P2OUT_bit.P3=0; 
 66     
 67    if(led & 0x80)    P2OUT_bit.P4=1;
 68     else P2OUT_bit.P4=0; 
 69  
 70  }
 71  
 72   int putchar(int ch)
 73  {
 74    while(!(IFG2&UCA0TXIFG));
 75     UCA0TXBUF=ch;
 76     return ch;
 77  }
 78  
 79 
 80   void sendChar(unsigned char c)
 81   {
 82     while(!(IFG2&UCA0TXIFG));
 83     UCA0TXBUF=c;
 84   }
 85 
 86 void main()
 87 {
 88   
 89 WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
 90   
 91 P1DIR=0xff;
 92 P2DIR=0xff;
 93 
 94   P1SEL = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
 95   P1SEL2 = BIT1 + BIT2 ;                     // P1.1 = RXD, P1.2=TXD
 96   UCA0CTL1 |= UCSSEL_2;                     // SMCLK
 97   UCA0BR0 = 104;                            // 1MHz 9600
 98   UCA0BR1 = 0;                              // 1MHz 9600
 99   UCA0MCTL = UCBRS0;                        // Modulation   UCBRSx = 1
100   UCA0CTL1 &= ~UCSWRST;                     // **Initialize USCI state machine** 
101   IE2 |= UCA0RXIE;   // Enable USCI_A0 RX interrupt 
102   __bis_SR_register(GIE);
103   
104   
105 while(1)
106 {
107   
108 time++;
109 if(time>50)
110 {
111   time=0;
112   sendChar(0x55);
113   __delay_cycles(1000);
114   if(num>500) P1OUT_bit.P0=1;
115   else P1OUT_bit.P0=0;
116 }
117      LedOut[3]=Disp_Tab[num%10000/1000];       //千位
118      LedOut[2]=Disp_Tab[num%1000/100];
119      LedOut[1]=Disp_Tab[num%100/10];           //十位
120      LedOut[0]=Disp_Tab[num%10];             //个位
121   
122 for(i=0;i<4;i++)
123 {
124   showled(LedOut[i]);
125   selectled(i);
126     __delay_cycles(1000);
127 }
128 }
129 
130 }
131 
132 #pragma vector=USCIAB0RX_VECTOR
133   __interrupt void USCI0RX_ISR(void)
134   {
135  
136   while (!(IFG2&UCA0TXIFG));                // USCI_A0 TX buffer ready?
137   
138    if(RxFlag == 0)
139    {
140      Byte_H=UCA0RXBUF;
141      RxFlag=1;
142    }
143    else
144    { 
145        Byte_L=UCA0RXBUF;
146        num=Byte_H*256+Byte_L;
147        RxFlag = 0;
148    }
149 }

 

转载于:https://www.cnblogs.com/sky1991/archive/2012/08/25/2656182.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring的依赖注入陷阱

Spring框架中有三种注入变量&#xff1a; 基于二传手的注射 基于构造函数的注入 基于现场的注入 这些机制中的每一种都有优点和缺点&#xff0c;并且不仅只有一种正确的方法。 例如现场注入&#xff1a; Autowired private FooBean fooBean;在生产代码中使用它通常不是最好…

jquery 操作css 选择器

.addClass()   为每个匹配的元素添加指定的样式类名   .addClass(className)     className 为每个匹配元素所有增加的一个或多个样式名   .addClass(function(index,currentClass))     函数返回一个或者多个用空格隔开&#xff0c; index 表示参数匹配中的索引…

vim设置

一、基本编辑功能1、复制、剪切和粘贴复制特定的某一段&#xff1a;把光标移到要复制的文本的头部&#xff0c;按下“v”&#xff0c;往后移动光标&#xff0c;光标所过之处的字符>都会高亮&#xff0c;移到欲复制文本的尾部后&#xff0c;按下“y”&#xff0c;高亮文本全部…

jquery表单属性筛选元素

$(":button") 选择所有按钮元素类型为按钮的元素。 等于$(input[type"button"]) $(":checkbox") 选择所有类型为复选框的元素。 等于$(input[type"checkbox"]) $(":checked") 选择所有勾选的元素。 $( "input:checked&…

Hamcrest Matchers的高级创建

介绍 上一次 &#xff0c;我讨论了Hamcrest Matcher是什么&#xff0c;如何使用以及如何制作。 在本文中&#xff0c;我将解释创建Hamcrest Matchers的更多高级步骤。 首先&#xff0c;我将分享如何使您的匹配器更易于类型安全&#xff0c;然后介绍无状态匹配器的一些技术&…

嵌入式成长轨迹37 【Zigbee项目】【CC2430基础实验】【自动闪烁】

最为简单的代码&#xff0c;只用到一个寄存器P1DIR。因为点亮的led灯&#xff08;p1.0和p1.1&#xff09;的管脚是p1的&#xff0c;要输出就得将这两个管脚设置为输出管脚。该寄存器用0~8对应1.0~1.8管脚。 1 //main.c2 #include <ioCC2430.h>3 4 #define uint unsigned …

博客园CodingLife模板样式优化

博客园CodingLife模板样式优化&#xff0c;小屏和大屏均做了优化&#xff0c;感兴趣的园友可以复制到你的页面定制CSS代码中&#xff0c; 源码地址&#xff1a;http://www.cnblogs.com/blog/customcss/334547.css 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

如何允许用户自定义UI

理念 利用JavafX / FXML的声明性设计模式&#xff0c;并允许用户仅通过使用例如SceneBuilder打开某个视图即可重新定制布局或添加新控件&#xff0c;甚至根据用户需要更改样式&#xff0c;从而无需任何编码即可自定义某个视图。 FXML文件 CSS基本上可以放置在通过URL可以到达的…

WPF控件和布局

WPF控件和布局&#xff0c;根据刘铁猛《深入浅出WPF》书籍讲解内容&#xff0c;主要记录控件和布局的原理&#xff0c;如果有不足的地方&#xff0c;请大牛们键盘下留情--轻喷&#xff01;如果还算有用&#xff0c;请给点动力&#xff0c;支持一把&#xff01; 一、WPF里的控件…

css背景图片定位

背景图默认平铺&#xff1a; background-repeat: no-repeat;/*不平铺*//*repeat-x;沿X轴平铺*//*repeat-x;沿Y轴平铺*/ 背景图片定位&#xff1a; background-position: 100px 30px;/* X轴 Y轴 *//* 20% 20%; 百分比的方式 *//* left|center|right top|center|bottom */ 背景中…

使用GZIP和压缩数据

抽象 我们都知道用zip或gzip压缩文件的含义。 但是在Java中使用压缩文件并不像您想的那样简单明了&#xff0c;尤其是当您不是直接使用文件而是压缩流数据时。 我们会去&#xff1a; 如何将字符串转换为压缩/压缩字节数组&#xff0c;反之亦然 创建用于读取和写入文件的实用程…

Oracle ——概述 Oracle 5 步调优方法论

http://www.toadworld.com/KNOWLEDGE/KnowledgeXpertforOracle/tabid/648/TopicID/OPS3/Default.aspx 对 Oracle 调优应该采取积极的态度。如果等到用户开始抱怨性能&#xff0c;才调优通常以为时已晚&#xff0c;即便是最有效的调优策略。性能问题确定和处理的时间越晚&#x…

js,jq.事件代理(事件委托)复习。

<ul id "lists"><li>列表1</li><li>列表2</li><li>列表3</li><li>列表4</li><li>列表5</li><li>列表6</li></ul>js委托&#xff1a; var lists document.getElementById(&qu…

整体服务器与微服务

介绍 刚开始时&#xff0c;由于要求简单&#xff0c;所以应用程序既简单又小。 随着时间要求和需求的增长&#xff0c;我们的应用程序变得越来越大&#xff0c;越来越复杂。 这导致将单片服务器开发和部署为一个单元。 在某种程度上&#xff0c;微服务可以通过简单的应用程序回…

NEXUS S安卓4.0/4.1 【完美】 ROOT教程

原文链接&#xff1a;http://bbs.gfan.com/android-3517082-1-1.html 进行bootloader解锁&#xff08;即使解锁&#xff0c;再上锁&#xff09;&#xff0c;会清除你手机上的【所有】数据&#xff08;包括内部的16G SD 存储&#xff09;&#xff0c;包括但不限于应用、设置、联…

CSS中的各种FC

什么是FC&#xff1f; Formatting Context&#xff0c;格式化上下文&#xff0c;指页面中一个渲染区域&#xff0c;拥有一套渲染规则&#xff0c;它决定了其子元素如何定位&#xff0c;以及与其他元素的相互关系和作用。 BFC 什么是BFC Block Formatting Context&#xff0…

HDU 2647 Reward 拓扑排序

http://acm.hdu.edu.cn/showproblem.php?pid2647 题意&#xff1a; 输入N和M代表N个人和M组数据&#xff0c;M组数据中的A和B代表A的工资要比B的工资高&#xff0c;底薪是&#xff08;888元&#xff09;&#xff0c;问你这个老板至少要付 多少钱给这些员工&#xff0c;A比B工资…

EE Servlet 3:简单表单处理

对于大多数Web开发人员而言&#xff0c;Web应用程序中的表单处理就像小菜一碟。 如果我们无法捕获用户的输入并进行处理&#xff0c;将不会有太大用处。 因此&#xff0c;我在servlet3示例中包含了一个简单的FormServlet &#xff0c;该示例演示了您可能会遇到的很少使用的表单…

编写高质量的代码--基础:结构和样式,行为的分离

实现高质量的代码需要我们在结构和样式&#xff0c;行为的分离的基础上做到&#xff1a;精简&#xff0c;重用&#xff0c;有序。精简&#xff1a;尽量减小文件的大小&#xff0c;提高页面加载速度。重用&#xff1a;提高代码的重用性&#xff0c;减少冗余代码&#xff0c;提高…

提高Java的锁性能

Plumbr是唯一通过解释应用程序性能数据来自动检测Java性能问题的根本原因的解决方案。 几个月前&#xff0c;我们在Plumbr中引入了锁定线程检测之后&#xff0c;我们开始收到类似于“嘿&#xff0c;太好了&#xff0c;现在我知道是什么导致了性能问题&#xff0c;但是现在应该…