单片机软件滤波的几种方法:假定从AD中读取数据的子程序为:unsigned int get_ad();1、限幅滤波法(又称程序判断滤波法)A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A)。每次检测到新值时判断:如果本次值与上次值之差<=A,则本次值有效;如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值。B、优点:能有效克服因偶然因素引起的脉冲干扰C、缺点:无法抑制那种周期性的干扰,平滑度差D、软件实现://=======================//值A可根据实际情况调整,value为有效值,new_value为当前采样值//滤波程序返回有效的实际值
上传时间: 2013-10-20
上传用户:xiaojie
介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。 用PIC单片机设计的电子密码锁微芯公司生产的PIC8位COMS单片机,采用类RISC指令集和哈弗总线结构,以及先进的流水线时序,与传统51单片机相比其在速度和性能方面更具优越性和先进性。PIC单片机的另一个优点是片上硬件资源丰富,集成常见的EPROM、DAC、PWM以及看门狗电路。这使得硬件电路的设计更加简单,节约设计成本,提高整机性能。因此PIC单片机已成为产品开发,尤其是产品设计和研制阶段的首选控制器。本文介绍用PIC16F84单片机制作的电子密码锁。PIC16F84单片机共18个引脚,13个可用I/O接口。芯片内有1K×14的FLASHROM程序存储器,36×8的静态RAM的通用寄存器,64×8的EEPROM的数据存储器,8级深度的硬堆栈。硬件设计 电路原理见图1。Xx8位数据线接4x4键盘矩阵电路,面板布局见表1,A、B、C、D为备用功能键。RA0、RA7输出4组编码二进制数据,经74LS139译码后输出逐行扫描信号,送RB4-RB7列信号输入端。余下半个139译码器动扬声器。RB2接中功率三极管基极,驱动继电器动作。有效密码长度为4位,根据实际情况,可通过修改源程序增加密码位数。产品初始密码为3345,这是一随机数,无特殊意义,目的是为防止被套解。用户可按*号键修改密码,按#号键结束。输入密码并按#号确认之后,脚输出RB2脚输出高电平,继电器闭合,执行一次开锁动作。 若用户输入的密码正确,扬声器发出一声稍长的“滴”提示声,若输入的密码与上次修改的不符,则发出短促的“滴”声。连续3次输入密码错误之后,程序锁死,扬声器报警。直到CPU被复位或从新上电。软件设计 软件流程图见图3。CPU上电或复位之后将最近一次修改并保存到EEPROM的密码读出,最为参照密匙。然后等待用户输入开锁密码。若5分钟以内没有接受到用户的任何输入,CPU自动转入掉电模式,用户输入任意值可唤醒CPU。每次修改密码之后,CPU将新的密码存入内部4个连续的EEPROM单元,掉电后该数据任有效。每执行一次开锁指令,CPU将当前输入密码与该值比较,看是否真确,并给出相应的提示和控制。布 局 所有元件均使用SMD表贴封装,缩小体积,便于产品安装,60X60双面PCB板,顶层是一体化输入键盘,底层是元件层。成型后的产品体积小巧,能很方便的嵌入防盗铁门、保险箱柜。
上传时间: 2013-10-31
上传用户:uuuuuuu
pic单片机实用教程(提高篇)以介绍PIC16F87X型号单片机为主,并适当兼顾PIC全系列,共分9章,内容包括:存储器;I/O端口的复位功能;定时器/计数器TMR1;定时器TMR2;输入捕捉/输出比较/脉宽调制CCP;模/数转换器ADC;通用同步/异步收发器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特点:通俗易懂、可读性强、系统全面、学练结合、学用并重、实例丰富、习题齐全。<br>本书作为Microchip公司大学计划选择用书,可广泛适用于初步具备电子技术基础和计算机知识基础的学生、教师、单片机爱好者、电子制作爱好者、电器维修人员、电子产品开发设计者、工程技术人员阅读。本教程全书共分2篇,即基础篇和提高篇,分2册出版,以适应不同课时和不同专业的需要,也为教师和读者增加了一种可选方案。 第1章 EEPROM数据存储器和FIASH程序存储器1.1 背景知识1.1.1 通用型半导体存储器的种类和特点1.1.2 PIC单片机内部的程序存储器1.1.3 PIC单片机内部的EEPROM数据存储器1.1.4 PIC16F87X内部EEPROM和FIASH操作方法1.2 与EEPROM相关的寄存器1.3 片内EEPROM数据存储器结构和操作原理1.3.1 从EEPROM中读取数据1.3.2 向EEPROM中烧写数据1.4 与FLASH相关的寄存器1.5 片内FLASH程序存储器结构和操作原理1.5.1 读取FLASH程序存储器1.5.2 烧写FLASH程序存储器1.6 写操作的安全保障措施1.6.1 写入校验方法1.6.2 预防意外写操作的保障措施1.7 EEPROM和FLASH应用举例1.7.1 EEPROM的应用1.7.2 FIASH的应用思考题与练习题第2章 输入/输出端口的复合功能2.1 RA端口2.1.1 与RA端口相关的寄存器2.1.2 电路结构和工作原理2.1.3 编程方法2.2 RB端口2.2.1 与RB端口相关的寄存器2.2.2 电路结构和工作原理2.2.3 编程方法2.3 RC端口2.3.1 与RC端口相关的寄存器2.3.2 电路结构和工作原理2.3.3 编程方法2.4 RD端口2.4.1 与RD端口相关的寄存器2.4.2 电路结构和工作原理2.4.3 编程方法2.5 RE端口2.5.1 与RE端口相关的寄存器2.5.2 电路结构和工作原理2.5.3 编程方法2.6 PSP并行从动端口2.6.1 与PSP端口相关的寄存器2.6.2 电路结构和工作原理2.7 应用举例思考题与练习题第3章 定时器/计数器TMR13.1 定时器/计数器TMR1模块的特性3.2 定时器/计数器TMR1模块相关的寄存器3.3 定时器/计数器TMR1模块的电路结构3.4 定时器/计数器TMR1模块的工作原理3.4.1 禁止TMR1工作3.4.2 定时器工作方式3.4.3 计数器工作方式3.4.4 TMR1寄存器的赋值与复位3.5 定时器/计数器TMR1模块的应用举例思考题与练习题第4章 定时器TMR24.1 定时器TMR2模块的特性4.2 定时器TMR2模块相关的寄存器4.3 定时器TMR2模块的电路结构4.4 定时器TMR2模块的工作原理4.4.1 禁止TMR2工作4.4.2 定时器工作方式4.4.3 寄存器TMR2和PR2以及分频器的复位4.4.4 TMR2模块的初始化编程4.5 定时器TMR2模块的应用举例思考题与练习题第5章 输入捕捉/输出比较/脉宽调制CCP5.1 输入捕捉工作模式5.1.1 输入捕捉摸式相关的寄存器5.1.2 输入捕捉模式的电路结构5.1.3 输入捕捉摸式的工作原理5.1.4 输入捕捉摸式的应用举例5.2 输出比较工作模式5.2.1 输出比较模式相关的寄存器5.2.2 输出比较模式的电路结构5.2.3 输出比较模式的工作原理5.2.4 输出比较模式的应用举例5.3 脉宽调制输出工作模式5.3.1 脉宽调制模式相关的寄存器5.3.2 脉宽调制模式的电路结构5.3.3 脉宽调制模式的工作原理5.3.4 脉定调制模式的应用举例5.4 两个CCP模块之间相互关系思考题与练习题第6章 模/数转换器ADC6.1 背景知识6.1.1 ADC种类与特点6.1.2 ADC器件的工作原理6.2 PIC16F87X片内ADC模块6.2.1 ADC模块相关的寄存器6.2.2 ADC模块结构和操作原理6.2.3 ADC模块操作时间要求6.2.4 特殊情况下的A/D转换6.2.5 ADC模块的转换精度和分辨率6.2.6 ADC模块的内部动作流程和传递函数6.2.7 ADC模块的操作编程6.3 PIC16F87X片内ADC模块的应用举例思考题与练习题第7章 通用同步/异步收发器USART7.1 串行通信的基本概念7.1.1 串行通信的两种基本方式7.1.2 串行通信中数据传送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的码型、编码方式和帧结构7.1.5 串行通信中的检错和纠错方式7.1.6 串行通信组网方式7.1.7 串行通信接口电路和参数7.1.8 串行通信的传输速率7.2 PIC16F87X片内通用同步/异步收发器USART模块7.2.1 与USART模块相关的寄存器7.2.2 USART波特率发生器BRG7.2.3 USART模块的异步工作方式7.2.4 USART模块的同步主控工作方式7.2.5 USART模块的同步从动工作方式7.3 通用同步/异步收发器USART的应用举例思考题与练习题第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知识8.1.1 SPI接口信号描述8.1.2 基于SPI的系统构成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相关的寄存器8.2.2 SPI接口的结构和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的从动方式8.3 SPI接口的应用举例思考题与练习题第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C总线的背景知识9.1.1 名词术语9.1.2 I(平方)C总线的技术特点9.1.3 I(平方)C总线的基本工作原理9.1.4 I(平方)C总线信号时序分析9.1.5 信号传送格式9.1.6 寻址约定9.1.7 技术参数9.1.8 I(平方)C器件与I(平方)C总线的接线方式9.1.9 相兼容的SMBus总线9.2 与I(平方)C总线相关的寄存器9.3 典型信号时序的产生方法9.3.1 波特率发生器9.3.2 启动信号9.3.3 重启动信号9.3.4 应答信号9.3.5 停止信号9.4 被控器通信方式9.4.1 硬件结构9.4.2 被主控器寻址9.4.3 被控器接收——被控接收器9.4.4 被控器发送——被控发送器9.4.5 广播式寻址9.5 主控器通信方式9.5.1 硬件结构9.5.2 主控器发送——主控发送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的总线冲突和总线仲裁9.6.1 发送和应答过程中的总线冲突9.6.2 启动过程中的总线冲突9.6.3 重启动过程中的总线冲突9.6.4 停止过程中的总线冲突9.7 I(平方)C总线的应用举例思考题与练习题附录A 包含文件P16F877.INC附录B 新版宏汇编器MPASM伪指令总表参考文献
上传时间: 2013-12-14
上传用户:xiaoyuer
单片机应用技术选编(9) 目录 第一章 专题论述1.1 集成电路进入片上系统时代(2)1.2 系统集成芯片综述(10)1.3 Java嵌入技术综述(18)1.4 Java的线程机制(23)1.5 嵌入式系统中的JTAG接口编程技术(29)1.6 EPAC器件技术概述及应用(37)1.7 VHDL设计中电路简化问题的探讨(42)1.8 8031芯片主要模块的VHDL描述与仿真(48)1.9 ISP技术在数字系统设计中的应用(59)1.10 单片机单总线技术(64)1.11 智能信息载体iButton及其应用(70)1.12 基于单片机的高新技术产品加密方法探讨(76)1.13 新一代私钥加密标准AES进展与评述(80)1.14 基于单片机的实时3DES加密算法的实现(86)1.15 ATA接口技术(90)1.16 基于IDE硬盘的高速数据存储器研究(98)1.17 模拟比较器的应用(102) 第二章 综合应用技术2.1 闪速存储器硬件接口和程序设计中的关键技术(126)2.2 51单片机节电模式的应用(131)2.3 分布式实时应用的两个重要问题(137)2.4 分布式运算单元的原理及其实现方法(141)2.5 用PLD器件设计逻辑电路时的竞争冒险现象(147)2.6 IRIG?B格式时间码解码接口卡电路设计(150)2.7 一种基于单片机时频信号处理的实用方法(155)2.8 射频接收系统晶体振荡电路的设计与分析(161)2.9 揭开ΣΔ ADC的神秘面纱(166)2.10 过采样高阶A/D转换器的硬件实现(172)2.11 A/D转换的计算与编程(176)2.12 一种提高单片机内嵌式A/D分辨力的方法(179)2.13 单片微型计算机多字节浮点快速相对移位法开平方运算的实现(182)2.14 单片微型计算机多字节浮点除法快速扫描运算的实现(186)2.15 DSP芯片与触摸屏的接口控制(188)第三章 操作系统与软件技术3.1 嵌入式系统中的实时操作系统(192)3.2 嵌入式系统的开发利器——Windows CE操作系统(197)3.3 介绍一种实时操作系统DSP/BIOS(203)3.4 实时操作系统用于嵌入式应用系统的设计(212)3.5 实时Linux操作系统初探(217)3.6 Linux网络设备驱动程序分析与设计(223)3.7 在51系列单片机上实现非抢先式消息驱动机制的RTOS(229)3.8 用结构化程序设计思想指导汇编语言开发(236)3.9 单片机高级语言C51与汇编语言ASM51的通用接口(240)3.10 ASM51无参数化调用C51函数的实现(245)3.11 TMS320C3X的汇编语言和C语言及混合编程技术(249)3.12 TMS320C6000嵌入式系统优化编程的研究(254)3.13 TMS320C54X软件模拟实现UART技术(260)3.14 W78E516及其在系统编程的实现(265)3.15 键盘键入信号软件处理方法探讨(272)3.16 单片机系统中数字滤波的算法(276)第四章 网络、通信与数据传送 4.1 实时单片机通信网络中的内存管理(284)4.2 CRC16编码在单片机数据传输系统中的实现(288)4.3 在VC++中用ActiveX控件实现与单片机的串行通信(293)4.4 利用Windows API函数构造C++类实现串行通信(298)4.5 用Win32 API实现PC机与多单片机的串行通信(304)4.6 GPS接收机与PC机串行通信技术的开发与应用(311)4.7 TCP/IP协议问题透析(316)4.8 单片机的MODEM通信(328)4.9 无线串行接口电路设计(335)4.10 通用无线数据传输电路设计(340)4.11 FX909在无线高速MODEM中的应用(343)4.12 蓝牙——短距离无线连接新技术(348)4.13 蓝牙技术——一种短距离的无线连接技术(351)4.14 蓝牙芯片及其应用(357)4.15 BlueCoreTM01蓝牙芯片的特性与应用(361)4.16 内嵌微控制器的无线数据发射器的特性及应用(365)第五章 新器件及其应用技术5.1 一种全新结构的微控制器——Triscend E5(372)5.2 PSD8XXF的在系统编程技术(376)5.3 PSD813F1及其接口编程技术(382)5.4 一种优越的可编程逻辑器件——ISP器件(387)5.5 ISPPLD原理及其设计应用(393)5.6 ispPAC10在系统可编程模拟电路及其应用(397)5.7 在系统可编程器件ispPAC80及其应用(404)5.8 采用ispLSI1016设计高精度光电码盘计数器(408)5.9 基于ADμC812的一种仪表开发平台(413)5.10 基于P87LPC764的ΣΔ ADC应用设计方法(418)5.11 MP3解码芯片组及其应用(431)5.12 射频IC卡E5550原理及应用(434)5.13 HD7279A键盘显示驱动芯片及应用(439)5.14 基于SPI接口的ISD4104系列语音录放芯片及其应用(444)5.15 解决DS1820通信误码问题的方法(450)5.16 数字电位器在测量放大器中的应用(455)第六章 总线及其应用技术6.1 按平台模式设计的虚拟I2C总线软件包VIIC(462)6.2 虚拟I2C总线软件包的开发及其应用(470)6.3 RS485总线的理论与实践(479)6.4 RS232至RS485/RS422接口的智能转换器(484)6.5 实用隔离型RS485通信接口的设计(489)6.6 几种RS485接口收发方向转换方法(495)6.7 LonWorks总线技术及发展(498)6.8 LonWorks网络监控的简单实现(505)6.9 现场总线CANbus与RS485之间透明转换的实现(509)6.10 居室自动化系统中的X10和CE总线(513)6.11 通用串行总线USB(519)6.12 USB2.0技术概述(524)6.13 带通用串行总线USB接口的单片机EZUSB(530)6.14 嵌入式处理器中的慢总线技术应用(536)6.15 SPI串行总线在单片机8031应用系统中的设计与实现(540)第七章 可靠性及安全性技术7.1 软件可靠性及其评估(546)7.2 网络通信中的基本安全技术(554)7.3 数字语音混沌保密通信系统及硬件实现(560)7.4 伪随机序列及PLD实现在程序和系统加密中的应用(565)7.5 增强单片机系统可靠性的若干措施(569)7.6 FPGA中的空间辐射效应及加固技术(573)7.7 一种双机备份系统的软实现(577)7.8 计算机系统容错技术的应用(581)7.9 容错系统中的自校验技术及实现方法(585)7.10 基于MAX110的容错数据采集系统的设计(589)7.11 冗余式时钟源电路(593)7.12 微机控制系统的抗干扰技术应用(599)7.13 单片开关电源瞬态干扰及音频噪声抑制技术(604)7.14 单片机应用系统程序运行出轨问题研究(608)7.15 分布式系统故障卷回恢复技术研究与实践(613)第八章 典型应用实例8.1 基于单片机系统采用DMA块传输方式实现高速数据采集(620)8.2 GPS数据采集卡的设计(624)8.3 一种新型非接触式IC卡识别系统研究(629)8.4 自适应调整增益的单片机数据采集系统(633)8.5 利用光纤发射/接收器对实现远距离高速数据采集(639)8.6 一种频率编码键盘的设计与实现(645)8.7 高准确度时钟程序算法(649)8.8 旋转编码器的抗抖动计数电路(652)8.9 利用X9241实现高分辨率数控电位器(656)8.10 基于AD2S80A的高精度位置检测系统及其在机器人控制中的应用(661)第九章 文章摘要一、专题论述(670)1.1 微控制器的发展趋势(670)1.2 系统微集成技术的发展(670)1.3 多芯片组件技术及其应用(671)1.4 MCS51和80C51系列单片机(671)1.5 PSD813器件在单片机系统中的应用(671)1.6 主辅单片机系统的设计及应用(671)1.7 一种双单片机结构的微机控制器(671)1.8 用PC机直接开发单片机系统(672)1.9 单片机系统大容量存储器扩展技术(672)1.10 高性能微处理器性能模型设计(672)1.11 闪速存储器的选择与接口(672)1.12 串行存储器接口的比较及选择(672)1.13 移位寄存器分析方法的研究(673)1.14 GPS的时频系统(673)1.15 一种基于C语言的虚拟仪器系统实现方法(673)1.16 智能家庭网络研究综述(673)1.17 用C51实现电力部多功能电能表通信规约(674)1.18 测控系统中采样数据的预处理(674)1.19 数据采集系统动态特性的总体评价(674)1.20 一个高速准确的手写数字识别系统(674)1.21 日本理光实时时钟集成电路发展历史及现状(675)1.22 单片开关电源的发展及其应用(675)二、综合应用技术(676)2.1 MCS51系列单片机在SDH系统中的应用(676)2.2 公共闪存接口在Flash Memory程序设计中的应用(676)2.3 应用IA MMXTM技术的离散余弦变换(676)2.4 串行实时时钟芯片DS1302程序设计中的问题与对策(676)2.5 数字传感器及其应用(677)2.6 电阻式温度传感器的系列化设计及其应用(677)2.7 温度传感器及其与微处理器接口(677)2.8 AD7416数字温度传感器及其应用(677)2.9 隔离放大器及其应用(677)2.10 高速A/D转换器动态参数(678)2.11 V/F变换在单片机系统中的应用(678)2.12 微处理器内嵌式模数转换器在精密仪器中的应用研究(678)2.13 电子秤非线性自动修正方法(678)2.14 光耦传输的非线性校正(678)2.15 高斯滤波器在实时系统中的快速实现(679)2.16 用在系统可编程模拟器件实现双二阶型滤波器(679)2.17 最小二乘法在高精度温度测量中的应用(679)2.18 提高实时频率测量范围和精度新方法(679)2.19 具有微控制器的智能仪表设计与应用(679)2.20 用C语言编程的数据采集系统(680)2.21 大动态范围浮点A/D数据采集器的设计(680)2.22 基于PCI高速数据采集系统(680)2.23 一种基于PC机的高速16位并行数据采集接口(680)2.24 数据采集系统中增强型并行接口(EPP)电路的设计(681)2.25 用增强型并行接口EPP协议扩展计算机的ISA接口(681)2.26 基于增强型并行接口EPP的便携式高速数据采集系统(681)2.27 增强型并行接口EPP协议及其在CAN监控节点中的应用(681)2.28 利用增强型并行接口协议传输图像文件(681)2.29 用并行接口进行数据采集(682)2.30 高信噪比的VFC/DPLL数据采集装置(682)2.31 高精度数字式转速测量系统的研究(682)2.32 用单片机测量相位差的新方法(682)2.33 交流采样在电力系统中应用(682)2.34 同步图形存储器IS42G32256的电源与应用(683)2.35 IBM?PC处理10MHz高速模拟信号的研究(683)2.36 MCS51系列单片机存储容量扩展方法(683)2.37 用单片机实现数字相位变换器的设计方法(683)2.38 一种新的可重配置的串口扩展方案(683)2.39 VB环境下对双端口RAM物理读写的实现(684)2.40 双CPU实现远程多键盘鼠标交互(684)2.41 两种电阻时间变换器设计与分析(684)2.42 液晶显示器的接口和编程技巧(684)2.43 一种简单的电机变频调速方案及其应用(684)2.44 基于单片机的火控系统符号产生器电路原理设计(685)2.45 A/D转换器性能的改善方法(685)2.46 快速小波变换算法与信噪分离(685)2.47 80C196MC/MD单片机多个中断程序的同步问题(685)三、操作系统及软件技术(686)3.1 嵌入式软件技术的现状与发展动向(686)3.2 什么是嵌入式实时操作系统(686)3.3 实时多任务系统中的一些基本概念(686)3.4 一个源码公开的实时内核(687)3.5 Windows CE的实时性分析(687)3.6 串口通信多线程实现的分析(687)3.7 基于中间件的开发研究(688)3.8 Windows 95下实时控制软件设计的研究(688)3.9 Windows NT 4.0下设备驱动程序的开发与应用(688)3.10 Windows 98 下硬件中断驱动程序的开发(688)3.11 Windows下实时数据采集的实现(688)3.12 Win 95 下虚拟设备驱动程序设计开发(689)3.13 Win 95 环境下测控软件中端口读写的快速实现(689)3.14 Linux系统中ARP的编程实现技术(689)3.15 Linux中System V进程通信机制及访问控制技术的改进(689)3.16 VC++6.0中动态创建MSComm控件的问题及对策(689)3.17 在Visual Basic下使用I/O接口程序(690)3.18 VB应用程序速度的优化技术(690)3.19 嵌入式实时操作系统在机车微机测控软件开发中的应用(690)3.20 结构化程序方法在汇编语言中的应用(690)3.21 AVR单片机编程特性的应用研究(690)3.22 一种有效的51系列单片机软件仿真器(691)3.23 PIC单片机软件模拟仿真时输入信号的激励方式(691)3.24 基于LabVIEW的分布式VXI仪器教学实验系统设计(691)四、网络、通信及数据传输(692)4.1 单片机网络的组成与控制(692)4.2 实现ARINC 429数字信息传输的方案设计(692)4.3 结合电力线载波和电话通信的报警网络系统(692)4.4 网络电子密码锁监控系统的设计与实现(692)4.5 IRIG?E标准FM?FM解调器的有关技术(693)4.6 基于TCP/IP的多媒体通信实现(693)4.7 基于TCP/IP的多线程通信及其在远程监控系统中的应用(693)4.8 基于Internet的远程测控技术(693)4.9 Windows 95串行通信的几种方式及编程(693)4.10 在Windows 95下PC机和单片机的串行通信(693)4.11 基于80C196KC微处理器的高速串行通信(694)4.12 使用PC机并行口与下位单片机通信的方法(694)4.13 双向并口通信的开发(694)4.14 DSP和计算机并口的高速数据通信(694)4.15 一种高可靠性的PC机与单片机间的串行通信方法(694)4.16 单片机与PC机串行通信的实现方法(695)4.17 89C51单片机I/O口模拟串行通信的实现方法(695)4.18 TMS320C50与PC机高速串行通信的实现(695)4.19 DSP和PC机的异步串行通信设计(695)4.20 基于MCS单片机与PC机串行通信电平转换(695)4.21 一种简单的光电隔离RS232电平转换接口设计(695)4.22 ISA总线工业控制机与单片机系统的数据交换(696)4.23 RS232/422/485综合接口(696)4.24 基于RS485接口的单片机串行通信(696)4.25 在VC++中利用ActiveX控件开发串行通信程序(696)4.26 上位机和多台下位机的485通信(696)4.27 计算机与CAN通信的一种方法(697)4.28 用VB语言实现对端口I/O的访问(697)4.29 异种单片机共享片外存储器及其与微机通信的方法(697)4.30 单片机与MODEM接口技术及其在智能仪器中的应用研究(697)4.31 采用MCS51单片机实现CPFSK调制(697)4.32 一种新型编码芯片及其驱动程序的设计方案(698)4.33 DTMF远程通信的软硬件实现技术(698)4.34 采用DTMF方式通信的电度表管理系统(698)4.35 基于TAPI的电话语音系统设计方法(698)4.36 语音芯片APR9600及其在电话遥控系统中的应用(699)4.37 串行红外收发模块及其控制器在红外抄表系统中的应用(699)4.38 HSP50214B PDC及其在软件无线电中的应用(699)4.39 变速率CDMA系统软件无线电多用户接收机(699)五、新器件及应用技术(700)5.1 全帧读出型面阵CCD光电传感器在图像采集中的应用(700)5.2 光电码盘四倍频分析(700)5.3 H8/300H系列单片机及其应用(700)5.4 PIC 16F877单片机的键盘和LED数码显示接口(700)5.5 PIC16F877单片机实现D/A转换的两种方法(701)5.6 P89C51RX2 的PCA原理及设计(701)5.7 ADμC812中串口及其应用(701)5.8 INTEL96系列单片机中若干问题的讨论(701)5.9 关于INTEL96系列单片机中HSO事件的设置(701)5.10 MAX3100与PIC16C5X系列单片机的接口设计(702)5.11 单片MODEM芯片在远程数据通信中的应用(702)5.12 MX919在无线高速MODEM中的应用(702)5.13 高速串行数据收发器CY7B923/933及应用(702)5.14 双口RAM与FIFO芯片在数据处理系统中应用的比较(702)5.15 MAX202E在串行通信中的应用(703)5.16 线性隔离放大器ISO122的原理及应用(703)5.17 AD606对数放大器的研究与应用(703)5.18 电流/电压转换芯片MAX472在永磁直流电动机虚拟测试系统中的应用… (703)5.19 高精度模数转换器AD676的原理及应用(703)5.20 DS2450 A/D转换器的特性与应用(704)5.21 80C196KC内部A/D转换器的使用(704)5.22 一种16~24位分辨率D/A转换器的设计(704)5.23 串行A/D转换器TLC2543与TMS320C25的接口及编程(704)5.24 A/D转换器ICL7135积分特性应用(704)5.25 高精度A/D转换器AD7711A及应用(705)5.26 多路A/D转换器AD7714及其与M68HC11单片机接口技术(705)5.27 用AD7755设计的低成本电能表(705)5.28 20位Σ?Δ立体声ADA电路TLC320AD75C的接口电路设计(705)5.29 24位A/D转换器ADS1210/1211及其应用(706)5.30 模数转换器AD7705及其接口电路(706)5.31 串行A/D转换器ADS7812与单片机的接口技术(706)5.32 串行A/D转换器TLC548/549及其应用(706)5.33 采样率可变16通道16位隔离A/D电路(706)5.34 TLC549在交流有效值测量中的应用(707)5.35 温度传感器DS18B20的特性及程序设计方法(707)5.36 DS1820及其高精度温度测量的实现(707)5.37 采用DS1820的电弧炉炉底温度监测系统(707)5.38 并行实时时钟芯片DS12887及其应用(707)5.39 利用实时时钟X1203开启单片机系统(708)5.40 时钟芯片DS1302及其在数据记录中的应用(708)5.41 串行显示驱动器PS7219及与单片机的接口技术(708)5.42 MAX7219在PLC中的应用(708)5.43 一种实用的LED光柱显示器驱动方法(708)5.44 基于电能测量芯片ADE7756的智能电度表设计(709)5.45 TSS721A在自动抄表系统中的应用(709)5.46 电流传感放大器MAX471/MAX472的原理及应用(709)5.47 8XC552模数转换过程及其自动调零机制(709)5.48 旋转变压器数字转换器AD2S83在伺服系统中的应用(709)5.49 具有串行接口的I/O扩展器EM83010及其应用(710)5.50 新型LED驱动器TEC9607及其应用(710)5.51 新型语音识别电路AP7003及其应用(710)六、总线技术(711)6.1 现场总线技术的发展及应用展望(711)6.2 CAN总线点对点通信应用研究(711)6.3 基于CAN总线的数据通信系统研究(711)6.4 基于CAN总线的分布式数据采集与控制系统(711)6.5 基于CAN总线的分布式铝电解智能系统(711)6.6 CAN总线在通信电源监控系统中的应用(712)6.7 CAN总线在弧焊机器人控制系统中的应用(712)6.8 CAN总线及其在喷浆机器人中的应用(712)6.9 基于CAN控制器的单片机农业温室控制系统的设计(712)6.10 现场总线国际标准与LonWorks在智能电器中的应用(712)6.11 基于LON总线技术的暖通空调控制系统(712)6.12 通用串行总线(USB)及其芯片的使用(713)6.13 USB在数据采集系统中的应用(713)6.14 用MC68HC05JB4开发USB外设(713)6.15 8x930Ax/Hx USB控制器芯片及其在数字音频中的应用(713)6.16 基于MC68HC(9)08JB8芯片的USB产品——键盘设计(713)6.17 I2 C总线在LonWorks网络节点上的应用(714)6.18 Neuron3150的并行I/O接口对象及其应用(714)6.19 新型串行E2PROM 24LC65在LonWorks节点中的应用(714)6.20 利用I2C总线实现DSP对CMOS图像传感器的控制(714)6.21 在I2C总线系统中扩展LCD显示器(714)6.22 基于Windows环境的GPIB接口设计实现(714)6.23 微机PCI总线接口的研究与设计(715)6.24 通用串行总线(USB)原理及接口设计(715)6.25 CAN总线与1553B总线性能分析比较(715)6.26 利用USB接口实现双机互联通信(715)6.27 一种带USB接口的便携式语音采集卡的设计(715)七、可靠性技术(716)7.1 电磁干扰与电磁兼容设计(716)7.2 计算机的防电磁泄漏技术(716)7.3 低辐射计算机系统的设计实现(716)7.4 静电测量及其程序设计(716)7.5 电子产品生产中的静电防护技术(716)7.6 电子测控系统中的屏蔽与接地技术(717)7.7 微机控制系统的抗干扰技术(717)7.8 如何提高单片机应用产品的抗干扰能力(717)7.9 工业控制计算机系统中的常见干扰及处理措施(717)7.10 GPS用于军用导航中的抗干扰和干扰对抗研究(717)7.11 基于开放式体系结构的数控机床可靠性及抗干扰设计(717)7.12 变频器应用技术中的抗干扰问题(718)7.13 单片机的软件可靠性编程(718)7.14 单片微机的软件抑噪方案(718)7.15 SmartLock并口单片机软件狗加密技术(718)7.16 单片机系统中复位电路可靠性设计(718)7.17 测控系统中实现数据安全存储的实用技术(718)7.18 高精度仪表信号隔离电路设计(719)7.19 基于AT89C2051单片机的防误操作智能锁(719)7.20 Email的安全问题与保护措施(719)7.21 双机容错系统的一种实现途径(719)7.22 单片机应用系统抗干扰设计综述(719)7.23 微机控制系统中的干扰及其抑制方法(720)7.24 智能仪表的抗干扰和故障诊断(720)八、应用实践(721)8.1 AT89C51在银行利率显示屏中的应用(721)8.2 基于8xC196MC实现的磁链轨迹跟踪控制(721)8.3 基于80C196KC的开关磁阻电机测试系统(721)8.4 80C196KB单片机在绕线式异步电动机启动控制中的应用(721)8.5 GPS时钟系统(721)8.6 一种由AT89C2051单片微机实现的功率因数补偿装置(722)8.7 数据采集系统芯片ADμC812及其在温度监测系统中的应用(722)8.8 用AVR单片机实现蓄电池剩余电量的测量(722)8.9 基于SA9604的多功能电度表(722)8.10 数字正交上变频器AD9856的原理及其应用(722)8.11 基于MC628的可变参数PID控制方法的实现(723)8.12 Windows 98下远程数据采集系统设计(723)8.13 一种新式微流量计的研究(723)8.14 一种便携式多通道精密测温仪(723)8.15 一种高精度定时器的设计及其应用(723)8.16 智能湿度仪设计(724)8.17 固态数字语音记录仪的设计与实现(724)8.18 多功能语音电话答录器的设计(724)8.19 白炽灯色温测量装置电路设计(724)8.20 交直流供电无缝连接电源控制系统设计(724)8.21 小型电磁辐射敏感度自动测试系统的设计(725)8.22 生物电极微电流动态检测装置(725)8.23 二种铂电阻4~20 mA电流变送器电路(725)8.24 基于单片机的智能型光电编码器计数器(725)8.25 嵌入式系统中利用RS232C串口扩展矩阵式键盘(725)8.26 电压矢量控制PWM波的一种实时生成方法(725)8.27 便携式电能表校验装置现场使用分析(726)8.28 用单片机实现大型电动机的在线监测(726)8.29 PLC在L型管弯曲机电控系统中的应用(726)8.30 用EPROM实现步进电机的控制(726)8.31 一种手持设备的智能卡实现技术(726)8.32 钞票颜色识别系统的设计(727)8.33 数字锁相环在位置检测中的应用(727)九、DSP及其应用技术(728)9.1 数字信号处理器DSPs的发展(728)9.2 用TMS320C6201实现多路ITU?T G.728语音编码标准(728)9.3 采用DSP内核技术进行语音压缩开发(728)9.4 TMS320C80与存储器接口分析(728)9.5 TMS320C32浮点DSP存储器接口设计(728)9.6 TMS320VC5402 DSP的并行I/O引导装载方法研究(729)9.7 TMS320C30系统与PC104进行双向并行通信的方法(729)9.8 基于TMS320C6201的G.723.1多通道语音编解码的实现(729)9.9 基于TMS320C6201的多通道信号处理平台(729)9.10 基于两片TMS320C40的高速数据采集系统(729)9.11 使用TMS320C542构成数据采集处理系统(730)9.12 基于TMS320C32的视觉图像处理系统(730)9.13 用ADSP?2181和MC68302实现MPEG?2传送复用器(730)9.14 基于DSP的PC加密卡(730)9.15 TMS320C2XX及其在宽带恒定束宽波束形成器中的应用(730)9.16 DS80C320单片机在无人机测控数据采编器中的应用(731)9.17 基于TMS320F206 DSP的图像采集卡设计(731)9.18 基于定点DSP的实时语音命令识别模块(731)9.19 基于TMS320C50的语音频谱分析仪(731)9.20 利用DSP实现的专用数字录音机(731)9.21 基于DSP的全数字交流传动系统硬件平台设计(732)9.22 ADSP2106x中DMA的应用(732)9.23 软件无线电中DSP应用模式的分析(732)9.24 快速小波变换在DSP中的实现方法(732)十、PLD及EDA技术应用(733)10.1 可编程器件实现片上系统(733)10.2 VHDL语言在现代数字系统中的应用(733)10.3 用VHDL设计有限状态机的方法(733)10.4 ISP-PLD在数字系统设计中的应用(733)10.5 基于FPGA技术的新型高速图像采集(734)10.6 Protel 99SE电路仿真(734)10.7 可编程逻辑器件(PLD)在电路设计中的应用(734)10.8 基于FPGA的全数字锁相环路的设计(734)10.9 基于EPLD器件的一对多打印机控制器的研制(734)10.10 一种VHDL设计实现的有线电视机顶盒信源发生方案(735)10.11 一种并行存储器系统的FPGA实现(735)10.12 SDRAM接口的VHDL设计(735)10.13 采用ISP器件设计可变格式和可变速率的通信数字信号源(735)10.14 利用FPGA技术实现数字通信中的交织器和解交织器(735)10.15 XC9500系列CPLD遥控编程的实现(736)10.16 PLD器件在红外遥控解码中的应用(736)10.17 利用XCS40实现小型声纳的片上系统集成(736)10.18 可编程逻辑器件的VHDL设计技术及其在航空火控电子设备中的应用… (736)10.19 DSP+FPGA实时信号处理系统(736)10.20 CPLD在IGBT驱动设计中的应用(737)10.21 基于FPGA的FIR滤波器的实现(737)10.22 用可编程逻辑器件取代BCD?二进制转换器的设计方法(737)
上传时间: 2014-04-14
上传用户:gtf1207
大整数乘法例子代码 /* 递归边界,如果是1位二进制数与1位二进制数相乘,则可以直接计算 */ /*累计做1位二进制乘法运算的次数*/ /* return (X*Y) */ /* 计算n的值 */ /* 把X和Y拆分开来,令X=A*2^(n/2)+B, 左移位运算,mod = 1<<(n/2) */ /* 计算XY=AC*2^n+(AD+CB)*2^(n/2)+BD */ /* 计算A*C,再向左移n位 */ /* 递归计算A*D */ /* 递归计算C*B */ /* 计算a21+a22,再向左移n/2位 */ /* 递归计算B*D */ /* XY=a1+a2+a3 */
上传时间: 2015-05-19
上传用户:gyq
stc12c的AD处理,EEPROM处理,按键处理等功能,"没有解压问题,至于是不是适合你用,自己评估“
上传时间: 2015-12-19
上传用户:ccclll
fm1808中文资料 描述 FM1808是用先进的铁电技术制造的 256K位的非易失性的记忆体 铁电随机 存储器 FRAM 是一种具有非易失 性 并且可以象RAM一样快速读写 但 它没有BBSRAM模组系统的设计复杂 性 缺点和相关的可靠性问题 数据在 掉电可以保存10年 高速写以及高擦写 次数使得它比EEPROM或其他非易失性 存储器可靠性更高 系统更简单
上传时间: 2014-01-11
上传用户:zhangjinzj
/* * _168ZHONGDUAN2.c * * Created: 2014/11/2 15:12:45 * Author: lenovo */ #include <avr/io.h> #include <avr/iom168pa.h> #include <avr/interrupt.h> #include <util/delay.h> #include <avr/eeprom.h> //#include <util/delay_basic.h> //unsigned char const SEGtable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; #define BIT(x) (1<<(x)) #include<avr/signal.h> #include<avr/pgmspace.h> #include<util/delay.h> #include<avr/eeprom.h> #define setb(val,bitn) (val|=(1<<(bitn)))//设置某IO口某位为1 #define clr(val,bitn) (val&=~(1<<(bitn)))//设置某IO口某位为0 #define get(val,bitn) (val&(1<<(bitn)))//读取某位状态 //uchar ACT[8] ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; #define CPL_BIT(x,y) (x^=(1<<y)) #define CLR_BIT(x,y) (x&=~(1<<y)) #define SET_1(a,b) a|=(1<<b) #define CLE_0(a,b) a&=~(1<<b) /*------宏定义------*/ #include <avr/wdt.h> #include <avr/sleep.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <avr/eeprom.h> #define setb(val,bitn) (val|=(1<<(bitn)))//设置某IO口某位为1 #define clr(val,bitn) (val&=~(1<<(bitn)))//设置某IO口某位为0 #define get(val,bitn) (val&(1<<(bitn)))//读取某位状态 #define uint8 unsigned char #define uint16 unsigned int #define P_LCDCS1 setb(PORTB,5) #define P_LCDCS0 clr(PORTB,5) #define P_LCDRST1 setb(PORTB,1) #define P_LCDRST0 clr(PORTB,1) #define P_LCDRS1 setb(PORTB,2) #define P_LCDRS0 clr(PORTB,2) #define P_LCDDAT1 setb(PORTB,4) #define P_LCDDAT0 clr(PORTB,4) #define P_LCDCLK1 setb(PORTB,3) #define P_LCDCLK0 clr(PORTB,3) //#define LCD_ //-----页地址定义----- #define Page1 0 #define Page2 1 #define Page3 2 #define Page4 3 #define Page5 4 #define Page6 5 #define Page7 6 #define Page8 7 //-----列地址定义-----每8列地址增1 #define List8_1 0 #define List8_2 7 #define List8_3 15 #define List8_4 23 #define List8_5 31 #define List8_6 39 #define List8_7 47 #define List8_8 55 #define List8_9 63 #define List8_10 71 #define List8_11 79 #define List8_12 87 #define List8_13 95 #define List8_14 103 #define List8_15 111 #define List8_16 119 //#define List8_17 127 //-----列地址定义-----每16列地址增1 #define List16_1 0 #define List16_2 15 #define List16_3 31 #define List16_4 47 #define List16_5 63 #define List16_6 79 #define List16_7 95 #define List16_8 111 //---------------------------------- #define STR_CHARG "Charge" //提示充电 #define STR_PRCE "%" //电量百分比 #define STR_ERR "Err" //出错显示 #define STR_OFF "OFF" //关机显示 //待机显示 #define STR_WAIT1 "Portable UPS" #define STR_WAIT2 "110V/60HZ" #define STR_WAIT3 "Select:DC OR AC" #define STR_WAIT4 "BATTERY:" //开机显示 #define STR_OUTSTATUS "Out Status:" #define STR_DCOUT12V "DC12V" #define STR_DCOUT5V "DC5V" #define STR_ACOUT "AC110V" //#define STR_MAOHAO ":" //====================================== extern uint8 LOCKA[2][16] ; //extern uint8 code BATS[10][16] ; extern uint8 BAT2S[12][32] ; extern uint8 NC[] ; extern uint8 mao_hao[] ; extern uint8 num1[] ; extern uint8 num2[] ; extern uint8 num3[] ; extern uint8 num4[] ; extern uint8 num5[] ; extern uint8 num6[] ; extern uint8 num7[] ; extern uint8 num8[] ; extern uint8 num9[] ; extern uint8 Tab_Ascii_8x16[95][16] ; extern uint8 Tab_Ascii_5x7[95][5] ; extern uint8 zhuang1[] ; extern uint8 tai1[] ; extern uint8 shi1[] ; extern uint8 yong1[] ; //---------------------------------- //extern void LcdWriteCommand(uint8 data1) ; extern void Display_Graphic_32x32(uint8 page,uint8 column,uint8 *dp) ; extern void Display_Graphic_32x16(uint8 page,uint8 column,uint8 *dp) ; extern void Display_Graphic_16x16(uint8 page,uint8 column,uint8 *dp) ; extern void Display_Graphic_8x16(uint8 page,uint8 column,uint8 *dp) ; extern void Display_String_8x16(uint8 page,uint8 column,uint8 *text) ; extern void Display_Num_8x16(uint8 page,uint8 column,uint8 Num) ; extern void Display_Digital_8x16(uint8 page,uint8 column,uint8 *a) ; extern void Display_Nop_8x16(uint8 page,uint8 column,uint8 DatLong) ; extern void Display_String_5x7(uint8 page,uint8 column,uint8 *text) ; extern void Full_Display(void) ; extern void Clear_Screen(void) ; extern void Init_lcd12864(void) ; //#endif //========c12864.c============================================== /*************************************************** LCD:晶联讯电子 JLX12864G-086-PN(不带字库IC-UC1701X) 仅支持串行驱动方式 ***************************************************/ //#include "global.h" //#include "c12864.h" #define Tab_Ascii_8x16_CALL1 //粗体字形 #define Tab_Ascii_8x16_CALL2 //细体字形 #define Tab_Ascii_5x7_CALL #define Display_Graphic_32x32_CALL #define Display_Graphic_32x16_CALL #define Display_Graphic_16x16_CALL #define Display_Graphic_8x16_CALL #define Display_String_8x16_CALL //显示字符串 #define Display_Num_8x16_CALL //显示单个数据0-9 #define Display_Digital_8x16_CALL //显示数据0-9999 #define Display_Nop_8x16_CALL //填充8*16的空字符N个 #define Display_String_5x7_CALL #define Full_Display_CALL //============================================================================== uint8 aa[]={0,1,2,3,4,5,6,7,8,9}; uint8 LOCKA[2][16]={ //-- 童锁符号 -- //-- 此字体下对应的点阵为:宽x高=16x16 -- //0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xd8, 0xcc, 0xc4, 0xc4, 0xcc, 0xd8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, //0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xb0, 0x98, 0x8c, 0x8c, 0x8c, 0x8c, 0x98, 0xb0, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x00, } ; const PROGMEM uint8_t BATS[10][16]={ //-- 电池符号 -- //-- 此字体下对应的点阵为:宽x高=16x16 -- 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x0c, 0x0e, 0x0e, 0x0c, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x0c, 0x0e, 0x0e, 0x0c, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x0c, 0x0e, 0x0e, 0x0c, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7e, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xc8, 0xc8, 0xcc, 0xce, 0xce, 0xcc, 0xc8, 0xc8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xfc, 0xfe, 0xfe, 0xfc, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, }; const PROGMEM uint8_t BAT2S1[12][32]={ /*-- 电池符号 --*/ /*-- 此字体下对应的点阵为:宽x高=32x16 --*/ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3f, 0x07, 0x03}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xe8, 0xe8, 0x08, 0x08, 0xf8, 0xc0, 0x80}, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x20, 0x3f, 0x07, 0x03}, } ; const PROGMEM uint8_t BAT2S2[2][32]={ //-- 电池符号 不显示 -- //-- 此字体下对应的点阵为:宽x高=32x16 -- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, } ; uint8 NC[]={ /*-- 文字: 空符号 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, } ; uint8 mao_hao[]={ /*-- 文字: : (冒号) --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00}; uint8 num0[]={ /*-- 文字: 0 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00 }; uint8 num1[]={ /*-- 文字: 1 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00 }; uint8 num2[]={ /*-- 文字: 2 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00 //细体 //0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00, // 粗体 }; uint8 num3[]={ /*-- 文字: 3 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00 }; uint8 num4[]={ /*-- 文字: 4 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00 }; uint8 num5[]={ /*-- 文字: 5 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00 }; uint8 num6[]={ /*-- 文字: 6 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00 }; uint8 num7[]={ /*-- 文字: 7 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00 }; uint8 num8[]={ /*-- 文字: 8 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00 }; uint8 num9[]={ /*-- 文字: 9 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00 }; //=======8x16======================================================================= #ifdef Display_String_8x16_CALL //Tab_Ascii_8x16_CALL const PROGMEM uint8_t Tab_Ascii_8x161[95][16]={ //粗体字形 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - - 0x00,0x00,0x38,0xFC,0xFC,0x38,0x00,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00, // -!- 0x00,0x0E,0x1E,0x00,0x00,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -"- 0x20,0xF8,0xF8,0x20,0xF8,0xF8,0x20,0x00,0x02,0x0F,0x0F,0x02,0x0F,0x0F,0x02,0x00, // -#- 0x38,0x7C,0x44,0x47,0x47,0xCC,0x98,0x00,0x03,0x06,0x04,0x1C,0x1C,0x07,0x03,0x00, // -$- 0x30,0x30,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x0C,0x0C,0x00, // -%- 0x80,0xD8,0x7C,0xE4,0xBC,0xD8,0x40,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -&- 0x00,0x10,0x1E,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -'- 0x00,0x00,0xF0,0xF8,0x0C,0x04,0x00,0x00,0x00,0x00,0x03,0x07,0x0C,0x08,0x00,0x00, // -(- 0x00,0x00,0x04,0x0C,0xF8,0xF0,0x00,0x00,0x00,0x00,0x08,0x0C,0x07,0x03,0x00,0x00, // -)- 0x80,0xA0,0xE0,0xC0,0xC0,0xE0,0xA0,0x80,0x00,0x02,0x03,0x01,0x01,0x03,0x02,0x00, // -*- 0x00,0x80,0x80,0xE0,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x03,0x03,0x00,0x00,0x00, // -+- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1E,0x0E,0x00,0x00,0x00, // -,- 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // --- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00, // -.- 0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00, // -/- 0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00, // -0- 0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00, // -1- 0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00, // -2- 0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00, // -3- 0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00, // -4- 0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00, // -5- 0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -6- 0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00, // -7- 0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -8- 0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00, // -9- 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00,0x00, // -:- 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x08,0x0E,0x06,0x00,0x00,0x00, // -;- 0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x00,0x00,0x00,0x01,0x03,0x06,0x0C,0x08,0x00, // -<- 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00, // -=- 0x00,0x08,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x08,0x0C,0x06,0x03,0x01,0x00,0x00, // ->- 0x18,0x1C,0x04,0xC4,0xE4,0x3C,0x18,0x00,0x00,0x00,0x00,0x0D,0x0D,0x00,0x00,0x00, // -?- 0xF0,0xF8,0x08,0xC8,0xC8,0xF8,0xF0,0x00,0x07,0x0F,0x08,0x0B,0x0B,0x0B,0x01,0x00, // -@- 0xE0,0xF0,0x98,0x8C,0x98,0xF0,0xE0,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -A- 0x04,0xFC,0xFC,0x44,0x44,0xFC,0xB8,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0F,0x07,0x00, // -B- 0xF0,0xF8,0x0C,0x04,0x04,0x0C,0x18,0x00,0x03,0x07,0x0C,0x08,0x08,0x0C,0x06,0x00, // -C- 0x04,0xFC,0xFC,0x04,0x0C,0xF8,0xF0,0x00,0x08,0x0F,0x0F,0x08,0x0C,0x07,0x03,0x00, // -D- 0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00, // -E- 0x04,0xFC,0xFC,0x44,0xE4,0x0C,0x1C,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -F- 0xF0,0xF8,0x0C,0x84,0x84,0x8C,0x98,0x00,0x03,0x07,0x0C,0x08,0x08,0x07,0x0F,0x00, // -G- 0xFC,0xFC,0x40,0x40,0x40,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -H- 0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -I- 0x00,0x00,0x00,0x04,0xFC,0xFC,0x04,0x00,0x07,0x0F,0x08,0x08,0x0F,0x07,0x00,0x00, // -J- 0x04,0xFC,0xFC,0xC0,0xF0,0x3C,0x0C,0x00,0x08,0x0F,0x0F,0x00,0x01,0x0F,0x0E,0x00, // -K- 0x04,0xFC,0xFC,0x04,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x08,0x0C,0x0E,0x00, // -L- 0xFC,0xFC,0x38,0x70,0x38,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -M- 0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00, // -N- 0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00, // -O- 0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -P- 0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00, // -Q- 0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00, // -R- 0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00, // -S- 0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -T- 0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -U- 0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00, // -V- 0xFC,0xFC,0x00,0x80,0x00,0xFC,0xFC,0x00,0x03,0x0F,0x0E,0x03,0x0E,0x0F,0x03,0x00, // -W- 0x0C,0x3C,0xF0,0xC0,0xF0,0x3C,0x0C,0x00,0x0C,0x0F,0x03,0x00,0x03,0x0F,0x0C,0x00, // -X- 0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -Y- 0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00, // -Z- 0x00,0x00,0xFC,0xFC,0x04,0x04,0x00,0x00,0x00,0x00,0x0F,0x0F,0x08,0x08,0x00,0x00, // -[- 0x38,0x70,0xE0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x00, // -\- 0x00,0x00,0x04,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x0F,0x00,0x00, // -]- 0x08,0x0C,0x06,0x03,0x06,0x0C,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -^- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, // -_- 0x00,0x00,0x03,0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -`- 0x00,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -a- 0x04,0xFC,0xFC,0x20,0x60,0xC0,0x80,0x00,0x08,0x0F,0x07,0x08,0x08,0x0F,0x07,0x00, // -b- 0xC0,0xE0,0x20,0x20,0x20,0x60,0x40,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00, // -c- 0x80,0xC0,0x60,0x24,0xFC,0xFC,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -d- 0xC0,0xE0,0xA0,0xA0,0xA0,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0C,0x04,0x00, // -e- 0x40,0xF8,0xFC,0x44,0x0C,0x18,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -f- 0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x27,0x6F,0x48,0x48,0x7F,0x3F,0x00,0x00, // -g- 0x04,0xFC,0xFC,0x40,0x20,0xE0,0xC0,0x00,0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00, // -h- 0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -i- 0x00,0x00,0x00,0x00,0x20,0xEC,0xEC,0x00,0x00,0x30,0x70,0x40,0x40,0x7F,0x3F,0x00, // -j- 0x04,0xFC,0xFC,0x80,0xC0,0x60,0x20,0x00,0x08,0x0F,0x0F,0x01,0x03,0x0E,0x0C,0x00, // -k- 0x00,0x00,0x04,0xFC,0xFC,0x00,0x00,0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00, // -l- 0xE0,0xE0,0x60,0xC0,0x60,0xE0,0xC0,0x00,0x0F,0x0F,0x00,0x0F,0x00,0x0F,0x0F,0x00, // -m- 0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x00,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00, // -n- 0xC0,0xE0,0x20,0x20,0x20,0xE0,0xC0,0x00,0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00, // -o- 0x20,0xE0,0xC0,0x20,0x20,0xE0,0xC0,0x00,0x40,0x7F,0x7F,0x48,0x08,0x0F,0x07,0x00, // -p- 0xC0,0xE0,0x20,0x20,0xC0,0xE0,0x20,0x00,0x07,0x0F,0x08,0x48,0x7F,0x7F,0x40,0x00, // -q- 0x20,0xE0,0xC0,0x60,0x20,0x60,0xC0,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00, // -r- 0x40,0xE0,0xA0,0x20,0x20,0x60,0x40,0x00,0x04,0x0C,0x09,0x09,0x0B,0x0E,0x04,0x00, // -s- 0x20,0x20,0xF8,0xFC,0x20,0x20,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x0C,0x04,0x00, // -t- 0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x07,0x0F,0x08,0x08,0x07,0x0F,0x08,0x00, // -u- 0x00,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x00,0x00,0x03,0x07,0x0C,0x0C,0x07,0x03,0x00, // -v- 0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x07,0x0F,0x0C,0x07,0x0C,0x0F,0x07,0x00, // -w- 0x20,0x60,0xC0,0x80,0xC0,0x60,0x20,0x00,0x08,0x0C,0x07,0x03,0x07,0x0C,0x08,0x00, // -x- 0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x47,0x4F,0x48,0x48,0x68,0x3F,0x1F,0x00, // -y- 0x60,0x60,0x20,0xA0,0xE0,0x60,0x20,0x00,0x0C,0x0E,0x0B,0x09,0x08,0x0C,0x0C,0x00, // -z- 0x00,0x40,0x40,0xF8,0xBC,0x04,0x04,0x00,0x00,0x00,0x00,0x07,0x0F,0x08,0x08,0x00, // -{- 0x00,0x00,0x00,0xBC,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00, // -|- 0x00,0x04,0x04,0xBC,0xF8,0x40,0x40,0x00,0x00,0x08,0x08,0x0F,0x07,0x00,0x00,0x00, // -}- 0x08,0x0C,0x04,0x0C,0x08,0x0C,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // -~- } ; #endif //Tab_Ascii_8x16_CALL1 //=======8x16======================================================================= //#ifdef Tab_Ascii_8x16_CALL2 // #ifdef Display_Num_8x16_CALL const PROGMEM uint8_t Tab_Ascii_8x162[95][16]={ //细体字形 /*-- 文字: --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: ! --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00, /*-- 文字: " --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: # --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00, /*-- 文字: $ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00, /*-- 文字: % --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00, /*-- 文字: & --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10, /*-- 文字: ' --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: ( --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00, /*-- 文字: ) --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00, /*-- 文字: * --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00, /*-- 文字: + --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00, /*-- 文字: , --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00, /*-- 文字: - --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01, /*-- 文字: . --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, /*-- 文字: / --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00, /*-- 文字: 0 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: 1 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: 2 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, /*-- 文字: 3 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 4 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, /*-- 文字: 5 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 6 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: 7 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, /*-- 文字: 8 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: 9 --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, /*-- 文字: : --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00, /*-- 文字: ; --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00, /*-- 文字: < --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00, /*-- 文字: = --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00, /*-- 文字: > --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00, /*-- 文字: ? --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00, /*-- 文字: @ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00, /*-- 文字: A --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20, /*-- 文字: B --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: C --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00, /*-- 文字: D --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: E --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00, /*-- 文字: F --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00, /*-- 文字: G --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00, /*-- 文字: H --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20, /*-- 文字: I --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: J --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00, /*-- 文字: K --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00, /*-- 文字: L --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00, /*-- 文字: M --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00, /*-- 文字: N --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00, /*-- 文字: O --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00, /*-- 文字: P --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00, /*-- 文字: Q --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00, /*-- 文字: R --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20, /*-- 文字: S --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00, /*-- 文字: T --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00, /*-- 文字: U --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00, /*-- 文字: V --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00, /*-- 文字: W --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00, /*-- 文字: X --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20, /*-- 文字: Y --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00, /*-- 文字: Z --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00, /*-- 文字: [ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00, /*-- 文字: \ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00, /*-- 文字: ] --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00, /*-- 文字: ^ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: _ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80, /*-- 文字: ` --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*-- 文字: a --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20, /*-- 文字: b --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: c --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00, /*-- 文字: d --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20, /*-- 文字: e --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00, /*-- 文字: f --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: g --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00, /*-- 文字: h --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20, /*-- 文字: i --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: j --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00, /*-- 文字: k --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00, /*-- 文字: l --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /*-- 文字: m --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F, /*-- 文字: n --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20, /*-- 文字: o --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00, /*-- 文字: p --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00, /*-- 文字: q --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80, /*-- 文字: r --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00, /*-- 文字: s --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00, /*-- 文字: t --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00, /*-- 文字: u --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20, /*-- 文字: v --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00, /*-- 文字: w --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00, /*-- 文字: x --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00, /*-- 文字: y --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00, /*-- 文字: z --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00, /*-- 文字: { --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40, /*-- 文字: | --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00, /*-- 文字: } --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00, /*-- 文字: ~ --*/ /*-- Comic Sans MS12; 此字体下对应的点阵为:宽x高=8x16 --*/ 0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; ///#endif //#endif //Tab_Ascii_8x16_CALL1 //=======5x7======================================================================= //#ifdef Tab_Ascii_5x7_CALL const PROGMEM uint8_t Tab_Ascii_5x71[95][5]={ /*全体ASCII 列表:5x7点阵*/ 0x00,0x00,0x00,0x00,0x00,//space 0x00,0x00,0x4f,0x00,0x00,//! 0x00,0x07,0x00,0x07,0x00,//" 0x14,0x7f,0x14,0x7f,0x14,//# 0x24,0x2a,0x7f,0x2a,0x12,//$ 0x23,0x13,0x08,0x64,0x62,//% 0x36,0x49,0x55,0x22,0x50,//& 0x00,0x05,0x07,0x00,0x00,//] 0x00,0x1c,0x22,0x41,0x00,//( 0x00,0x41,0x22,0x1c,0x00,//) 0x14,0x08,0x3e,0x08,0x14,//* 0x08,0x08,0x3e,0x08,0x08,//+ 0x00,0x50,0x30,0x00,0x00,//, 0x08,0x08,0x08,0x08,0x08,//- 0x00,0x60,0x60,0x00,0x00,//. 0x20,0x10,0x08,0x04,0x02,/// 0x3e,0x51,0x49,0x45,0x3e,//0 0x00,0x42,0x7f,0x40,0x00,//1 0x42,0x61,0x51,0x49,0x46,//2 0x21,0x41,0x45,0x4b,0x31,//3 0x18,0x14,0x12,0x7f,0x10,//4 0x27,0x45,0x45,0x45,0x39,//5 0x3c,0x4a,0x49,0x49,0x30,//6 0x01,0x71,0x09,0x05,0x03,//7 0x36,0x49,0x49,0x49,0x36,//8 0x06,0x49,0x49,0x29,0x1e,//9 0x00,0x36,0x36,0x00,0x00,//: 0x00,0x56,0x36,0x00,0x00,//; 0x08,0x14,0x22,0x41,0x00,//< 0x14,0x14,0x14,0x14,0x14,//= 0x00,0x41,0x22,0x14,0x08,//> 0x02,0x01,0x51,0x09,0x06,//? 0x32,0x49,0x79,0x41,0x3e,//@ 0x7e,0x11,0x11,0x11,0x7e,//A 0x7f,0x49,0x49,0x49,0x36,//B 0x3e,0x41,0x41,0x41,0x22,//C 0x7f,0x41,0x41,0x22,0x1c,//D 0x7f,0x49,0x49,0x49,0x41,//E 0x7f,0x09,0x09,0x09,0x01,//F 0x3e,0x41,0x49,0x49,0x7a,//G 0x7f,0x08,0x08,0x08,0x7f,//H 0x00,0x41,0x7f,0x41,0x00,//I 0x20,0x40,0x41,0x3f,0x01,//J 0x7f,0x08,0x14,0x22,0x41,//K 0x7f,0x40,0x40,0x40,0x40,//L 0x7f,0x02,0x0c,0x02,0x7f,//M 0x7f,0x04,0x08,0x10,0x7f,//N 0x3e,0x41,0x41,0x41,0x3e,//O 0x7f,0x09,0x09,0x09,0x06,//P 0x3e,0x41,0x51,0x21,0x5e,//Q 0x7f,0x09,0x19,0x29,0x46,//R 0x46,0x49,0x49,0x49,0x31,//S 0x01,0x01,0x7f,0x01,0x01,//T 0x3f,0x40,0x40,0x40,0x3f,//U 0x1f,0x20,0x40,0x20,0x1f,//V 0x3f,0x40,0x38,0x40,0x3f,//W 0x63,0x14,0x08,0x14,0x63,//X 0x07,0x08,0x70,0x08,0x07,//Y 0x61,0x51,0x49,0x45,0x43,//Z 0x00,0x7f,0x41,0x41,0x00,//[ 0x02,0x04,0x08,0x10,0x20,//\ 0x00,0x41,0x41,0x7f,0x00,//] 0x04,0x02,0x01,0x02,0x04,//^ 0x40,0x40,0x40,0x40,0x40,//_ 0x01,0x02,0x04,0x00,0x00,//` 0x20,0x54,0x54,0x54,0x78,//a 0x7f,0x48,0x48,0x48,0x30,//b 0x38,0x44,0x44,0x44,0x44,//c 0x30,0x48,0x48,0x48,0x7f,//d 0x38,0x54,0x54,0x54,0x58,//e 0x00,0x08,0x7e,0x09,0x02,//f 0x48,0x54,0x54,0x54,0x3c,//g 0x7f,0x08,0x08,0x08,0x70,//h 0x00,0x00,0x7a,0x00,0x00,//i 0x20,0x40,0x40,0x3d,0x00,//j 0x7f,0x20,0x28,0x44,0x00,//k 0x00,0x41,0x7f,0x40,0x00,//l 0x7c,0x04,0x38,0x04,0x7c,//m 0x7c,0x08,0x04,0x04,0x78,//n 0x38,0x44,0x44,0x44,0x38,//o 0x7c,0x14,0x14,0x14,0x08,//p 0x08,0x14,0x14,0x14,0x7c,//q 0x7c,0x08,0x04,0x04,0x08,//r 0x48,0x54,0x54,0x54,0x24,//s 0x04,0x04,0x3f,0x44,0x24,//t 0x3c,0x40,0x40,0x40,0x3c,//u 0x1c,0x20,0x40,0x20,0x1c,//v 0x3c,0x40,0x30,0x40,0x3c,//w 0x44,0x28,0x10,0x28,0x44,//x 0x04,0x48,0x30,0x08,0x04,//y 0x44,0x64,0x54,0x4c,0x44,//z 0x08,0x36,0x41,0x41,0x00,//{ 0x00,0x00,0x77,0x00,0x00,//| 0x00,0x41,0x41,0x36,0x08,//} 0x04,0x02,0x02,0x02,0x01,//~ }; //#endif //Tab_Ascii_5x7_CALL uint8 zhuang1[]={ /*-- 文字: 状 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x08,0x30,0x00,0xFF,0x20,0x20,0x20,0x20,0xFF,0x20,0xE1,0x26,0x2C,0x20,0x20,0x00, 0x04,0x02,0x01,0xFF,0x40,0x20,0x18,0x07,0x00,0x00,0x03,0x0C,0x30,0x60,0x20,0x00 }; uint8 tai1[]={ /*-- 文字: 态 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x04,0x04,0x04,0x84,0x44,0x34,0x4F,0x94,0x24,0x44,0x84,0x84,0x04,0x00,0x00, 0x00,0x60,0x39,0x01,0x00,0x3C,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00 }; uint8 shi1[]={ /*-- 文字: 使 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x40,0x20,0xF0,0x1C,0x07,0xF2,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xF4,0x04,0x00, 0x00,0x00,0x7F,0x00,0x40,0x41,0x22,0x14,0x0C,0x13,0x10,0x30,0x20,0x61,0x20,0x00 }; uint8 yong1[]={ /*-- 文字: 用 --*/ /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/ 0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00, 0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00 }; //x=9 y=16 点阵 0-9 const PROGMEM uint8_t lcd_numbers_lit[]={ 0x00,0xE0,0xE0,0x60,0x20,0x60,0xE0,0xE0,0x00,//0 0x00,0x7F,0x7F,0x60,0x40,0x60,0x7F,0x7F,0x00, 0x00,0x00,0x40,0x40,0xE0,0xE0,0x00,0x00,0x00,//1 0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00, 0x00,0xE0,0xE0,0x20,0x20,0xE0,0xE0,0xC0,0x00,//2 0x00,0x71,0x79,0x78,0x5E,0x47,0x43,0x41,0x00, 0x00,0xE0,0xE0,0x20,0x20,0xE0,0xE0,0xC0,0x00,//3 0x00,0x78,0x78,0x42,0x47,0x7F,0x7D,0x39,0x00, 0x00,0x00,0x00,0x80,0xE0,0xE0,0xE0,0x00,0x00,//4 0x00,0x0E,0x0F,0x0B,0x7F,0x7F,0x7F,0x08,0x00, 0x00,0xE0,0xE0,0xE0,0x20,0x20,0x20,0x20,0x00,//5 0x00,0x73,0x73,0x43,0x41,0x7F,0x7F,0x3E,0x00, 0x00,0xE0,0xE0,0x60,0x20,0x60,0x60,0x60,0x00,//6 0x00,0x7F,0x7F,0x43,0x43,0x7F,0x7E,0x3C,0x00, 0x00,0x20,0x20,0x20,0xA0,0xE0,0xE0,0x60,0x00,//7 0x00,0x00,0x40,0x78,0x7F,0x0F,0x01,0x00,0x00, 0x00,0xE0,0xE0,0x20,0x20,0x20,0xE0,0xE0,0x00,//8 0x00,0x7D,0x7D,0x47,0x42,0x47,0x7D,0x7D,0x00, 0x00,0xE0,0xE0,0x20,0x20,0xE0,0xE0,0x80,0x00,//9 0x00,0x67,0x6F,0x4C,0x6C,0x7F,0x3F,0x0F,0x00 }; //x=12 y=16 点阵 0-9数字 const PROGMEM uint8_t lcd_numbers[]={ 0x00,0xF0,0xFC,0xFC,0x0E,0x02,0x02,0x0E,0xFC,0xFC,0xF0,0x00,//0 0x00,0x07,0x3F,0x3F,0x70,0x40,0x40,0x70,0x3F,0x3F,0x07,0x00, 0x00,0x00,0x00,0x08,0x08,0xFC,0xFE,0xFE,0x00,0x00,0x00,0x00,//1 0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00, 0x00,0x38,0x3C,0x3E,0x06,0x02,0x86,0xFE,0xFC,0x78,0x00,0x00,//2 0x00,0x60,0x78,0x7C,0x5E,0x4F,0x43,0x41,0x40,0x40,0x00,0x00, 0x00,0x18,0x1C,0x1E,0x86,0x82,0xC6,0xFE,0x7C,0x38,0x00,0x00,//3 0x00,0x1C,0x3C,0x7C,0x60,0x40,0x61,0x7F,0x3F,0x1E,0x00,0x00, 0x00,0x00,0x80,0xC0,0xF0,0x3C,0xFE,0xFE,0xFE,0x00,0x00,0x00,//4 0x00,0x06,0x07,0x05,0x04,0x04,0x7F,0x7F,0x7F,0x04,0x04,0x00, 0x00,0x00,0xFE,0xFE,0xFE,0x62,0x62,0xE2,0xE2,0x82,0x00,0x00,//5 0x00,0x18,0x38,0x78,0x60,0x40,0x60,0x7F,0x3F,0x1F,0x00,0x00, 0x00,0xF0,0xFC,0xFC,0xCE,0x42,0xC6,0xCE,0x8E,0x0C,0x00,0x00,//6 0x00,0x0F,0x3F,0x7F,0x60,0x40,0x60,0x7F,0x3F,0x1F,0x00,0x00, 0x00,0x02,0x02,0x02,0x02,0x82,0xF2,0xFE,0x7E,0x0E,0x00,0x00,//7 0x00,0x00,0x00,0x60,0x7C,0x7F,0x1F,0x03,0x00,0x00,0x00,0x00, 0x00,0x38,0x7C,0x7E,0xC6,0x82,0x82,0xC6,0x7E,0x7C,0x38,0x00,//8 0x00,0x1E,0x3F,0x7F,0x61,0x40,0x40,0x61,0x7F,0x3F,0x1E,0x00, 0x00,0xF8,0xFC,0xFE,0x06,0x02,0x06,0xFE,0xFC,0xF0,0x00,0x00,//9 0x00,0x30,0x71,0x73,0x63,0x42,0x73,0x3F,0x1F,0x07,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//. 0x00,0x00,0x00,0x38,0x38,0x38,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,//- 0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00 }; const PROGMEM uint8_t Tab_Ascii_5x72[95][5]={ /*全体ASCII 列表:5x7点阵*/ 0x00,0x00,0x00,0x00,0x00,//space 0x00,0x00,0x4f,0x00,0x00,//! 0x00,0x07,0x00,0x07,0x00,//" 0x14,0x7f,0x14,0x7f,0x14,//# 0x24,0x2a,0x7f,0x2a,0x12,//$ 0x23,0x13,0x08,0x64,0x62,//% 0x36,0x49,0x55,0x22,0x50,//& 0x00,0x05,0x07,0x00,0x00,//] 0x00,0x1c,0x22,0x41,0x00,//( 0x00,0x41,0x22,0x1c,0x00,//) 0x14,0x08,0x3e,0x08,0x14,//* 0x08,0x08,0x3e,0x08,0x08,//+ 0x00,0x50,0x30,0x00,0x00,//, 0x08,0x08,0x08,0x08,0x08,//- 0x00,0x60,0x60,0x00,0x00,//. 0x20,0x10,0x08,0x04,0x02,/// 0x3e,0x51,0x49,0x45,0x3e,//0 0x00,0x42,0x7f,0x40,0x00,//1 0x42,0x61,0x51,0x49,0x46,//2 0x21,0x41,0x45,0x4b,0x31,//3 0x18,0x14,0x12,0x7f,0x10,//4 0x27,0x45,0x45,0x45,0x39,//5 0x3c,0x4a,0x49,0x49,0x30,//6 0x01,0x71,0x09,0x05,0x03,//7 0x36,0x49,0x49,0x49,0x36,//8 0x06,0x49,0x49,0x29,0x1e,//9 0x00,0x36,0x36,0x00,0x00,//: 0x00,0x56,0x36,0x00,0x00,//; 0x08,0x14,0x22,0x41,0x00,//< 0x14,0x14,0x14,0x14,0x14,//= 0x00,0x41,0x22,0x14,0x08,//> 0x02,0x01,0x51,0x09,0x06,//? 0x32,0x49,0x79,0x41,0x3e,//@ 0x7e,0x11,0x11,0x11,0x7e,//A 0x7f,0x49,0x49,0x49,0x36,//B 0x3e,0x41,0x41,0x41,0x22,//C 0x7f,0x41,0x41,0x22,0x1c,//D 0x7f,0x49,0x49,0x49,0x41,//E 0x7f,0x09,0x09,0x09,0x01,//F 0x3e,0x41,0x49,0x49,0x7a,//G 0x7f,0x08,0x08,0x08,0x7f,//H 0x00,0x41,0x7f,0x41,0x00,//I 0x20,0x40,0x41,0x3f,0x01,//J 0x7f,0x08,0x14,0x22,0x41,//K 0x7f,0x40,0x40,0x40,0x40,//L 0x7f,0x02,0x0c,0x02,0x7f,//M 0x7f,0x04,0x08,0x10,0x7f,//N 0x3e,0x41,0x41,0x41,0x3e,//O 0x7f,0x09,0x09,0x09,0x06,//P 0x3e,0x41,0x51,0x21,0x5e,//Q 0x7f,0x09,0x19,0x29,0x46,//R 0x46,0x49,0x49,0x49,0x31,//S 0x01,0x01,0x7f,0x01,0x01,//T 0x3f,0x40,0x40,0x40,0x3f,//U 0x1f,0x20,0x40,0x20,0x1f,//V 0x3f,0x40,0x38,0x40,0x3f,//W 0x63,0x14,0x08,0x14,0x63,//X 0x07,0x08,0x70,0x08,0x07,//Y 0x61,0x51,0x49,0x45,0x43,//Z 0x00,0x7f,0x41,0x41,0x00,//[ 0x02,0x04,0x08,0x10,0x20,// 0x00,0x41,0x41,0x7f,0x00,//] 0x04,0x02,0x01,0x02,0x04,//^ 0x40,0x40,0x40,0x40,0x40,//_ 0x01,0x02,0x04,0x00,0x00,//` 0x20,0x54,0x54,0x54,0x78,//a 0x7f,0x48,0x48,0x48,0x30,//b 0x38,0x44,0x44,0x44,0x44,//c 0x30,0x48,0x48,0x48,0x7f,//d 0x38,0x54,0x54,0x54,0x58,//e 0x00,0x08,0x7e,0x09,0x02,//f 0x48,0x54,0x54,0x54,0x3c,//g 0x7f,0x08,0x08,0x08,0x70,//h 0x00,0x00,0x7a,0x00,0x00,//i 0x20,0x40,0x40,0x3d,0x00,//j 0x7f,0x20,0x28,0x44,0x00,//k 0x00,0x41,0x7f,0x40,0x00,//l 0x7c,0x04,0x38,0x04,0x7c,//m 0x7c,0x08,0x04,0x04,0x78,//n 0x38,0x44,0x44,0x44,0x38,//o 0x7c,0x14,0x14,0x14,0x08,//p 0x08,0x14,0x14,0x14,0x7c,//q 0x7c,0x08,0x04,0x04,0x08,//r 0x48,0x54,0x54,0x54,0x24,//s 0x04,0x04,0x3f,0x44,0x24,//t 0x3c,0x40,0x40,0x40,0x3c,//u 0x1c,0x20,0x40,0x20,0x1c,//v 0x3c,0x40,0x30,0x40,0x3c,//w 0x44,0x28,0x10,0x28,0x44,//x 0x04,0x48,0x30,0x08,0x04,//y 0x44,0x64,0x54,0x4c,0x44,//z 0x08,0x36,0x41,0x41,0x00,//{ 0x00,0x00,0x77,0x00,0x00,//| 0x00,0x41,0x41,0x36,0x08,//} 0x04,0x02,0x02,0x02,0x01,//~ }; /////////////// #define Start_T1 TCCR1B|=_BV(CS11);TCNT1=0//复位预计分频器并开启定时器T1 #define Stop_T1 TCCR1B&=~_BV(CS11) //关闭定时器T1 //数码管的段码编码 unsigned char table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; volatile unsigned char i,j,k; volatile unsigned char IRcode; //定义一个长度为4字节的无符号long类型变量来存储代码 volatile unsigned char IR_OK=0; //IR信号接收有效 当程序响应接收以后请马上清零 这样才会继续接收下一IR码 volatile unsigned char IR_con=0; //IR信号当前接收位 0时表示第0位即同步码(4.5ms高电平) volatile unsigned int Pulse_length=0; //捕获的脉冲宽度 volatile unsigned char ICP_Parity=0; //捕获中断奇偶次计数 1时为偶次 并在此时判断脉宽 volatile unsigned char address; volatile unsigned char code_data; volatile unsigned char code_data1; unsigned char clrbit; #define FREQ 8 //定义单片机工作频率为 4M /////////////// //**************************************************************** // 函数名称:DelayLcd // 函数功能:延时 // 入口参数: // 出口参数: //***************************************************************** void DelayLcd(uint16 i) { uint16 j; for(j=200;j>0;j--) for(;i>0;i--); //while(i--); } //**************************************************************** // 函数名称:LcdWriteCommand // 函数功能:写指令到LCD模块 // 入口参数:数据 // 出口参数: //***************************************************************** void LcdWriteCommand(uint8 data1) // { uint8 i ; P_LCDCS0 ; P_LCDRS0 ; for(i=8;i>0;i--) { P_LCDCLK0; if(data1&0x80) P_LCDDAT1; else P_LCDDAT0; P_LCDCLK1; data1 <<= 1; } } //**************************************************************** // 函数名称:LcdWritedata // 函数功能:写数据到LCD模块 // 入口参数:数据 // 出口参数: //***************************************************************** void LcdWritedata(uint8 data1) // { uint8 i; P_LCDCS0 ; P_LCDRS1 ; for(i=8;i>0;i--) { P_LCDCLK0; if(data1&0x80) P_LCDDAT1; else P_LCDDAT0; P_LCDCLK1; data1 <<= 1; } } //**************************************************************** // 函数名称:Lcd_SetAddr // 函数功能:设置LCD显示地址 // 入口参数: 页地址 列地址 // 出口参数: //***************************************************************** void Lcd_SetAddr(uint8 page,uint8 column) { //LcdWriteCommand(0xb0 | (y+yy)); //LcdWriteCommand(0x10 | (x>>4)); //LcdWriteCommand(0x00 | (x&0x0f)); //P_LCDCS0 ; LcdWriteCommand(0xb0|page); /*设置页地址*/ LcdWriteCommand((column>>4)|0x10); /*设置列地址的高4位*/ LcdWriteCommand(column&0x0f); /*设置列地址的低4位*/ } ////// void Display_Graphic_32x2(uint8 page,uint8 column,PROGMEM uint8_t *dp) // 电池显示 0、2、4、6、8、10 { uint8 i,j; uint8 page_address; uint8 column_address_L,column_address_H; page_address = 0xb0|page; column_address_L =(column&0x0f); column_address_H =(column>>4)|0x10; P_LCDCS0 ; for(j=0;j<2;j++) { LcdWriteCommand(page_address+j); /*设置页地址*/ LcdWriteCommand(column_address_H); /*设置列地址的高4位*/ LcdWriteCommand(column_address_L); /*设置列地址的低4位*/ for (i=32;i>0;i--) //写32行 { LcdWritedata(pgm_read_byte(dp++)); /*写数据到LCD,每写完一个8位的数据后列地址自动加1*/ } LcdWritedata(0x00); } P_LCDCS1 ; } //#ifdef Display_Graphic_32x32_CALL void Display_Graphic_32x32(uint8 page,uint8 column,PROGMEM uint8_t *dp) { uint8 i,j; uint8 page_address; uint8 column_address_L,column_address_H; page_address = 0xb0|page; column_address_L =(column&0x0f); column_address_H =(column>>4)|0x10; P_LCDCS0 ; &
标签: 程序
上传时间: 2016-03-03
上传用户:彦 yan
是否要先打开ALLEGRO? 不需要(当然你的机器须有CADENCE系统)。生成完封装后在你的输出目录下就会有几千个器件(全部生成的话),默认输出目录为c:\MySym\. Level里面的Minimum, Nominal, Maximum 是什么意思? 对应ipc7351A的ABC封装吗? 是的 能否将MOST, NOMINAL, LEAST三种有差别的封装在命名上也体现出差别? NOMINAL 的名称最后没有后缀,MOST的后缀自动添加“M”,LEAST的后缀自动添加“L”,你看看生成的库名称就知道了。(直插件以及特别的器件,如BGA等是没有MOST和LEAST级别的,对这类器件只有NOMINAL) IC焊盘用长方形好像比用椭圆形的好,能不能生成长方形的? 嗯。。。。基本上应该是非直角的焊盘比矩形的焊盘好,我记不得是AMD还是NS还是AD公司专门有篇文档讨论了这个问题,如果没有记错的话至少有以下好处:信号质量好、更省空间(特别是紧密设计中)、更省锡量。我过去有一篇帖子有一个倒角焊盘的SKILL,用于晶振电路和高速器件(如DDR的滤波电容),原因是对宽度比较大的矩形用椭圆焊盘也不合适,这种情况下用自定义的矩形倒角焊盘就比较好了---你可以从网上另外一个DDR设计的例子中看到。 当然,我已经在程序中添加了一选择项,对一些矩形焊盘可以选择倒角方式. 刚才试了一下,感觉器件的命名的规范性不是太好,另好像不能生成器件的DEVICE文件,我没RUN完。。。 这个程序的命名方法基本参照IPC-7351,每个人都有自己的命名嗜好,仍是不好统一的;我是比较懒的啦,所以就尽量靠近IPC-7351了。 至于DEVICE,的选项已经添加 (这就是批量程序的好处,代码中加一行,重新生产的上千上万个封装就都有新东西了)。 你的库都是"-"的,请问用过ALLEGRO的兄弟,你们的FOOTPRINT认"-"吗?反正我的ALLEGRO只认"_"(下划线) 用“-”应该没有问题的,焊盘的命名我用的是"_"(这个一直没改动过)。 部分丝印画在焊盘上了。 丝印的问题我早已知道,只是尽量避免开(我有个可配置的SilkGap变量),不过工作量比较大,有些已经改过,有些还没有;另外我没有特别费功夫在丝印上的另一个原因是,我通常最后用AUTO-SILK的来合并相关的层,这样既方便快捷也统一各个器件的丝印间距,用AUTO-SILK的话丝印线会自动避开SOLDER-MASK的。 点击allegro后命令行出现E- Can't change to directory: Files\FPM,什么原因? 我想你一定是将FPM安装在一个含空格的目录里面了,比如C:\Program Files\等等之类,在自定义安装目录的时候该目录名不能含有空格,且存放生成的封装的目录名也不能含有空格。你如果用默认安装的话应该是不会有问题的, 默认FPM安装在C:\FPM,默认存放封装的目录为C:\MYSYM 0.04版用spb15.51生成时.allegro会死机.以前版本的Allegro封装生成器用spb15.51生成时没有死机现象 我在生成MELF类封装的时候有过一次死机现象,估计是文件操作错误导致ALLEGRO死机,原因是我没有找到在skill里面直接生成SHAPE焊盘的方法(FLASH和常规焊盘没问题), 查了下资料也没有找到解决方法,所以只得在外部调用SCRIPT来将就一下了。(下次我再查查看),用SCRIPT的话文件访问比较频繁(幸好目前MELF类的器件不多). 解决办法: 1、对MELF类器件单独选择生成,其它的应该可以一次生成。 2、试试最新的版本(当前0.05) 请说明运行在哪类器件的时候ALLEGRO出错,如果不是在MELF附近的话,请告知,谢谢。 用FPM0.04生成的封装好像文件都比较大,比如CAPC、RES等器件,都是300多K,而自己建的或采用PCB Libraries Eval生成的封装一般才几十K到100K左右,不知封装是不是包含了更多的信息? 我的每个封装文件包含了几个文字层(REF,VAL,TOL,DEV,PARTNUMBER等),SILK和ASSEM也是分开的,BOND层和高度信息,还有些定位线(在DISP层),可能这些越来越丰富的信息加大了生成文件的尺寸.你如果想看有什么内容的话,打开所有层就看见了(或REPORT) 非常感谢 LiWenHui 发现的BUG, 已经找到原因,是下面这行: axlDBChangeDesignExtents( '((-1000 -1000) (1000 1000))) 有尺寸空间开得太大,后又没有压缩的原因,现在生成的封装也只有几十K了,0.05版已经修复这个BUG了。 Allegro封装生成器0.04生成do-27封装不正确,生成封装的焊盘的位号为a,c.应该是A,B或者1,2才对. 呵呵,DIODE通常管脚名为AC(A = anode, C = cathode) 也有用AK 或 12的, 极少见AB。 除了DIODE和极个别插件以及BGA外,焊盘名字以数字为主, 下次我给DIODE一个选择项,可以选择AC 或 12 或 AK, 至于TRANSISTER我就不去区分BCE/CBE/ECB/EBC/GDS/GSD/DSG/DGS/SGD/SDG等了,这样会没完没了的,我将对TRANSISTER强制统一以数字编号了,如果用家非要改变,只得在生成库后手工修改。
标签: Footprint Maker 0.08 FPM skill
上传时间: 2018-01-10
上传用户:digitzing
用于开发单片机的!!!超级单片机开发工具!!! 单片机开发过程中用到的多功能工具,包括热敏电阻RT值--HEX数据转换;3种LED编码;色环电阻计算器;HEX/BIN 文件互相转换;eeprom数据到C/ASM源码转换;CRC校验生成;串口调试,带简单而实用的数据分析功能;串口/并口通讯监视等功能. 用C++ Builder开发,无须安装,直接运行,不对注册表进行操作。纯绿色软件。 详细说明: 1、RT转换:支持两种电路,8/10位转换精度,生成C/ASM源代码格式的数据,可手工输入数据或从文件中读取,输入的数据可以保存到文件中。文件格式为逗号分隔符: 温度,阻值 2、LED编码信息:可以支持 7段/14段/16段 LED,支持 C/ASM 语法,可生成 4/8 位编码,4位编码主要用于某些 LCD 驱动芯片。其中 7 段码包括:0 -- F (Hex) 14 段码包括:A -- Z, 0 -- F 16 段码包括:A -- Z, 0 -- F 编码方案可以保存供将来使用。 使用方法请点帮助。 3、色环电阻计算器功能。 4、HEX/BIN 文件相互转换; HEX/BIN 转换成 C/ASM 源代码格式,适用于eeprom数据等处理。 加入CRC校验码生成功能。其中生成BIN文件时自动生成校验码,Get CRC 可生成任意文件的CRC码。 另外还有相关知识、资料等。 5、串口调试具有 a. 基本通讯功能; b. 数据分析功能,可自定义通讯数据中的变量,包括变量名、变量类型(长度),显示方式等; 内存映射功能中自定义变量的起始地址即内存起始地址,可自定义; 由map文件自动读取内存变量(因条件所限,目前只支持由 ImageCraft C(ICC) 编译器产生的map文件,欢迎提供其他编译器的map文件样本); 可自定义内存块的起始/结束标志; 历史数据保存功能; c. 交互式通讯, 主发时可自定义多命令自动循环发送; 从发时可定义接收到相应命令后的应答数据并自动应答; 6、串口监视功能 目前具有本功能的多为共享软件,本软件中没有任何限制。 实时监视串口操作而不占用串口资源,可保存历史数据,2k下测试通过,98下使用捕捉时可能会有点问题,没有进行调试。 并口监视应该可以使用,没有调试。 各种工具
标签: 单片机
上传时间: 2019-05-27
上传用户:小爱心早餐