[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
[LaunchPad] 超声波测试,数码管显示相关推荐
- 超声波测距 c语言程序流程图,超声波测距程序(详细C语言数码管显示)
#include<reg52.h> //头文件 #include<intrins.h>// _nop_() 函数延时1US用 #include <stdio.h> ...
- 【 FPGA 】超声波测距小实验(四):数码管显示测距结果
上篇博文:测了回响脉冲的宽度为多少个10us,这篇博文要算出距离,且用数码管显示距离的十进制结果. 功能框图如下: . 距离计算: 还是先给出程序之后在简单解释吧. 顶层模块: / //工程硬件平台: ...
- LED计数电路,5输入按键编码器,7段数码管显示驱动集成为LED计数测试电路
LED计数电路: 5输入按键编码器: 7段数码管显示驱动真值表: 集成:
- 基于STM32的四位数码管显示编程
1.四位数码管的简单介绍 因为在学校做项目的时候使用到了数码管显示,所以就编写了一个基于SMT32的数码管显示程序.通过看手册知道这个四位数码管采用TM1637 驱动电路.内部有集成MCU数字电路接口 ...
- FPGA基础知识极简教程(9)七段数码管显示的Verilog简单设计
博文目录 写在前面 正文 七段数码管原理 七段数码管译码表 单个七段数码管显示verilog设计 多个数码管动态扫描显示 参考资料 交个朋友 写在前面 作为FPGA的基础知识教程怎么能少得了这个简单的 ...
- 四位共阳极数码管显示函数_Verilog笔记
github传送门(练习写的代码,约束文件,仿真文件) 文章目录 Vivado 基本流程 关于封装IP核和使用Block Design Verilog module / 模块 always块 组合逻辑 ...
- 四位共阳极数码管显示函数_【项目8-任务10-小组13】利用四位数码管实现动态扫描显示...
学习任务 1.四位数码管的电路结构与显示原理 (什么是位选.什么是段选.共阴与共阳的区别.显示4位数字,需要多少条口线?显示n位数字呢?) 2.Arduino直接连接四位数码管实现四位阿拉伯数字显示 ...
- 8255数码管显示0到9_汇编语言--键盘扫描及显示实验(含代码解释)
实验题目 将8255单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示.键盘采用4X4键盘,每个数码管显示值可为0-F共16个数. 实验具体内容如下:将键盘进行编号, ...
- arduino数码管显示0到9_少儿Python程序第十二讲:单片机控制数码管
本讲继续学习用Python控制单片机,并用单片机连接和控制其它硬件,具体目标是利用开发板控制四位数码管,显示指定的数字.实验效果如图12.1所示: 图12.1 单片机控制四位数码管显示数字 注意:请先 ...
最新文章
- 决策树 随机森林 xgboost_一文搞定XGboost 面试常见问题
- Http 状态码一览表
- 免费获取半年 Bitdefender Total Security 2014
- 关系型数据库全表扫描分片详解
- 包包各部位名称图解_品尝烤肉必备!日本和牛各部位名称中日翻译对照 点餐更轻松...
- virtio-fs: A Shared File System for Virtual Machines
- ajax、axios、fetch之间的详细区别以及优缺点
- undo歌词中文音译_undo的中文谐音歌词
- 对称密钥交换协议——实现在不安全的信道安全地传输密钥
- 开源自动化运维平台Spug
- 微信公众平台php开发包
- …… ᵇᵘᵗ ᵗʰᵃᵗ ʸᵒᵘ ˡᵒᵛᵉ ⁿᵒ ᵒⁿᵉ 【transshipment】
- 网贷逾期会有什么后果,又如何解决呢?
- 日期:将格林尼治时间(GMT)转化为北京时间
- [增强现实]Unity制作AR增强现实--茶壶(亲测)
- 北京大额股票配资 北京股票金融配资
- 微软计算机学院,微软亚洲研究院谢幸博士,秦涛博士访问计算机学院并做学术报告...
- 利用python进行数据分析数据集_《利用Python进行数据分析》终章·数据分析案例·学习笔记(二)...
- 2017全年Java书单整理
- cocos2dx 在android下的帧频设置问题
热门文章
- 钢笔墨水能否代替打印机墨水_LAMY钢笔应该如何选择墨水?
- oracle 插入出错_使用sqlca打印错误原因,ORACLE-Proc:SQLCA
- matlab 删除路径_MATLAB使用教程(一)—新手来看
- c语言输出每个数占10列宽,杭州师范大学C语言试题第1套介绍.doc
- python求阶乘之和_python计算阶乘前n项和
- 客制化键盘键位修改_可以用很漂亮形容的一把键盘,差一步就完美
- linux 运行java jar_linux运行jar包、查看jar包进程、停止jar包
- 什么是无线路由器网络协议?
- 【渝粤题库】陕西师范大学201981教育统计与测量 作业 (专升本、高起本)
- php 获取文件最后几行,php获取文件的最后N行数据