




免费预览已结束,剩余37页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文) 基于单片机、基于单片机、tfttft 触摸屏与触摸屏与 usbusb 通信的简易文本阅读器设计通信的简易文本阅读器设计 摘摘 要要 随着 21 世纪电子技术飞速的发展,人们对电子产品的可视性与简单 的操作性要求越来越高,其中电子产品中 tft 触摸屏与即插即用的 usb 接 口的使用也越来越普遍,各类产品原来的键盘输入发展成了现在的触摸手 写输入,以前的串口收发方式也随着 usb 技术的不断普及,被得到了个很 好的代替。 本文介绍的 tft 触摸屏与 usb 通信的简易文本阅读器系统使用 st 公 司推出的基于 arm 内核的 32 位微控制器 stm32f107 为控制核心,通过 3.2 寸 tft 触摸作为显示和操作控制,并以 stm32f107 自带的 usb 接口通过软 件模拟串口与 pc 进行数据通信,以 24c32 对 pc 发给 usb 的文本数据进行 存储,并通过一个 3.2 寸的 tft 触摸屏显示输出 24c32 中存储的文本数据, 同时还可通过触摸屏对系统进行操作控制。 关键字:关键字:控制模块;jtag 仿真调试;tft 触摸屏;usb;存储模块 abstractabstract as the twenty-first century electronic technology rapid development, the people of electronic products and simple operation of the visibility of demand more and more, including electronic products of plug and play tft touch screen and the use of the usb interface are becoming more and more common, all kinds of products of the original keyboard input into the touch of now handwritten input, the previous serial transceiver way also along with the increasing popularity of usb technology, is a very good get instead. this paper introduces the tft touch screen and usb communication of simple text reader systems use st out based on arm kernel 32 bit micro-controller stm32f107 as control core, through the 3.2 inch tft touch as a display and operation control, and to bring their own stm32f107 the usb interface through a serial port and pc software simulation data communication, to 24c32 for the pc to usb text data storage, and through a 3.2 inch tft touch screen display output 24 c32 stored in the text data, and can also through the touch screen operation control of the system. keykey word:word: control module; jtag simulation commissioning; tft touch screen; usb; storage module 1 目录目录 目录目录1 第一章第一章 绪论绪论3 1.1 引言3 1.2 系统设计思路4 第二章第二章 基于单片机、基于单片机、tfttft 触摸屏与触摸屏与 usbusb 通信的简易文本阅读器论证与选择通信的简易文本阅读器论证与选择.6 2.1 控制模块的论证与选择6 2.2 仿真调试模块的选择7 2.3 稳压供电电路论证与选择7 2.4 usb 通信模块论证与选择.8 2.5 tft 触摸显示模块论证与选择.8 2.6 存储模块论证与选择9 第三章第三章 基于单片机、基于单片机、tfttft 触摸屏与触摸屏与 usbusb 通信的简易文本阅读器整体设计通信的简易文本阅读器整体设计.11 3.1 硬件电路的设计 11 3.1.1 系统总体框图11 3.1.2 控制模块11 3.1.3 稳压供电电路13 3.1.4 仿真调试模块14 3.1.5 usb 通信模块 .16 3.1.6 tft 触摸显示模块17 3.1.7 存储模块19 3.2 程序的设计 20 3.2.1 程序功能描述与设计思路20 3.2.2 程序流程图20 第四章第四章 基于单片机、基于单片机、tfttft 触摸屏与触摸屏与 usbusb 通信的简易文本阅读器调试通信的简易文本阅读器调试.24 4.1 调试方案 24 4.1.1 硬件调试24 4.1.2 软件仿真调试25 4.2 测试条件与仪器 26 4.3 测试结果及分析26 4.3.1 测试结果26 4.3.1 测试分析26 第五章第五章 基于单片机、基于单片机、tfttft 触摸屏与触摸屏与 usbusb 通信的简易文本阅读器总结与展望通信的简易文本阅读器总结与展望.27 5.1 设计总结 27 5.2 展望 28 参考文献:参考文献:29 致谢致谢30 附录附录 2 2:源程序(由于程序太多,以下只列出了部份驱动子程序。:源程序(由于程序太多,以下只列出了部份驱动子程序。 ).31 2 3 第一章第一章 绪论绪论 1.1 引言 随着电子产品设计技术的不断发展,电子产品的更新设计,尤 其是人机交互界面的设计日益趋向人性化,数据传输的高速化。显 示操作一体与通用高速数据接口在人们的生活中扮演着越来越重要 的角色,这主要体现在它的桥梁角色(bridging role)与人机界面 角色(man-machine interface role)中,其发展趋势在信息社会 中越来越重要。 显示器件分类有多种,但最常见的是按显示原理分类,即主动 发光显示和非主动发光显示。早期的主动发光显示器以显像管 (crt)显示器为主,但随着科技不断进步,各种显示技术如雨后春 笋般诞生,近来由于液晶显示器(lcd)具有轻薄短小、低耗电量、 无辐射危险,能显示复杂文字及图形、显示面积大小随意、平面直 角显示以及影像稳定不闪烁等优点,在近年来价格不断下跌的吸引 下,逐渐取代 crt 之主流地位,而得到广泛的应用。 而 lcd 触摸屏的发展也非常迅速,触摸屏(touch screen)又 称为“触控屏” 、 “触控面板” ,是一种可接收触头等输入讯号的感应 式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反 馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械 式的按钮面板,并借由液晶显示画面制造出生动的影音效果。 而对于通用高速数据接口,在技术的飞速发展的当今社会, usb 接口的表现非常突出。usb ,是英文 universal serial bus(通 4 用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线 标准,用于规范电脑与外部设备的连接和通讯。现在使用最为普遍 的是 usb2.0:480mbps(60mb/s)高速(high-speed)接口。 近年来,随着单片机技术的飞速发展,涌现了许多性能优良的 单片机品种,stm 系列单片机就是其中之一。在工程应用中, stm32f107 可以满足设计要求。为此,本文给出了一种基于 stm32f107 实现 ft 触摸屏与 usb 通信的简易文本阅读器设计方案。 1.2 系统设计思路 整个系统按设计要求,要做到usb通信、tft触摸屏和数据存储, 而目前我们常用的51芯片要做到这几点难度很大。而随着技术的发 展,各种种类和型号的单片机也越来越多,应用的领域也越来广, 综合考虑,要选一个在速度上和在usb应用上都比较简单、实用的单 机,来作为主控制器。 本设计选用了一个st(意法半导体)公司推出的基于arm内核 cortexm3的32位微控制器,stm32f107。电路主要由控制模块、 usb通信模块、tft触摸显示模块、存储模块这四大功能模块组成。 由于stm32f107有着丰富的片上资源,可直接将usb接口从芯片引出, 其spi总线接口可接收触摸屏数据,iic总线接口可方便的读写 eeprom存储器,大大简化了硬件电路;而其极高的运行速度也让tft 触摸屏能做出更好的人机界面,操作更加直观、方便。 5 根据设计要求: 设计一个基于单片机,以tft触摸屏为显示并操作,可通过usb 接口与电脑进行通信,能打开常用的txt文本,并能存储和读出文本 文件。 6 第二章 基于单片机、tft 触摸屏与 usb 通信的简易文本阅读器 论证与选择 本系统主要由控制模块、稳压供电电路、仿真调试模块、usb 通信模块、tft 触摸显示模块和存储模块等组成,下面分别论证这 几个模块的选择。 2.1 控制模块的论证与选择 方案一:采用 at89s52 系单片机为控制芯片,at89s52 单片机 是一种低功耗 cmos 8 位微控制器,具有 8k 在系统可编程 flash 存 储器。使用 atmel 公司高密度非易失性存储器技术制造,与工业 80c51 产品指令和引脚完全兼容。片上 flash 允许程序存储器在系 统可编程,亦适于常规编程器。但 at89s52 片的硬件资源较少,运 行速度慢,对驱动 usb 与 tft 这样的高速模块比较困难。 方案二:采用 stm32f107 单片机,stm32 是 st(意法半导体)公 司推出的基于 arm 内核 cortexm3 的 32 位微控制器系列。 cortexm3 内核是为低功耗和价格敏感的应用而专门设计的,具有 突出的能效比和处理速度。stm32f107 是其推出全新 stm32 互连型 (connectivity)系列微控制器中的一款性能较强产品,此芯片集 成了各种高性能工业标准接口,包括 10 个定时器、两个 12 位 1- msample/s ad(模数转换器) (快速交替模式下 2m sample/s)、两个 12 位 da(数模转换器)、两个 i2c 接口、五个 usart 接口和三个 spi 端口和高质量数字音频接口 iis,另外 stm32f107 拥有全速 usb(otg)接口,两路 can2.0b 接口,以及以太网 10/100 mac 模块。 7 其中 stm32f107 自带的 i2c 接口,spi 端口和全速 usb(otg)接口 都能被我们的系统设计所使用。能大大简化硬件电路和程序的设计。 综合以上两种方案,选择方案二。 2.2 仿真调试模块的选择 一、jtag 仿真调试:iar j-link 是 iar 为支持仿真 arm 内核芯 片推出基于 jtag 方式的仿真器。j-link 支持 arm7、arm9、arm11、cortex-m3 核心,支持 ads、iar、keil 开发 环境。电源为 usb 供电,整机电流 #include “stm32f10x_exti.h“ extern void lcd_setpoint(uint8_t xpos, uint16_t ypos, uint16_t color); / a/d 通道选择命令字和工作寄存器 #definechx 0x90/0x90 /通道 y+的选择控制字/0x94 #definechy 0xd0/0xd0/通道 x+的选择控制字/0xd4 /#define ads7843_wrcmd spi1_sendbyte /#define ads7843_read spi1_recvbyte void ads7843_cs_config(void) 33 gpio_inittypedef gpio_initstructure; /* enable gpiob, gpioc and afio clock */ rcc_apb2periphclockcmd(rcc_ads7843_cs , enable); /rcc_apb2periph_afio /* leds pins configuration */ gpio_initstructure.gpio_pin = gpio_ads7843_cs; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_out_pp; gpio_init(gpio_ads7843_cs_port, static void ads7843_int_config(void) gpio_inittypedef gpio_initstructure; /* enable gpiob, gpioc and afio clock */ rcc_apb2periphclockcmd(rcc_ads7843_int , enable); /rcc_apb2periph_afio /* leds pins configuration */ gpio_initstructure.gpio_pin = gpio_ads7843_int; /gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_ipu; gpio_init(gpio_ads7843_int_port, static void ads7843_int_exit_init(void) exti_inittypedef exti_initstructure; /* connect button exti line to button gpio pin */ gpio_extilineconfig(gpio_ads7843_exti_port_source, gpio_ads7843_exti_pin_source); /* configure button exti line */ exti_initstructure.exti_line = gpio_ads7843_exti_line; exti_initstructure.exti_mode = exti_mode_interrupt; exti_initstructure.exti_trigger = exti_trigger_falling; exti_initstructure.exti_linecmd = enable; exti_init( /* * function name : interruptconfig * description : configures the used irq channels and sets their priority.nvic_configuration * input : none * output : none * return : none */ static void ads7843_interruptconfig(void) nvic_inittypedef nvic_initstructure; /* set the vector table base address at 0x08000000 */ nvic_setvectortable(nvic_vecttab_flash, 0x0000); /* configure the priority group to 2 bits */ nvic_prioritygroupconfig(nvic_prioritygroup_2); /* enable the exti5 interrupt */ nvic_initstructure.nvic_irqchannel = gpio_ads7843_exti_irqn; nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; nvic_initstructure.nvic_irqchannelsubpriority = 0; nvic_initstructure.nvic_irqchannelcmd = enable; 34 nvic_init( static void lcd_big_point(u16 xscreen, u16 yscreen) lcd_setpoint(xscreen, yscreen, 0xf81f);/magenta lcd_setpoint(xscreen-1, yscreen, 0xf81f); lcd_setpoint(xscreen+1, yscreen, 0xf81f); lcd_setpoint(xscreen, yscreen-1, 0xf81f); lcd_setpoint(xscreen, yscreen+1, 0xf81f); lcd_setpoint(xscreen-1, yscreen-1, 0xf81f); lcd_setpoint(xscreen-1, yscreen+1, 0xf81f); lcd_setpoint(xscreen+1, yscreen-1, 0xf81f); lcd_setpoint(xscreen+1, yscreen+1, 0xf81f); static void lcd_small_point(u16 xscreen, u16 yscreen) lcd_setpoint(xscreen, yscreen, 0xf81f);/magenta lcd_setpoint(xscreen-1, yscreen, 0xf81f); lcd_setpoint(xscreen-1, yscreen-1, 0xf81f); lcd_setpoint(xscreen, yscreen-1, 0xf81f); /*=*/ u16 _ad2y(u16 adx) /240 u16 sx=0; int r = adx - 200; r *= 240; sx=r / (4000 - 280); if (sx240) return 0; return sx; u16 _ad2x(u16 ady) /320 u16 sy=0; int r = ady - 260; r *= 320; sy=r/(3960 - 360); if (sy320) return 0; return sy; /*=*/ / a/d 通道选择命令字和工作寄存器 /#define chx 0x90 /通道 y+的选择控制字/0x94 /#define chy 0xd0/通道 x+的选择控制字/0xd4 /读 ads7843 的 io 控制口 /*=*/ void ads7843_init(void) ads7843_cs_config(); / 使能 lcd 35 ads7843_cs_high() ; / 关闭 lcd spi1_config(); spi1_init_for_byte(); spi1_mosi_high(); spi1_sck_low(); ads7843_int_config(); #if 0 ads7843_int_exit_init(); ads7843_interruptconfig(); #endif /*=*/ void spi1_config(void) gpio_inittypedef gpio_initstructure; / set as output push-pull - sck and mosi rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable); gpio_initstructure.gpio_pin = spi1_sck | spi1_mosi; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_out_pp; gpio_init(spi1_port, /spi_miso gpio_initstructure.gpio_pin = spi1_miso; gpio_initstructure.gpio_speed = gpio_speed_50mhz; gpio_initstructure.gpio_mode = gpio_mode_ipu; gpio_init(spi1_port, /*=*/ static void ads7843_spi_start( void ) ads7843_cs_high(); spi1_mosi_high(); spi1_sck_low(); ads7843_cs_low(); /芯片允许 /*=*/ static void spi_mosi(u8 data) if(data) spi1_mosi_high(); else spi1_mosi_low(); /*=*/ static void ads7843_wrcmd(u8 cmd) u8 buf, i; for( i = 0; i (7-i) /msb 在前,lsb 在后 spi_mosi(buf); /时钟上升沿锁存 din spi1_sck_high();/时钟脉冲,一共 8 个 spi1_sck_low();/开始发送命令字 36 /*=*/ static u16 ads7843_read(void) u16 buf = 0 ; u8 i; spi1_sck_high(); /wait busy spi1_sck_low(); for( i = 0; i x_dataarrayi) k = x_dataarrayj; x_dataarrayj = x_da
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 岑溪冷却塔施工方案公司
- 四川文化产业职业学院招聘考试真题2024
- 乳胶漆和油漆施工方案
- 桩基地下降排水施工方案
- 江苏植物墙施工方案编制
- 天津弃渣场排水施工方案
- 徐州学位英语真题及答案
- 2025黑龙江饶河县公益性岗位招聘30人考前自测高频考点模拟试题带答案详解
- 2025携手猎聘人才委托合同
- 湖南省省直事业单位招聘考试真题2024
- 银行解冻申请书
- 基于学科核心素养下的教学设计
- 人教版英语七年级(全册)单词表
- 全心衰竭的治疗与护理
- 扩张型心肌病治疗及护理
- 森林抚育作业设计
- 2002版干部履历表(贵州省)
- DL∕T 1396-2014 水电建设项目文件收集与档案整 理规范
- 行路难课件8省公开课一等奖新名师比赛一等奖课件
- 防欺凌隐患排查和矛盾化解记录表
- 建设单位给施工单位的通知函范本
评论
0/150
提交评论