当前位置:首页 > 单片机 > 单片机
[导读]1 #include "msp430g2553.h"23 void sendChar(unsigned char c)4 {5 while(!(IFG2&UCA0TXIFG));6 UCA0TXBUF=c;7 }89 void sendStr(unsigned char *s)10 {11 while(*s!='\\0')12 {13 sendChar(

1 #include "msp430g2553.h"

2

3 void sendChar(unsigned char c)

4 {

5 while(!(IFG2&UCA0TXIFG));

6 UCA0TXBUF=c;

7 }

8

9 void sendStr(unsigned char *s)

10 {

11 while(*s!='')

12 {

13 sendChar(*s);

14 s++;

15 }

16 }

17

18 void main(void)

19

20 {

21

22 unsigned char i;

23 unsigned char temp;

24 unsigned long tempAverage;

25 unsigned long tempMeasured[8];

26

27 WDTCTL = WDTPW + WDTHOLD; // Stop WDT

28

29 BCSCTL1 = CALBC1_1MHZ; // Set DCO

30 DCOCTL = CALDCO_1MHZ;

31 BCSCTL2 &= ~(DIVS_3);

32

33

34 P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD

35 P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD

36

37 UCA0CTL1 |= UCSSEL_2; // SMCLK

38 UCA0BR0 = 104; // 1MHz 9600

39 UCA0BR1 = 0; // 1MHz 9600

40 UCA0MCTL = UCBRS0; // Modulation UCBRSx = 1

41 UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine**

42

43 //IE2 |= UCA0RXIE; // Enable USCI_A0 RX interrupt

44

45 ADC10CTL1 = INCH_10 + ADC10DIV_3; // Temp Sensor ADC10CLK/4 选择内部温度传感器通道,4分频

46 ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON ;

47 __delay_cycles(1000); // Wait for ADC Ref to settle

48 ADC10CTL0 |= ENC + ADC10SC;

49

50 _EINT();

51

52 sendStr("n======== LaunchPad 温度计=======n");

53

54 //__bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled

55

56

57 while(1)

58 {

59 if(i>7)

60 {

61 tempAverage=0;

62 for(;i>0;i--)

63 tempAverage+=tempMeasured[i-1];

64 tempAverage >>= 3;

65 temp=(unsigned char)( ((tempAverage - 630) * 761) / 1024 );

66 sendStr("n 华氏温度:");

67 sendChar(temp%100/10+48);

68 sendChar(temp%10+48);

69 sendStr(" | 摄氏温度:");

70 temp=(temp-32)*5/9;

71 sendChar(temp%100/10+48);

72 sendChar(temp%10+48);

73 sendChar('n');

74

75 }

76 else

77 {

78 ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start 抽样及转换

79 tempMeasured[i]=ADC10MEM;

80 i++;

81 }

82

83 __delay_cycles(100000);

84

85

86 }

87 }

88

89 // Echo back RXed character, confirm TX buffer is ready first

90 /*

91 #pragma vector=USCIAB0RX_VECTOR

92 __interrupt void USCI0RX_ISR(void)

93 {

94 while (!(IFG2&UCA0TXIFG)); // USCI_A0 TX buffer ready?

95 UCA0TXBUF = UCA0RXBUF; // TX -> RXed character

96 }

97

98 */


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

您是否想过如何设计一个具有高电磁兼容性(EMC)性能的精密温度测量系统?本文将讨论精密温度测量系统的设计考虑因素,以及如何在保持测量精度的同时提高系统的EMC性能。我们将以RTD温度测量为例介绍测试结果和数据分析,以便我...

关键字: ADI EMC 温度测量

以下内容中,小编将对热电阻安装要求以及热电阻采用二线制的优势的相关内容进行着重介绍和阐述,希望本文能帮您增进对热电阻的了解,和小编一起来看看吧。

关键字: 热电阻 二线制 温度测量

▼点击下方名片,关注公众号▼大家好,很高兴和各位一起分享我的第45篇原创文章,喜欢和支持我的工程师,欢迎给我点赞、收藏、分享。加微信[xyzn3333]与作者沟通交流,免费获取更多单片机与嵌入式的海量电子资料。欢迎关注【...

关键字: 串口发送

摘要:为了更好地发挥随钻测井仪检测数据的真实性和使用灵活性等优点,文中基于Actel公司的APA075FPGA数据采集和传输系统所涉及到的AD数据采集、FPGA数据缓存、FPGA中数据的串口发送三部分,在实验室自制的一块...

关键字: 随钻井径检测 AD数据采集 FPGA 串口发送

摘要:基于美国DALLAS公司推出的数字温度传感器DS18B20,给出了一个温度测量与显示系统的设计方法。该系统由51单片机AT89C52控制,并由8位数码管显示实时温度,通过该系统可设置温度上限与下限,以便在温度超过限...

关键字: 单片机 AT89C52 DS18B20 温度测量

大家好,我是张巧龙,本文介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法;之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下,提高系统的响应速度。一种可1.简介...

关键字: 串口发送

摘 要:介绍了单片无线收发器nRF2401的主要特点及工作模式。给出了利用DS18B20数字温度传感器、AT- megal6和nRF2401实现无线分布式温度测量系统的设计方法,同时给出了系统的硬件结构以及无线收发和温度...

关键字: nRF2401 DS18B20 无线通信 温度测量

摘 要:提出以STM32F103单片机、DS18B20温度传感器、上位机温度显示组成的温度采集系统,阐述了整个系统的硬件构成、软件设计等。最终结果表明,基于CAN总线的温度采集系统具有结构简易,稳定可靠的特点。

关键字: 关键词 CAN总线 温度测量 STM32F103单片机 DS18B20温度传感器

无刷DC电机(BLDC)在传统上被看作高端DC电机类型,通常是为具有高性能或高效率要求的系统准备的。但随着电机驱动系统集成度变得越来越高且控制解决方案现成可用性变得越来越强,系统设计人员发现推行

关键字: launchpad 无刷电机 电源轨

(文章来源:仪器仪表网) 红外测温仪由光学系统,光电探测器,信号放大器及信号处理。显示输出等部分组成。光学系统汇聚其视场内的目标红外辐射能量,红外能量聚焦在光电探测器上并转变为相应的电信

关键字: 红外测温仪 测量温度 配电 温度测量
关闭
关闭