第九周项目3.3 输出点阵3

/*
 * Copyright (c) 2014, 烟台大学计算机学院
 * All rights reserved.
 * 文件名称:test.cpp
 * 作    者:  王坤
 * 完成日期:2014年 10 月25日
 * 版 本 号:v1.0
 *
 * 问题描述:输出有规律的点阵。
 * 输入描述:无。
 * 程序输出: 有规律的点阵。

 */
#include <iostream>

using namespace std;

int main()
{
    cout <<"输出点阵3"<< endl;
    int i,j,k,l=0;
    for(i=0;i<=5;++i)
        {
            for(j=5;j>=i;j--)
                cout<<" ";
            for(k=0;k<=i+l;k++)
            cout<<"*";
            l++;
            cout<<endl;
        }
    return 0;
}

知识点总结:貌似和3.2差不多啊……

学习心得:可以借鉴某些已经有的代码稍加改动即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
了解,您的需求是通过msp430f5529LP单片机,LCD1602 3.3V点阵式LCD液晶显示和DHT11温湿度传感器实现温湿度显示。接下来我将为您提供一个简单的实现方式: 1. 硬件连接 将DHT11传感器的VCC引脚连接到msp430f5529LP单片机的VCC引脚,将DHT11传感器的GND引脚连接到msp430f5529LP单片机的GND引脚,将DHT11传感器的Data引脚连接到msp430f5529LP单片机的P1.3引脚。将LCD1602液晶显示器的VCC引脚连接到msp430f5529LP单片机的VCC引脚,将LCD1602液晶显示器的GND引脚连接到msp430f5529LP单片机的GND引脚,将LCD1602液晶显示器的RS引脚连接到msp430f5529LP单片机的P1.4引脚,将LCD1602液晶显示器的EN引脚连接到msp430f5529LP单片机的P1.5引脚,将LCD1602液晶显示器的D4~D7引脚分别连接到msp430f5529LP单片机的P1.0~P1.3引脚。 2. 编写程序 使用msp430f5529LP单片机的MSP430G2553.h库文件,编写一个程序,包括初始化LCD1602液晶显示器、读取DHT11传感器数据和在LCD1602液晶显示器上显示温湿度数据等功能。程序流程如下: - 初始化LCD1602液晶显示器。 - 通过P1.3引脚读取DHT11传感器的数据。 - 将读取到的温湿度数据进行处理。 - 在LCD1602液晶显示器上显示温湿度数据。 以下是一个简单的msp430f5529LP单片机读取DHT11传感器数据并在LCD1602液晶显示器上显示温湿度数据的程序示例,您可以参考该示例进行修改和优化: ``` #include <msp430.h> #include "MSP430G2553.h" #define LCD1602_RS BIT4 #define LCD1602_EN BIT5 #define LCD1602_D4 BIT0 #define LCD1602_D5 BIT1 #define LCD1602_D6 BIT2 #define LCD1602_D7 BIT3 void delay_us(unsigned int us) { while(us--) { __delay_cycles(1); } } void delay_ms(unsigned int ms) { while(ms--) { __delay_cycles(1000); } } void LCD1602_WriteCmd(unsigned char cmd) { P1OUT &= ~LCD1602_RS; P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= (cmd >> 4) & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= cmd & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; delay_ms(5); } void LCD1602_WriteData(unsigned char dat) { P1OUT |= LCD1602_RS; P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= (dat >> 4) & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; P1OUT &= 0xF0; P1OUT |= dat & 0x0F; P1OUT |= LCD1602_EN; delay_us(1); P1OUT &= ~LCD1602_EN; delay_us(100); } void LCD1602_Init() { P1DIR |= 0xFF; P1OUT &= 0x00; delay_ms(100); LCD1602_WriteCmd(0x28); LCD1602_WriteCmd(0x0C); LCD1602_WriteCmd(0x06); LCD1602_WriteCmd(0x01); delay_ms(2); } void DHT11_Start() { P1DIR |= BIT3; P1OUT &= ~BIT3; delay_ms(18); P1OUT |= BIT3; delay_us(1); P1DIR &= ~BIT3; delay_us(40); } unsigned char DHT11_Check() { unsigned char i; for(i = 0; i < 100; i++) { if((P1IN & BIT3) == 0) { delay_us(80); if((P1IN & BIT3) == 1) { return 1; } else { return 0; } } } return 0; } unsigned char DHT11_ReadBit() { unsigned char i; for(i = 0; i < 100; i++) { if((P1IN & BIT3) == 0) { delay_us(50); if((P1IN & BIT3) == 1) { return 1; } else { return 0; } } } return 0; } unsigned char DHT11_ReadByte() { unsigned char i, dat = 0; for(i = 0; i < 8; i++) { dat <<= 1; dat |= DHT11_ReadBit(); } return dat; } unsigned char DHT11_ReadData(unsigned char *dat) { unsigned char i; DHT11_Start(); if(DHT11_Check() == 0) { return 0; } for(i = 0; i < 5; i++) { dat[i] = DHT11_ReadByte(); } if(dat[4] != (dat[0] + dat[1] + dat[2] + dat[3])) { return 0; } return 1; } void main() { unsigned char dat[5]; unsigned char temp, humi; WDTCTL = WDTPW + WDTHOLD; LCD1602_Init(); while(1) { if(DHT11_ReadData(dat) == 1) { humi = dat[0]; temp = dat[2]; LCD1602_WriteCmd(0x80); LCD1602_WriteData('T'); LCD1602_WriteData(':'); LCD1602_WriteData(temp / 10 + '0'); LCD1602_WriteData(temp % 10 + '0'); LCD1602_WriteData('.'); LCD1602_WriteData(dat[3] + '0'); LCD1602_WriteData('C'); LCD1602_WriteCmd(0xC0); LCD1602_WriteData('H'); LCD1602_WriteData(':'); LCD1602_WriteData(humi / 10 + '0'); LCD1602_WriteData(humi % 10 + '0'); LCD1602_WriteData('.'); LCD1602_WriteData(dat[1] + '0'); LCD1602_WriteData('%'); } delay_ms(1000); } } ``` 该程序通过P1.3引脚读取DHT11传感器的数据,并将读取到的温湿度数据显示在LCD1602液晶显示器上。您可以根据具体需求进行修改和优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值