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

[LaunchPad] 超声波测试,数码管显示相关推荐

  1. 超声波测距 c语言程序流程图,超声波测距程序(详细C语言数码管显示)

    #include<reg52.h> //头文件 #include<intrins.h>// _nop_() 函数延时1US用 #include <stdio.h> ...

  2. 【 FPGA 】超声波测距小实验(四):数码管显示测距结果

    上篇博文:测了回响脉冲的宽度为多少个10us,这篇博文要算出距离,且用数码管显示距离的十进制结果. 功能框图如下: . 距离计算: 还是先给出程序之后在简单解释吧. 顶层模块: / //工程硬件平台: ...

  3. LED计数电路,5输入按键编码器,7段数码管显示驱动集成为LED计数测试电路

    LED计数电路: 5输入按键编码器: 7段数码管显示驱动真值表: 集成:

  4. 基于STM32的四位数码管显示编程

    1.四位数码管的简单介绍 因为在学校做项目的时候使用到了数码管显示,所以就编写了一个基于SMT32的数码管显示程序.通过看手册知道这个四位数码管采用TM1637 驱动电路.内部有集成MCU数字电路接口 ...

  5. FPGA基础知识极简教程(9)七段数码管显示的Verilog简单设计

    博文目录 写在前面 正文 七段数码管原理 七段数码管译码表 单个七段数码管显示verilog设计 多个数码管动态扫描显示 参考资料 交个朋友 写在前面 作为FPGA的基础知识教程怎么能少得了这个简单的 ...

  6. 四位共阳极数码管显示函数_Verilog笔记

    github传送门(练习写的代码,约束文件,仿真文件) 文章目录 Vivado 基本流程 关于封装IP核和使用Block Design Verilog module / 模块 always块 组合逻辑 ...

  7. 四位共阳极数码管显示函数_【项目8-任务10-小组13】利用四位数码管实现动态扫描显示...

    学习任务 1.四位数码管的电路结构与显示原理 (什么是位选.什么是段选.共阴与共阳的区别.显示4位数字,需要多少条口线?显示n位数字呢?) 2.Arduino直接连接四位数码管实现四位阿拉伯数字显示 ...

  8. 8255数码管显示0到9_汇编语言--键盘扫描及显示实验(含代码解释)

    实验题目 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示.键盘采用4X4键盘,每个数码管显示值可为0-F共16个数. 实验具体内容如下:将键盘进行编号, ...

  9. arduino数码管显示0到9_少儿Python程序第十二讲:单片机控制数码管

    本讲继续学习用Python控制单片机,并用单片机连接和控制其它硬件,具体目标是利用开发板控制四位数码管,显示指定的数字.实验效果如图12.1所示: 图12.1 单片机控制四位数码管显示数字 注意:请先 ...

最新文章

  1. 决策树 随机森林 xgboost_一文搞定XGboost 面试常见问题
  2. Http 状态码一览表
  3. 免费获取半年 Bitdefender Total Security 2014
  4. 关系型数据库全表扫描分片详解
  5. 包包各部位名称图解_品尝烤肉必备!日本和牛各部位名称中日翻译对照 点餐更轻松...
  6. virtio-fs: A Shared File System for Virtual Machines
  7. ajax、axios、fetch之间的详细区别以及优缺点
  8. undo歌词中文音译_undo的中文谐音歌词
  9. 对称密钥交换协议——实现在不安全的信道安全地传输密钥
  10. 开源自动化运维平台Spug
  11. 微信公众平台php开发包
  12. …… ᵇᵘᵗ ᵗʰᵃᵗ ʸᵒᵘ ˡᵒᵛᵉ ⁿᵒ ᵒⁿᵉ 【transshipment】
  13. 网贷逾期会有什么后果,又如何解决呢?
  14. 日期:将格林尼治时间(GMT)转化为北京时间
  15. [增强现实]Unity制作AR增强现实--茶壶(亲测)
  16. 北京大额股票配资 北京股票金融配资
  17. 微软计算机学院,微软亚洲研究院谢幸博士,秦涛博士访问计算机学院并做学术报告...
  18. 利用python进行数据分析数据集_《利用Python进行数据分析》终章·数据分析案例·学习笔记(二)...
  19. 2017全年Java书单整理
  20. cocos2dx 在android下的帧频设置问题

热门文章

  1. 钢笔墨水能否代替打印机墨水_LAMY钢笔应该如何选择墨水?
  2. oracle 插入出错_使用sqlca打印错误原因,ORACLE-Proc:SQLCA
  3. matlab 删除路径_MATLAB使用教程(一)—新手来看
  4. c语言输出每个数占10列宽,杭州师范大学C语言试题第1套介绍.doc
  5. python求阶乘之和_python计算阶乘前n项和
  6. 客制化键盘键位修改_可以用很漂亮形容的一把键盘,差一步就完美
  7. linux 运行java jar_linux运行jar包、查看jar包进程、停止jar包
  8. 什么是无线路由器网络协议?
  9. 【渝粤题库】陕西师范大学201981教育统计与测量 作业 (专升本、高起本)
  10. php 获取文件最后几行,php获取文件的最后N行数据