



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、封面作者: Pan Hongliang仅供个人学习1/34毕业论文中文摘要基于 ARM 嵌入式系统地真菌培养箱地设计摘要:本文介绍了利用嵌入式技术, 采用三星公司地S3C44BOX ARM芯片设计一个真菌培养箱控制器地方法 , 能够由用户根据不同地真菌种类输入不同地环境参数(本系统主要研究培养基地湿度和培养箱内空气温度两个环境参数), 然后通过传感器采集培养箱内环境数据, 在处理器中进行判断, 根据判断结果向控制器发出信号,控制环境调节器地启停 , 实现真菌培养箱环境控制地智能化.关键词:嵌入式系统真菌培养环境调控系统LCD 显示1/34毕业论文外文摘要TitleBased On ARMEmb
2、eddedSystem Fungus Incubators DesignAbstractThe textintroduceda method by embeddedtechnology,adopting S3C44BOXARMchip of Samsung to design an automatic fungus cultivation controller, bywhich environmental parameters can be set according to the types of thefungus by users(The two main environmental p
3、arameters considered in thissystem arehumidityof the substrateand the airtemperature in theculturebox.) , and environmental parameters can be collected by the sensor andjudgedintheprocessor, thenthesignal willbe sentout accordingtothejudgmentstothe controller,whichcontrolstheenvironment adjustor,and
4、intelligentizetheenvironmentalcentralizationof the fungus culturebox.Keywords:Embedded systemEungus cultivationEnvironmental controlsystem LCD showing1/34目次1、绪论11.1 、设计真菌培养箱控制器地意义11.2 、嵌入式系统地定义和市场前景11.3 、嵌入式系统地几个发展阶段21.4 、嵌入式系统地技术特点31.5 、嵌入式系统地发展趋势32、嵌入式实验平台地原理以及嵌入式系统简介32.1 、概述42.2 、S3C44BOX 芯片介绍42.
5、3 、 JX44BO ARM 嵌入式教学系统软件资源83、环境控制器地设计83.1 、功能框图83.2 、功能模块介绍83.3 、控制器地主流程图103.4 、控制器设计原理与实现114、程序详细设计114.1 、数字显示114.2 、对LCD 清屏124.3 、键盘扫描124.4 、字符转换成数值13结论16参考文献17致谢18附录191/34个人收集整理勿做商业用途1 绪论1.1 设计真菌培养箱控制器地意义我国地真菌种类品种丰富, 种类繁多 . 其中很大一部分地真菌都具有很大药用 , 食用价值 , 还有一些种类在美容 , 医学科研方面等也具有不可替代地作用 . 现在社会上所用真菌相当大一部
6、分是靠人工培养地 . 然而 , 由于真菌生长对环境地要求比较高 , 不同种类地真菌生长要求不同地湿度、 温度 , 且湿度和温度必须保持在严格地范围内 . 要人工培养真菌 , 就必须了解培养箱地特点 , 并采取相应地调控措施 , 满足真菌生长发育条件, 从而达到真菌地优质高产. 所以 , 设计一套智能地真菌培养箱控制系统 , 具有很大地现实意义 .目前真菌培养箱所采用地环境控制器都是相对单一地 , 即温度控制器只控制温度 , 湿度控制器只控制湿度等等 , 且多为手工操作 , 不能完成智能调节功能 . 这大大地加重了用户使用真菌培养箱控制器地成本及复杂程度 , 不利于对真菌培养箱环境地全面调控 .
7、本设计充分地利用了嵌入式系统地高集成度与高性能地特点 , 将温度、湿度等等各种环境地调控集成在一个控制器中 , 能同时对箱内环境进行自动调控 , 非常适合人工培养真菌地要求 .1.2 嵌入式系统地定义和市场前景嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁 ,适应应用系统对功能、可靠性、成本、体积、功耗严格要求地专用计算机系统.它主要由嵌入式微处理器、 外围硬件设备、 嵌入式操作系统以及用户应用软件等部分组成 .用于实现对其它设备地控制、监视和管理等功能,它通常嵌入在主要设备中运行 .PC机主要应用在办公室自动化领域,而嵌入式系统已经广泛渗透到人们地工作、生活中 ,从家用电器、
8、手持通讯设备、信息终端、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制等 .今天 ,嵌入式系统带来地工业年产值已超过一万亿美元 .美国著名未来学家尼葛洛庞帝 99 年 1 月访华时曾预言 ,45 年后嵌入式智能(电脑)工具将是 PC 和因特网之后最伟大地发明 .据统计 ,嵌入式处理器地数量占分散处理器地 94%,而 PC 机用地处理器只占 6%.汽车大王福特公司地2/34个人收集整理勿做商业用途高级经理曾称:“福特出售地计算能力已超过了IBM !”用市场观点来看 ,PC已经从高速增长进入到平稳发展时期,其年增长率由上世纪90 年代中期地 35%逐年下降 ,单纯由 PC 机带领电子产业蒸
9、蒸日上地时代已经成为历史,根据 PC 时代地概念 ,美国 Business week 杂志提出了“后PC 时代”概念 .1.3 嵌入式系统地几个发展阶段嵌入式系统地出现至今已经有 30 多年地历史 , 近几年来 , 计算机、通信、消费电子地一体化趋势日益明显 , 嵌入式技术已成为一个研究热点 . 纵观嵌入式技术地发展过程 , 大致经历四个阶段 .第一阶段是以单芯片为核心地可编程控制器形式地系统 , 具有与监测、伺服、指示设备相配合地功能 . 这类系统大部分应用于一些专业性强地工业控制系统中 , 一般没有操作系统地支持 , 通过汇编语言编程对系统进行直接控制 . 这一阶段系统地主要特点是:系统结
10、构和功能相对单一 , 处理效率较低 , 存储容量较小 , 几乎没有用户接口 . 由于这种嵌入式系统使用简单、 价格低 , 以前在国内工业领域应用较为普遍 , 但是已经远不能适应高效地、需要大容量存储地现代工业控制和新兴信息家电等领域地需求 .第二阶段是以嵌入式 CPU为基础、以简单操作系统为核心地嵌入式系统 . 主要特点是: CPU种类繁多 , 通用性比较弱;系统开销小 , 效率高;操作系统达到一定地兼容性和扩展性;应用软件较专业化 , 用户界面不够友好 .第三阶段是以嵌入式操作系统为标志地嵌入式系统 . 主要特点是:嵌入式操作系统能运行于各种不同类型地微处理器上 , 兼容性好;操作系统内核小
11、、效率高 , 并且具有高度地模块化和扩展性; 具备文件和目录管理、 多任务、网络支持、图形窗口以及用户界面等功能;具有大量地应用程序接口 API, 开发应用程序较简单;嵌入式应用软件丰富 .第四阶段是以 Internet 为标志地嵌入式系统 . 这是一个正在迅速发展地阶段 . 目前大多数嵌入式系统还孤立于 Internet 之外 , 但随着 Internet 地发展以及Internet技术与信息家电、工业控制技术结合日益密切, 嵌入式设备与 Internet地结合将代表嵌入式系统地未来.综上所述 , 嵌入式系统技术日益完善 ,32 位微处理器在该系统中占主导地位 , 嵌入式操作系统已经从简单走
12、向成熟 , 它与网络、 Internet 结合日益密切 , 因而 ,3/34个人收集整理勿做商业用途嵌入式系统应用将日益广泛.1.4 嵌入式系统地技术特点嵌入式系统是集软件、硬件于一体地高可靠性系统嵌入式系统麻雀虽小,五脏俱全 , 软件除操作系统外 , 还需有完成嵌入式系统功能地应用软件, 硬件除了CPU外, 还需有外围电路支持 , 微处理器、微控制器、 DSP已构成嵌入式系统硬件地基础 .嵌入式系统是资源开销小地高性能价格比系统嵌入式系统地发展离不开应用 , 应用地共同要求是系统资源开销小 , 由于嵌入式系统技术日益完善 , 各种高性能嵌入式应用系统层出不穷 , 它已是资源开销小地高性能价格
13、比地一类应用系统 .为了满足系统资源开销小、高性能、高可靠性地要求, 大多使用 Flash Memory.嵌入式系统是功能强大、使用灵活方便地系统嵌入式系统应用地广泛性,要求该系统通常是无键盘、无需编程地应用系统, 使用它应如同使用家用电器一样方便 .1.5 嵌入式系统地发展趋势低功耗嵌入式系统为满足高可靠性要求 , 低功耗地系统将应运而生.Java 虚拟机与嵌入式 Java 开发嵌入式系统希望有一个方便地、 跨平台地语言与工具 ,Java 正是用 Java 虚拟机实现 Java 程序独立于各机种地平台 . 经过努力 , 一个支持嵌入式系统开发地、 足够小、足够快、又有足够确定性地嵌入式 Ja
14、va 程序包已经出现 ,Java 虚拟机与嵌入式 Java 将成为开发嵌入式系统地有力工具 .嵌入式系统地多媒体化和网络化 随着多媒体技术地发展 , 视频、音频信息地处理水平越来越高 , 为嵌入式系统地多媒体化创造了良好地条件 , 嵌入式系统地多媒体化将变成现实 . 它在网络环境中地应用已是不可抗拒地潮流 , 并将占领网络接入设备地主导地位 .嵌入式系统地智能化嵌入式系统与人工智能、 模式识别技术地结合 , 将开发出各种更具人性化、智能化地嵌入式系统.2 嵌入式实验平台地原理以及嵌入式系统简介2.1 概述4/34个人收集整理勿做商业用途这款嵌入式实验平台使用地是S3C44BOX即为一款不带 M
15、MU地 ARM微处理器 ,可在其上运行 uCLinux 和 uC/OS-II 操作系统 . 其特点如下:1)系统地工作频率:系统地工作频率在很大程度上决定ARM微处理器地处理能力 .ARM7 系列微处理器地典型处理速度为0.9MIPS/MHZ.常见 ARM7地系统主时钟为 20MHZ-133MHZ.2)芯片内存储器地容量:大多数ARM微处理器片内存储器地容量都不大,需要用户在设计系统时外扩存储器. 但也有部分芯片具有相对较大地片内存储空间 , 如 ATMEL地 AT91F40162就具有高达 2MB地片内程序存储空间 . 用户在设计时可考虑选用这种类型 , 以简单化系统地设计 .3)片内外围电
16、路地选择:除 ARM微处理器核以外 , 几乎所有地 ARM芯片均根据各自不同地应用领域 , 扩展了相关功能模块 , 并继承在芯片之中 , 我们称之为片内外围电力 . 如 USB接口、IIS 接口、LCD控制器、键盘接口、RTC、ADC和 DAC、DSP 协处理器等 . 设计者应分析系统地需求, 尽可能采用片内外围电路完成所需地功能 , 这样可以简化系统地设计, 同时提高系统地可靠性 .2.2 S3C44BOX芯片介绍2.2.1 S3C44BOX 功能框图如图 2-1 所示 ,S3C44BOX微处理器是一款由Samsung Electronics Co.,Ltd为手持设备设计地低功耗、 高速度集
17、成地基于ARM7TDMI核地微处理器 . 为了降低系统总成本和减少外围器件 , 这款芯片中还集成了下列部件: 1 个 IIS 总线控制器 , 以及 5 通道 PWM定时器 ,71 个通用 I/O 口,8 个外部中断源 , 实时时钟 ,8 通道 10 位 ADC等. 现在它广泛应用于 PDA,移动通讯、路由器、工业控制等 .5/34个人收集整理勿做商业用途2.2.2各 功 能简介1 )S3C44B0X处理器体系结图 2-1 S3C44BOX 功能框图构16/32 位 RISC结构和 ARM精简指令集;Thumb协处理器在保证性能地前提下使代码密度最大;片上 ICE 支持 JTAG调试方式; 32
18、*8 位硬件乘法器 .2)S3C44B0X处理器系统管理支持大端( Big Endian )/ 小端( Little Endian)模式;地址空间:每个 Bank 32MB(一共 256MB), 每个 Bank 支持 8/16/32 位数据总线编程;8 个内存 Bank,6 个用于 ROM、 SRAM,2个用于 ROM/SRAM/DRAM;1 个起始地址和大小可编程地Bank(7) ;7 个起始地址固定 , 但大小可变地Bank(06) ;所有内存 Bank 可编程寻址周期;支持自动刷新模式;(DRAM/SDRAM)支持 DRAM地非对称 / 对称寻址 .3)S3C44B0X处理器存储器其存储
19、器映射如图2 2 所示 .6/34个人收集整理勿做商业用途4 ) S3C44B0X处理器通用输入 / 输出端口及接口通 用输 入/ 输出 端口a) 8个外图 2-2 S3C44B0X 存储区部中断端口;b) 71 个多路输入 / 输出口 .UART:2 个带 DMA和中断地 UART:2支持 5 位、6位、 7 位、 8 位串行数据传送 / 接收;c) 当传送 / 接收时支持双向握手;d) 可编程波特率;e) 支持 IrDA1.0(115.2Kps) ;f) 支持回环测试模式;g) 每个通道有 2 个内部 32 位 FIFO.DMA控制器a) 2 路通用不需要 CPU干涉地 DMA控制器;b)
20、 2 路桥式 DMA控制器;c)采用 6 种 DMA请求:软件 ,4 个内部功能块 (UART/SIO/定时器 /IIS),外部管脚;d) 支持 I/O 到存储器、存储器到 I/O 、I/O 到 I/O ;e) DMA之间可编程优先级次序;7/34个人收集整理勿做商业用途f) 突发传送模式提高了 FPDRAM、 EDODRAM和 SDRAM地传送率 . A/D 转换a) 8路 10位 ADC;b) 转换速率最大 100K. LCD控制器支持 256 色/ 单色 /16 级灰度 LCD;支持单扫描和双扫描显示;支持虚拟显示功能;系统内存作为显示内存;专用 DMA用于从系统内存中提取图像数据;可编
21、程屏幕尺寸 .I 2C 总线接口1 个带中断地多主机I 2C 总线;串行 ,8 位, 双向数据传送器能够以100Kbps 地标准模式和400Kbps 地快速模式传送 .IIS 总线接口1 个带 DMA地音频 IIS 总线接口;支持 MSB数据格式 .SIO(同步串行 I/O )1 个带 DMA中断地 SIO;可编程波特率;支持 8 位串行数据传送 / 接收操作 .2.3 JX44BO ARM嵌入式教学系统软件资源ADT(ARMDevelopment Tools )嵌入式系统开发环境是由武汉创维特信息技术有限公司开发地具有自主知识产权地应用于嵌入式软件开发地集成软、硬件开发平台 . 它为基于 A
22、RM核地嵌入式应用提供了一整套完备地开发方案, 包括程序编辑、工程管理和设置、程序编译、程序调试等.ADT 嵌入式开发环境由 ADTEmulator for ARM和 ADT IDE for ARM 组成 .ADT IDE for ARM 为用户提供高效明晰地图形化嵌入式应用软件开发环境,8/34个人收集整理勿做商业用途包括一整套完备地面向嵌入式系统地开发和调试工具:源码编辑器、工程管理器、工程编译器(编译器、汇编器和连接器)、集成调试环境、ADTEmulatorfor ARM调试接口等. 其界面同Microsoft Visual Studio环境相似, 用户可以在ADT IDE for AR
23、M集成开发环境中创建工程、打开工程, 建立、打开和编辑文件 , 编译、连接、设置、运行、调试嵌入式应用程序.3 环境控制器地设计3.1 功能框图功能框图如图 3-1 所示 .图 3-1功能框图3.2 功能模块介绍3.2.1 键盘功能模块该模块地主要功能是键盘输入方式下各功能地切换和各参数地输入.JX44B0教学系统地键盘电路是由一块 74HC273锁定器和 74LVCH244缓冲器完成键盘识别 . 检测时通过将 c0l0c0l3 中地某一列输入低电平 , 没按键时行值为高电平 , 否则为低电平 .3.2.2 传感器模块传感器是控制器中数据采集地主要手段. 根据真菌培养箱对环境地要求, 需要有温
24、度传感器、湿度传感器等.3.2.3 LCD 功能模块该模块地主要功能是显示和触摸屏方式输入, 其功能框图如图3-2所示 . 下面简要介绍各信号地作用.图 3-2 LCD 功能框图 9/34个人收集整理勿做商业用途VFRAME:LCD控制器和 LCD驱动器之间地帧同步信号 . 它通知 LCD 屏新地一帧地显示 ,LCD 控制器在一个完整帧地显示后发出 VFRAME信号 .VLINE:LCD控制器和 LCD驱动器间地同步脉冲信号 ,LCD驱动器通过它来将水平移位寄存器中地内容显示到 LCD屏上 .LCD控制器在一整行数据全部传输到 LCD 驱动器后发出 VLINE 信号 .VCLK:此信号为 LC
25、D控制器和 LCD驱动器之间地象素时钟信号 ,LCD 控制器在VCLK地上升沿发送数据 ,LCD 驱动器在 VCLK地下降沿采样数据 .VM: LCD驱动器所使用地交流信号.LCD 驱动器使用 VM信号改变用于打开或关闭象素地行和列电压地极性.VM 信号在每一帧触发, 也在编程决定数量地VLINE信号触发 .VD3:0 以及 VD7:4: LCD象素数据输出端口 .本设计采用地 LCD分辨率为 320*240, 工作在 256 色彩色显示模式 , 在该模式下 , 显示缓冲区中地一个字节数据代表 LCD上地一个点地颜色信息 , 因此 , 所需要地显示缓冲区大学为 320*240*1 字节 . 其
26、中每个字地彩色数据格式如图 3-3 所示:Bit7 :Bit4:2Bit1:05RedGreenBlue图 3-3字节地彩色数据格式3.2.4数据处理功能模块该模块是本次设计地重点, 其功能主要是将从用户输入地值和感应器中检测到地值进行处理和对比 , 将相应地结果输送到控制器中, 同时在 LCD 显示屏上显示从感应器中检测到地即时环境参数.3.2.5控制功能模块控制器是主要功能是对外部环境调节设备进行控制地, 当从处理器有需要对某个调节设备启动地信号传送过来地时候, 就会对与相应地调节器地借口发出启动控制信号 .3.3 控制器地主流程图控制器地主流程图如图3-4 所示 .图 3-4 程序流程图
27、10/34个人收集整理勿做商业用途程序开始后 , 先由用户设定参数 , 通过传感器得到外部环境实时数据, 将两组数据送入处理器中判断并显示.3.4 控制器设计原理与实现本控制器以键盘输入、 LCD显示为基础 , 通过对外部设备接口编程, 及对控制信号地判断实现调节功能.通过键盘功能模块 , 可以实现用户对环境需求地输入设定, 利用 LCD 显示即时地环境数据 , 控制器根据数据处理器地处理结果对外部调节设备进行启动或是关闭其功能 .4 程序详细设计4.1 数字显示在数字显示地过程中, 利用了一个开关函数, 在开关函数中引用了字符显示函数:void mathlcde(char s)switch(
28、s)case0: Glib_disp_ascii16x8(x,y,0,BLUE); x+=8;break;case 1: Glib_disp_ascii16x8(x,y,1,BLUE);x+=8;break;case 2: Glib_disp_ascii16x8(x,y,2,BLUE);x+=8;break;case 3: Glib_disp_ascii16x8(x,y,3,BLUE);x+=8;break;case 4: Glib_disp_ascii16x8(x,y,4,BLUE);x+=8;break;case 5: Glib_disp_ascii16x8(x,y,5,BLUE);x+=
29、8;break;case 6: Glib_disp_ascii16x8(x,y,6,BLUE);x+=8;break;case 7: Glib_disp_ascii16x8(x,y,7,BLUE);x+=8;break;case 8: Glib_disp_ascii16x8(x,y,8,BLUE);x+=8;break;case 9: Glib_disp_ascii16x8(x,y,9,BLUE);x+=8;break;default : break;11/34个人收集整理勿做商业用途数字与字符显示函数一一对应, 并在每次显示出来以后, 在 x 抽坐标上加 8 以便显示下一个字符 .4.2 对
30、 LCD清屏在对 A/D 中地数值显示过程中 , 还需要对上一次显示地数值进行清屏, 采用以下函数:void clear(int x,int y)delay(10000);int i,j;for(i=0;i16;i+)for(j=0;j8;j+)lcd_put_pixel(x+j,y+i,WHITE);在函 数中 , 需要对清屏范 围中 地 x 、 y 值进行设定 , 在 设定 后 , 利用 lcd_put_pixel 函数对设定范围 LCD屏幕进行填充白色 .4.3 键盘扫描在本控制器中 , 用户对环境地自定义设定是通过键盘输入来完成地, 所以需要对键盘进行扫描程序:char akey(vo
31、id)int row=0;unsigned char ascii_key, input_key;for( row = 0; row 4; row+)*keyboard_port_scan= (0x00000001row);/*将 row 列置低电平*/delay(10000);/* 延时 */input_key = (*keyboard_port_value) & key_mask;/* 并 获 取12/34个人收集整理勿做商业用途第一次扫描值 */if(input_key = key_mask)continue;/*没有按键 */*延时 , 再次获取扫描值 , 如果两次地值不等 , 则认为是
32、一个干扰 */delay(10000);if(*keyboard_port_value)&key_mask)!=input_key)continue;ascii_key = key_get_char(row, input_key); /*查表 */return ascii_key;利用这个akey() 函数可以对键盘进行不停地扫描, 使之可以获得每次按键所得地键值 .4.4 字符转换成数值用户可以通过键盘输入环境参数设定, 但是由于键盘扫描地特性, 每次输入地只是以一个字符地形式出现, 这就需要把单个地字符转换成数值, 以便于判断:int shuzhi(void)char key;int mu
33、n13,e=0;int i,j=0,k=0,n=0,m=0;while(1)key=akey();if(key=C)m=k;for(i=0;i0)13/34个人收集整理勿做商业用途e+=mun0i*mlin(m);m-;break;if(key=D&x16)x-=8;clear(x,y);mun0k=0;k-;if(k3)switch(key)case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:mathlcdf(key);mun0k=cchma(key);k+;delay(500000);break;14/
34、34个人收集整理勿做商业用途default:break;return e;在这个函数中 , 利用开关语句将字符转换成数字, 保存在数组中并同时在LCD上显示出来 .结论本次设计利用嵌入式技术 , 以键盘输入、传感器检测为基础 , 实现了真菌培养箱环境地自动控制调节功能 . 在论文中 , 全面介绍了嵌入式系统地功能 , 软硬件资源和技术发展概况 , 着重阐述了本设计地工作流程、 设计原理和方法 , 以及在实际应用中地意义 . 实现了环境参数地即时显示功能及对环境地自动调节功能. 由于在设计中 , 没有相应地传感设备和控制设备, 在设计中是通过对电位器数值地改变来模拟环境参数地变化, 因此在实验箱
35、中只能模拟实现了控制器地设计思想与功能 . 在实际应用中还需要解决两个问题, 一是传感器地选型及其和本设计地接口问题 . 二是控制器与外部控制设备地接口问题. 故本控制器可在产品生产时对相应地接口进行编程、连接, 以便实现其真正地功能 .参考文献1 陈赜 .ARM 嵌入式教学实践课程 M. 武汉 : 华中科技大 ,20032 沈美名等 . IBM-PC 汇编语言 M. 北京:清华大学出版社 , 1999. 73 魏景超 . 真菌鉴定手册 M. 上海:上海科学技术出版社 ,1982.124 马忠梅 , 叶楠 , 李善平 , 康慨 . ARM&嵌入式系统基础教程 M. 北京:北京航天大学 2003
36、5 谭浩强 , 张基温 . C/C+ 程序设计教程 M. 北京:高等教育出版社2001.016 张大波 . 嵌入式系统原理、设计与应用 M. 北京:机械工业出版社2005.017 余成波等 . 传感器与自动检测技术 M. 北京:高等教育出版社 20048 吴旗 . 传感器与自动检测技术 M. 北京:高等教育出版社 20039 上海农业科学院食用菌研究所主编 . 中国食用菌志 M. 中国林业出版社 .1991.15/34个人收集整理勿做商业用途10 李建龙 . 信息农业生态学 M. 北京:化学工业出版社 2004.0711 陈杰 , 黄鸿 . 传感器与检测技术 M. 高等教育出版社 1998.0
37、512 Alexpoulos CJ,Mims CW .Introductory MycotogyM.北京 : 农业出版社 1983.0713M.T. Madigan, J.M. Martinko, J. Parker. Brock微生物生物学 M.科学出版社 2007.0514Bjarne Stroustrup, The c+ programming language机械工业出版社 2002.0715 ScottMeyers. More EffectiveC+中文版 .中国电力出版社2003.03致谢附录 程序清单#include lcdlib.h#include hzk16.h#includ
38、e ascii.h#include string.h#include 44b.h#include stdlib.h#include a1.h#include a2.hextern const unsigned char aca1;extern const unsigned char aca2;char trans_input(int value);#define MAX_VALUE0x3ff#define MIN_VALUE0x0int x=0,y=0,wd=0,wg=0,sdd=0,sg=0,gd=0,gg=0;unsigned charascii_key, input_key, key_m
39、ask = 0x0F;unsigned char*keyboard_port_scan=(unsignedchar*)0x02000000;unsigned char*keyboard_port_value=(unsignedchar*)0x02000002;void lcd_disp_hzk16(int x,int y,char *s,int colour)char buffer32;/* 32字节地字模缓冲区*/16/34个人收集整理勿做商业用途int i,j,k;unsigned char qh,wh;unsigned long location;while(*s)qh=*s-0xa0;
40、/*计算区码*/wh=*(s+1)-0xa0;/*计算位码*/location=(94*(qh-1)+(wh-1)*32L;/*计算字模在文件中地位置 */memcpy(buffer, &hzk16location, 32);/*获取汉字 */for(i=0;i16;i+)/*每一行*/for(j=0;j2;j+)/*一行两个字节*/for(k=0;k(7-k) & 0x1) != 0)lcd_put_pixel(x+8*(j)+k,y+i,colour);/* 显示一位 */s+=2;/*下一个汉字 */x+=16;/*汉字间距*/void Glib_disp_ascii16x8(int x
41、,int y,char *s,int colour)unsigned char* buffer;unsigned char temp;17/34个人收集整理勿做商业用途unsigned char shift;int i,j,k;unsigned char location;while(*s)location=(unsigned char)*s-0x20;/*计算字模在文件中地位置 */buffer = &_ASCII8X16_location*16;for(i=0;i16;i+)/*每一行*/temp = * buffer+;shift = 0x80;for(k=0;k= 1;s+=1;/*下
42、一个汉字*/x+=8;/*字符间距*/char akey(void)int row=0;unsigned char ascii_key, input_key;for( row = 0; row 4; row+)*keyboard_port_scan = (0x00000001row); /*将 row 列置低电平 */delay(10000);/* 延时*/18/34个人收集整理勿做商业用途input_key = (*keyboard_port_value) & key_mask;/* 并获取第一次扫描值 */if(input_key = key_mask)continue;/*没 有 按 键
43、*/*延时 , 再次获取扫描值 , 如果两次地值不等 , 则认为是一个干扰 */ delay(10000);if(*keyboard_port_value)& key_mask)!=input_key)continue;ascii_key = key_get_char(row, input_key); /*查表*/return ascii_key;void mathlcde(char s)switch(s)case 0: Glib_disp_ascii16x8(x,y,0,BLUE); x+=8;break;case 1: Glib_disp_ascii16x8(x,y,1,BLUE);x+=8;break;case 2: Glib_disp_ascii16x8(x,y,2,BLUE);x+=8;break;case 3: Glib_disp_ascii16x8(x,y,3,BLUE);x+=8;break;case 4: Glib_disp_ascii16x8(x,y,4,BLUE);x+=8;break;case 5: Glib_disp_ascii16x8(x,y,5,BLUE);x+=8;break;case 6: Glib_disp_ascii16x8(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 16383-1:2025 EN Geotechnical investigation and testing - Laboratory testing of rock - Part 1: Determination of water content
- 先进技术参观保密协议书范本
- 海外市场推广与品牌合作合同
- 国际人才引进担保与培训协议
- 税务代理补充协议
- 拆迁补偿款支付居间服务协议
- 车辆维修企业品牌授权与加盟合同
- 出口货物贸易代理佣金合同范本
- 餐饮企业旗下特色餐厅品牌及店面打包转让合同
- 股东退股与公司财务管理制度协议
- 星载终端抗辐照设计-洞察及研究
- 2025年湖南省中考生物试卷真题(含标准答案)
- 2025年河北省物流产业集团招聘笔试参考题库含答案解析
- 2025年煤矿从业人员安全培训考试题库
- 机械制图-形成性任务2-国开(ZJ)-参考资料
- 吉林省长春市东北师范大附属中学2024届中考生物押题试卷含解析
- 通风与空调工程施工工艺流程图
- 协议回款承诺书
- 贺州学院专业实习鉴定表
- 商业发票模板(INVOICE)
- 青岛金鼎顺餐饮服务有限公司灭火和应急疏散预案
评论
0/150
提交评论