《基于stm32--μcos-ii贪吃蛇的设计课程设计论文2015年7月》由会员分享,可在线阅读,更多相关《基于stm32--μcos-ii贪吃蛇的设计课程设计论文2015年7月(36页珍藏版)》请在金锄头文库上搜索。
1、邯郸学院课程设计邯郸学院课程设计题题 目目 基于 STM32-C/OS-II 贪吃蛇的设计学学 生生 20120441032028 解斐20120441032025 朱利昭20120441032002 徐雷指导教师指导教师 张志来 讲师年年 级级 2012 级专专 业业 电子信息工程二级学院二级学院 (系、部)(系、部) 信息工程学院邯郸学院信息工程学院(系、部)2015 年 7 月基于 STM32-C/OS-II 贪吃蛇的设计摘 要进入新世纪的 TFT 液晶显示屏的技术和产业都取得了长足的发展,作为重要的现代信息,发布媒体之一 TFT 液晶显示屏在证券交易、金融、交通、体育、广告等领域被广泛
2、的应用。伴随社会化信息的推进,TFT 液晶屏技术也在不断地推陈出新,应用领域愈加广泛。现基于 STM32 的 TFT 液晶显示可以更好的满足各种需求,也更便于操作和实现。基于STM32 在 TFT 液晶屏幕上可显示文本及图形,包括汉字和时钟显示。关键词:关键词:TFT 液晶显示 STM32 开发板 C/OS-II 贪吃蛇目 录摘 要.1前 言.31 背景介绍.31.1 选题背景 .31.2 MiniSTM32 开发板介绍.32 系统硬件设计.42.1 开发板简介 .42.2 LED 灯 .62.3 按键 .102.4 TFTLCD 模块 .103 系统软件设计.143.1 LED 驱动.143
3、.2 按键驱动 .143.3 TFT-LCD 驱动.163.4 贪吃蛇实现 C 语言代码 .183.5 uC/OS-II 软件设计.23结论.27参考文献.28前前 言言目前已有超过 85的无线通信设备采用了 ARM 技术,ARM 以其高性能和低成本,在该领域的地位日益巩固。ARM 在此方面的应用如:手提式计算机、移动电话、PDA 等。 随着宽带技术的推广,采用 ARM 技术的 ADSL 芯片正逐步获得竞争优势。此外,ARM 在语音及视频处理上进行了优化,并获得广泛支持。UC/OS-II 由 Micrium 公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器
4、,微控制器和数字处理芯片(已经移植到超过 100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。 UC/OS-II 已经通过联邦航空局(FAA)商用航行器认证,符合航空无线电技术委员会(RTCA)DO-178B 标准。1 背景介绍1.1 选题背景随着信息技术的飞速发展,形式多样的数字化产品已经开始成为继 PC 机后的信息处理工具,在这种数字化潮流下,嵌入式系统已成为当前研究和应用的热点之一,嵌入式手持设备的视图多媒体应用也越来越广泛。由于嵌入式系统的应用要求及成本因素决定了嵌入式系统在系统资源, 包括硬件资源和软件资源方面都是非常精简和高效的。1.2 Mi
5、niSTM32 开发板介绍MiniSTM32 设计精良,结构小巧!板子的设计充分考虑了成本与功能这两个矛盾面,再结合实际使用的经验及 STM32 的特点,最终确定了这样的设计。STM32 的优异性体现在如下几个方面: 以 8 位机的价格,得到 32 位机,是 STM32 最大的优势。 STM32 拥有包括:FSMC、TIMER、SPI、IIC、USB、CAN、IIS、SDIO、ADC、DAC、RTC、DMA 等众多外设及功能,具有极高的集成度。 STM32 仅 M3 内核就拥有 F100、F101、F102、F103、F105、F107、F207、F217 等 8 个系列上百种型号,具有 QF
6、N、LQFP、BGA 等封装可供选择。同时 STM32 还推出了 STM32L 和 STM32W 等超低功耗和无线应用型的 M3 芯片。 84 个中断,16 级可编程优先级,并且所有的引脚都可以作为中断输入。STM32 各个外设都有自己的独立时钟开关,可以通过关闭相应外设的时钟来降低功耗。STM32 的开发不需要昂贵的仿真器,只需要一个串口即可下载代码,并且支持 SWD 和 JTAG 两种调试口。SWD 调试可以为你的设计带来跟多的方便,只需要 2 个 IO 口,即可实现仿真调试。2 系统硬件设计2.1 开发板简介ALIENTEK MiniSTM32 开发板是一款迷你型的 STM32F103
7、开发板,小巧而不小气,简约而不简单。该开发板自推出以来,深得广大 STM32 学习者喜爱,总销量超过 1.6W 套。目前最新版本为 V3.0,最新 MiniSTM32 开发板资源图如图 所示:ALIENTEK MiniSTM32 开发板板载资源如下: CPU:STM32F103RBT6,LQFP64,FLASH:128K,SRAM:20K; 1 个标准的 JTAG/SWD 调试下载口 1 个电源指示灯(蓝色) 2 个状态指示灯(DS0:红色,DS1:绿色) 1 个红外接收头,配备一款小巧的红外遥控器 1 个 IIC 接口的 EEPROM 芯片,24C02,容量 256 字节 1 个 SPI F
8、LASH 芯片,W25X16,容量为 2M 字节 1 个 DS18B20/DS1820 温度传感器预留接口 1 个标准的 2.4/2.8 寸 LCD 接口,支持触摸屏 1 个 OLED 模块接口 1 个 USB 串口,可用于程序下载和代码调试 1 个 USB SLAVE 接口,用于 USB 通信 1 个 SD 卡接口 1 个 PS/2 接口,可外接鼠标、键盘 1 组 5V 电源供应/接入口 1 组 3.3V 电源供应/接入口 1 个启动模式选择配置接口 2 个 2.4G 无线通信接口(24L01 和 JF24C) 1 个 RTC 后备电池座,并带电池 1 个复位按钮,可用于复位 MCU 和 L
9、CD 3 个功能按钮,其中 WK_UP 兼具唤醒功能 1 个电源开关,控制整个板的电源 3.3V 与 5V 电源 TVS 保护,有效防止烧坏芯片。 独创的一键下载功能 除晶振占用的 IO 口外,其余所有 IO 口全部引出,其中 GPIOA 和 GPIOB 按顺序引出,整个板子尺寸为 8cm*10cm*2cm 板上除晶振外的所有的 IO 口全部引出,特别还有 GPIOA 和 GPIOB 的 IO 口是按顺序引出的,可以极大的方便大家扩展及使用,另外板载独特的一键下载功能,避免了频繁设置 B0、B1 带来的麻烦,直接在电脑上一键下载。 板载十多种外设及接口,可以充分挖掘 STM32 的潜质。沉金
10、PCB+全新优质元器件+定制全铜镀金排针/排座+电源 TVS 保护,坚若磐石。各个接口都有丝印标注,使用起来一目了然;接口位置设计安排合理,方便顺手。资源搭配合理,物尽其用。2.2 LED 灯 ALIENTEK MiniSTM32 开发板板载了 2 个 LED,DS0 和 DS1, STM32 的 IO 口可以由软件配置成 8 种模式:1、输入浮空2、输入上拉3、输入下拉4、模拟输入5、开漏输出6、推挽输出7、推挽式复用功能8、开漏复用功能每个 IO 口可以自由编程,单 IO 口寄存器必须要按 32 位字被访问。STM32 的很多 IO口都是 5V 兼容的,这些 IO 口在与 5V 电平的外设
11、连接的时候很有优势,具体哪些 IO 口是 5V 兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level 标 FT 的就是 5V电平兼容的)。STM32 的每个 IO 端口都有 7 个寄存器来控制。他们分别是:配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH;2 个 32 位的数据寄存器 IDR 和 ODR;1 个 32 位的置位/复位寄存器 BSRR;一个 16 位的复位寄存器 BRR;1 个 32 位的锁存寄存器 LCKR;这里我们仅介绍常用的几个寄存器,我们常用的 IO 端口寄存器只有 4 个:CRL、CRH、IDR、ODR。CRL 和 CRH 控制着每个 IO
12、 口的模式及输出速率。端口低配置寄存器 CRL 的描述,如下图所示:该寄存器的复位值为 0X4444 4444,从上图可以看到,复位值其实就是配置端口为浮空输入模式。从上图还可以得出:STM32 的 CRL 控制着每个 IO 端口(AG)的低 8 位的模式。每个 IO 端口的位占用 CRL 的 4 个位,高两位为 CNF,低两位为 MODE。这里我们可以记住几个常用的配置,比如 0X0 表示模拟输入模式(ADC 用)、0X3 表示推挽输出模式(做输出口用,50M 速率)、0X8 表示上/下拉输入模式(做输入口用)、0XB 表示复用输出(使用 IO 口的第二功能,50M 速率)。CRH 的作用和
13、 CRL 完全一样,只是 CRL 控制的是低 8 位输出口,而 CRH 控制的是高 8位输出口。IDR 是一个端口输入数据寄存器,只用了低 16 位。该寄存器为只读寄存器,并且只能以 16 位的形式读出。该寄存器各位的描述如下图所示:要想知道某个 IO 口的状态,你只要读这个寄存器,再看某个位的状态就可以了。ODR 是一个端口输出数据寄存器,也只用了低 16 位。该寄存器为可读写,从该寄存器读出来的数据可以用于判断当前 IO 口的输出状态。而向该寄存器写数据,则可以控制某个IO 口的输出电平。该寄存器的各位描述如下图所示:ALIENTEK MiniSTM32 开发板板载的 LED 硬件连接:2.3 按键 ALIENTEK MiniSTM32 开发板总共有 3 个按键,其原理图如下: KEY0 和 KEY1 用作普通按键输入,分别连接在 PC5 和 PA15 上,其中 PA15 和 JTDI 共用了,所