2021蓝桥杯单片机国信长天模拟测试题:硬件设计与功能实现

版权申诉
0 下载量 2 浏览量 更新于2024-09-10 收藏 165KB DOCX 举报
本次提供的十二届蓝桥杯单片机国信长天模拟测试题聚焦于单片机应用实践,旨在考察参赛者的硬件配置、程序设计和调试能力。整个测试分为客观试题和程序设计试题两部分,总分100分。 **客观试题(30分)** 这部分主要考核理论知识的理解,包括但不限于对单片机内部振荡器频率设置(12MHz)、键盘工作模式(BTN按键模式)以及扩展方式配置(IO模式)的掌握。考生需要熟悉竞赛板的正确配置,并确保作品符合这些硬件要求,否则可能被扣分或直接评为零分。 **程序设计试题(70分)** 这部分是核心内容,要求参赛者使用国信长天单片机竞赛实训平台进行程序设计和调试,主要功能包括: 1. **测量电压**:利用PCF8591芯片采集AIN3(RB2)和AIN1通道的电压,实现电压的实时测量。 2. **显示与参数界面**:通过数码管展示数据和参数,分别有数据界面和参数界面,提供清晰易读的界面切换和参数设置功能。 3. **状态指示**:通过LED指示灯实现状态提示,保证实时性和响应性。 4. **性能要求**:强调数据刷新、采样时间和界面切换的时间限制,以体现高效性和用户体验。 **硬件框图和功能要求**: 1. **硬件框图**:提供了一个基础的硬件结构示意图,帮助选手理解整体电路布局。 2. **功能要求**:详细列出了各项功能的具体实现细节,如电压单位、按键功能的定义(S4-S7)以及功能之间的交互规则。 在整个程序设计过程中,参赛者需确保: - 生成的.hex文件命名正确且只包含必要的程序文件,避免提交无关文件。 - 使用Keil编译器生成的.hex文件,保存在指定的输出文件夹。 - 遵循严格的硬件配置要求,否则可能影响作品评分。 总结来说,这个模拟测试题着重考察的是参赛者的单片机硬件操作技能、编程基础、程序调试能力以及对实际应用场景的理解。成功完成这个任务不仅需要扎实的理论知识,还需要良好的实践操作和问题解决能力。

#encoding:gbk import pandas as pd import numpy as np import talib import datetime import time import sys sys.path.append(r'D:\国信\国信iQuant策略交易平台\bin.x64\Lib\site-packages') import pymysql stocklist = ['002587.SZ', '300548.SZ', '301046.SZ', '001287.SZ', '300052.SZ', '300603.SZ', '300926.SZ', '300605.SZ', '300826.SZ', '301049.SZ'] def init(ContextInfo): ContextInfo.accID = "410001212417" #str(account) 交易帐号 ContextInfo.buy = True ContextInfo.sell = False today = datetime.datetime.now().strftime('%Y-%m-%d') #定义时间 order_time = today + ' 19:06:30' #定义时间 买股票 ContextInfo.run_time("myHandlebar", '1nDay', order_time, "SZ") #一天执行一次定义的myHandlebar def myHandlebar(ContextInfo): try: db = pymysql.connect(host='127.0.0.1', user='user', password='123456', db='python') print('数据库连接成功') except pymysql.Error as e: print('数据库连接失败') def get_stock_data(stock): G1 = ContextInfo.get_full_tick([stock]) # 获取分笔数据 G2 = [stock, G1[stock]['lastPrice'], G1[stock]['lastClose'], G1[stock]['pvolume']] # 最新 收盘 成交量 G3 = ContextInfo.get_last_volume(stock) # 总流通股 G4 = ContextInfo.get_instrumentdetail(stock) # 财表 G5 = [G4['TotalVolumn']] # 总股本 S1 = [G2[1] / G2[2] * 100 - 100] #涨幅 S2 = [G2[3] / G3 * 100] #换手率 S3 = [G2[1] * item for item in G5] #总市值 return [S1, S2, S3] stock_data = {} for stock in stocklist: stock_data[stock] = get_stock_data(stock) print(stock_data) 我打代码是这样,打印出来的结果是:{'002587.SZ': [[1.0479041916167802], [1.9914331748339686], [4397895000.0]], '300548.SZ': [[-3.7646314457450103], [9.90358201249419], [8700728400.0]], '301046.SZ': [[1.8993668777074362], [2.722894468951476], [4577520200.0]], '001287.SZ': [[0.9848484848484986], [4.357778802843653], [20258934000.0]], '300052.SZ': [[0.16330974414806576], [1.3332567665862716], [4818040000.000001]], '300603.SZ': [[0.3496503496503607], [1.4677953941892266], [5335789200.0]], '300926.SZ': [[-0.25839793281653556], [6.75514802163393], [6457471200.0]], '300605.SZ': [[-0.13888888888888573], [1.495405645304456], [2364934800.0]], '300826.SZ': [[8.338480543545373], [15.573514174701398], [2553824000.0]], '301049.SZ': [[-8.936698386429455], [19.581253894080998], [2074442500.0000002]]},在这代码的基础上,帮我把其中的'002587.SZ'对应的数值打印出来

2023-07-25 上传