1、 1 凌阳, 拇指 凌阳 基于 EDA 技术 出租车计费 器 的 设计 凌阳, 拇指 凌阳 摘要 凌阳, 拇指 凌阳 本 文 以 Altera 公司的 DE2 开发板为中心 , 拇指 Quartus 凌阳, 拇指 凌阳 软件作为开发平台 , 拇指 使用Verilog 凌阳, 拇指 凌阳 HDL语言编程 , 拇指 设计了一个出租车计费的计费器模型 。 食指 在程序描述的过程中 , 拇指 用了行为描述方式和结构描述方式二种描述方式对 计费器 进行描述 。 食指 该计费器能动态扫描电路 , 拇指 将车费和路显示出来 , 拇指 各有两位小数 。 食指 整个自动控制系统由三 个主要电路构成:里程和车费计
2、算 、译码 和动态显示 。 食指 最后 给出了仿真的波形 ,拇指 并硬件实现 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 关键字 :出租车计费器 , 拇指 Verilog 凌阳, 拇指 凌阳 HDL 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 引言 凌阳, 拇指 凌阳 Verilog 凌阳, 拇指 凌阳 HDL 是一种硬件描述语言( HDL:Hardware 凌阳, 拇指 凌阳 Discription 凌阳, 拇指 凌阳 Language) , 拇指 是一种 用 文本形式来描述数字系统硬件的结构和行为的语言 , 拇指 用它可以表示逻辑电路图、逻辑表达式 , 拇指 还可以表示数字逻辑系统所完成
3、的逻辑功能 。 食指 凌阳, 拇指 凌阳 Verilog 凌阳, 拇指 凌阳 HDL和 VHDL是目前世界上最流行的两种硬件描述语言 , 拇指 都是在 20 世纪80 年代中期开发出来的 。 食指 现在 , 拇指 随着系统级 FPGA 以及片上系统的出现 , 拇指 软硬件协同设计和系统设计变得越来越重要 。 食指 传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合 。 食指 凌阳, 拇指 凌阳 随着出租车行业的发展 , 拇指 对出租车计费器的要求也越来越高 , 拇指 用户不仅要求计费器性能稳定计费准确 , 拇指 而且要求在乘坐出租车时 , 拇指 显示起步价、行车里程二部分 ,拇指 由自
4、动计费器自动记录 。 食指 安装在与汽车轮相连接的传感器在 汽车行进时向自动计费器发送脉冲信号 , 拇指 在一定的公里数内 , 拇指 按起步价计费;超过这一里程后 , 拇指 自动计费器按里程计费;超过一定费用后 , 拇指 则则增加里程费用;如果停车等候 , 拇指 则不收费 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2 设计原理 凌阳, 拇指 凌阳 本文设计了一个出租车计费器的模型 , 拇指 其接口信号如图 (一 ) 凌阳, 拇指 凌阳 所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 (一 ) 出租车计费器模型 方框图 凌阳, 拇指 凌
5、阳 车的状态由传感器传回来当作控制信号 , 拇指 用控制信号来控制计算里程和 车费模块 , 拇指 然后分别将里程和车费送到译码模块译码 , 拇指 输出的数据一起送到动态扫描模块 , 拇指 由片选信号控制哪部分译码模块输出的数据用数码管显示 。 食指 凌阳, 拇指 凌阳 当车启动后 , 拇指 计算里程和车费模块就开始计数 , 拇指 起步价为 7.00 元 , 拇指 并在车行 3Km后按 2.20 元 /Km计费 , 拇指 当计费器达到或超过 20 元时 , 拇指 每公里回收 50%的车费 , 拇指 车停止和暂停时不计费 ; 然后将里程和车费 送到译码模块译码和 动态显示模块动态显示 , 拇指 最
6、后显示在七段数码管上 , 拇指 动态显示的 时间间隔为秒钟 。 食指 凌阳, 拇指 凌阳 凌阳, 拇 指 凌阳 设计内容 凌阳, 拇指 凌阳 一) 源程序 凌阳, 拇指 凌阳 1 计 算 里程 和车 费 模块 taxicount 凌阳, 拇指 凌阳 本 模块 主要是计算里程和车费 。 食指 按行驶里程计费 , 拇指 起步价为 7.00 元 , 拇指 并在车行 3Km后按 2.20 元 /Km计费 , 拇指 当计费器达到或超过 20 元时 , 拇指 每公里回收 50%的车费 , 拇指车停止和暂停时不计费 。 食指 在本模块中 , 拇指 一个脉冲代表是里程要加 100 米 。 食指 计算里程和车费
7、的模块的功能结构框图如图 1-1 所示 。 食指 凌阳, 拇指 凌阳 3 s tops tar tc lkpa us ec he f ei 15 .0lu c he ng 15 .0tax ic ou ntin s t凌阳, 拇指 凌阳 图 1-1 凌阳, 拇指 凌阳 计算里程和车费模块的功能结 构框图 凌阳, 拇指 凌阳 根据模块实现的功能设计 Verilog 凌阳, 拇指 凌阳 HDL 源代码如下: 凌阳, 拇指 凌阳 module 凌阳, 拇指 凌阳 taxicount(stop,start,clk,pause,chefei,lucheng);凌阳, 拇指 凌阳 input 凌阳, 拇指
8、 凌阳 stop,start,clk,pause;凌阳, 拇指 凌阳 output 凌阳, 拇指 凌阳 reg19:0 凌阳, 拇指 凌阳 chefei,lucheng;凌阳, 拇指 凌阳 reg3:0 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 qijia,danjia;凌阳, 拇指 凌阳 reg12:0 ygl;凌阳, 拇指 凌阳 reg yglflag;凌阳, 拇指 凌阳 always 凌阳, 拇指 凌阳 (posedge 凌阳, 拇指 凌阳 clk)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 if(stop 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0)凌阳,
9、 拇指 凌阳 begin 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 danjia=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 qijia=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 ygl=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 lucheng=0;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 else 凌阳, 拇指 凌阳 if(start 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 chefei=700;凌阳, 拇指 凌阳 lucheng=0;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 else 凌阳, 拇指 凌阳 if(sta
10、rt凌阳, 拇指 凌阳 4 ygl=ygl+100;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 if(ygl3000)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 if(chefei2000)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 if(yglflag)凌阳, 拇指 凌阳 chefei=chefei+330;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 endmodule 凌阳, 拇指 凌阳 该模块定义输入输出端口如下: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 clk: 全局时钟信号 , 拇指
11、这里为 1Hz的时钟 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 stop: 当 stop=0 时 , 拇指 车停止; stop=1 时 , 拇指 车没停止 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 start: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 当 start= 凌阳, 拇指 凌阳 0 时 , 拇指 车起动 , 拇指 但没有走; start= 凌阳, 拇指 凌阳 1 时 , 拇指 车开动了 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 pause: 凌阳, 拇指 凌阳 当 pause 凌阳, 拇指 凌阳 =0
12、 时 , 拇指 车暂停 ; pause 凌阳, 拇指 凌阳 =1 时 , 拇指 车不暂停 。 食指 凌阳, 拇指 凌阳 5 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 chefei: 凌阳, 拇指 凌阳 表示车费 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 lucheng: 表示 里 程 。 食指 凌阳, 拇指 凌阳 在 Altera 公司的软件工具 Quartus 凌阳, 拇指 凌阳 (Windows 凌阳, 拇指 凌阳 XP 环境下 )中编译和波形仿真后得到的波形如图 1-2 所示: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1-2 凌阳, 拇指 凌阳 计算里程和车
13、费模块的 仿真波形 凌阳, 拇指 凌阳 2 七 段显示译码 器 模块 ymq8421 凌阳, 拇指 凌阳 本 模块 主要是将 4 位二 进制数 转换为 十 六 进制表示 。 食指 七段 显示译码 器 模块的功能结构框图如图 2-1 所示: 凌阳, 拇指 凌阳 a 3. .0 he x6. .0y m q8 42 1in st凌阳, 拇指 凌阳 图 2-1 凌阳, 拇指 凌阳 七段显示译码 器 的功能结构框图 凌阳, 拇指 凌阳 根据模块实现的功能设计 Verilog 凌阳, 拇指 凌阳 HDL 源代码如下: 凌阳, 拇指 凌阳 module 凌阳, 拇指 凌阳 ymq8421(a,hex);凌
14、阳, 拇指 凌阳 input3:0 凌阳, 拇指 凌阳 a;凌阳, 拇指 凌阳 output 凌阳, 拇指 凌阳 reg6:0 凌阳, 拇指 凌阳 hex;凌阳, 拇指 凌阳 always 凌阳, 拇指 凌阳 (a)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 case(a)凌阳, 拇指 凌阳 0 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b1000000;凌阳, 拇指 凌阳 1 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b1111001;凌阳, 拇指 凌阳 2 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0100100;凌阳, 拇指 凌阳 3 凌阳, 拇指
15、 凌阳 : 凌阳, 拇指 凌阳 hex=b0110000;凌阳, 拇指 凌阳 6 4 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0011001;凌阳, 拇指 凌阳 5 凌阳, 拇指 凌阳 : 凌 阳, 拇指 凌阳 hex=b0010010;凌阳, 拇指 凌阳 6 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0000010;凌阳, 拇指 凌阳 7 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b1111000;凌阳, 拇指 凌阳 8 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0000000;凌阳, 拇指 凌阳 9 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳
16、 hex=b0010000;凌阳, 拇指 凌阳 10 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0001000;凌阳, 拇指 凌阳 11 凌阳, 拇指 凌 阳 : 凌阳, 拇指 凌阳 hex=b0000011;凌阳, 拇指 凌阳 12 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b1000110;凌阳, 拇指 凌阳 13 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0100001;凌阳, 拇指 凌阳 14 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b0000110;凌阳, 拇指 凌阳 15 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 hex=b00011
17、10;凌阳, 拇指 凌阳 default 凌阳, 拇指 凌阳 :hex=b1111111;凌阳, 拇指 凌阳 endcase 凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 endmodule 凌阳, 拇指 凌阳 该 程序 定义输入输出端口如下: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 a: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 输入的 4 位二进制数 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 hex: 输出的 1 位十六进制数 。 食指 凌阳, 拇指 凌阳 在 Altera 公司的软件工具 Quartus 凌阳, 拇指 凌阳 (Windows
18、 凌阳, 拇指 凌阳 XP 环境下 )中编译和波形仿真后得到的波形如图 2-2 所示: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 2-2 凌 阳, 拇指 凌阳 七 显示译码器 的仿真波形 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 3 动 态显示 模块 display 凌阳, 拇指 凌阳 本 模块 为动态显示 , 拇指 时间间隔为秒 。 食指 动态显示模块的功能结构框图如图 3-17 所示 。 食指 凌阳, 拇指 凌阳 c lkdis 0 6. .0dis 1 6. .0dis 2 6. .0dis 3 6. .0dis 4 6. .0dis 5 6. .0dis 6 6. .0dis 7 6.
19、 .0H EX 0 6. .0H EX 1 6. .0H EX 2 6. .0H EX 3 6. .0dis playins t凌阳, 拇指 凌阳 图 3-1 动态显示模块的功能结构图 凌阳, 拇指 凌阳 根据模块实现的功能设计 Verilog 凌阳, 拇指 凌阳 HDL 源代码如下: 凌阳, 拇指 凌阳 module 凌阳, 拇指 凌阳 display(clk,dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7,HEX0,HEX1,HEX2,HEX3);凌 阳, 拇指 凌阳 input 凌阳, 拇指 凌阳 clk;凌阳, 拇指 凌阳 input6:0 dis0,d
20、is1,dis2,dis3,dis4,dis5,dis6,dis7;凌阳, 拇指 凌阳 output 凌阳, 拇指 凌阳 reg6:0HEX0,HEX1,HEX2,HEX3;凌阳, 拇指 凌阳 reg2:0 CNT,COUNT;凌阳, 拇指 凌阳 always 凌阳, 拇指 凌阳 (posedge 凌阳, 拇指 凌阳 clk)凌阳, 拇指 凌阳 case(COUNT)凌阳, 拇指 凌阳 0: begin 凌阳, 拇指 凌阳 if(clk)凌阳, 拇指 凌阳 CNT=CNT+1;凌阳, 拇指 凌阳 if(CNT5)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 HEX0=dis0;凌阳, 拇
21、指 凌阳 HEX1=dis1;凌阳, 拇指 凌阳 HEX2=dis2;凌阳, 拇指 凌阳 HEX3=dis3;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 else 凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 CNT=0;凌阳, 拇指 凌阳 8 COUNT=5;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 5:凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 if(clk)凌阳, 拇指 凌阳 CNT=CNT+1;凌阳, 拇指 凌阳 if(CNT5)凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 HEX0=dis4;凌阳, 拇指 凌阳 HEX1=di
22、s5;凌阳, 拇指 凌阳 HEX2=dis6;凌阳, 拇指 凌阳 HEX3=dis7;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 else 凌阳, 拇指 凌阳 begin 凌阳, 拇指 凌阳 CNT=0;凌阳, 拇指 凌阳 COUNT=0;凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 end 凌阳, 拇指 凌阳 endcase 凌阳, 拇指 凌阳 endmodule 凌阳, 拇指 凌阳 该模块定义输入输出端口如下: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Clk: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 全局时钟信号 , 拇指
23、这里为 1Hz的时钟 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7: 译码模块输出的数据 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 HEX0,HEX1,HEX2,HEX3: 七段数码管显示 的数据 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 在 Altera 公司的软件工具 Quartus 凌阳, 拇指 凌阳 (Windows 凌阳, 拇指 凌阳 XP 环境下 )中编译和波形仿真后得到的波形如图 3-2 所示: 凌阳,
24、 拇指 凌阳 9 凌阳, 拇指 凌阳 图 3-2 凌阳, 拇指 凌阳 动态显示的 仿真波形 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 4 设计 出租车计费器电路 凌阳, 拇指 凌阳 Verilog 凌阳, 拇指 凌阳 HDL具有行为描述和结构描述功能 。 食指 行为描述是对设计电路的逻辑功能的描述 , 拇指 并不用关心设计电路使用哪些元件及这些元件之间的连接关系 。 食指 而结构描述是对设计电路的结构进行描述 , 拇指 即描述设计电路使用的元件及这些元件之间的连接关系 。 食指 本文用行为描述和结构描述分别实现电路系统 。 食指 凌阳, 拇指 凌阳 4.1 凌阳, 拇指 凌阳
25、用行为描述实现 出租车计费器电路 系统设计 凌阳, 拇指 凌阳 用 行为描述实现 出租车计费器 电路系统设计的 源程序如下 : 凌阳, 拇指 凌阳 module 凌阳, 拇指 凌阳 tcout(stop,start,clk,pause,HEX0,HEX1,HEX2,HEX3);凌阳, 拇指 凌阳 input 凌阳, 拇指 凌阳 stop,start,clk,pause;凌阳, 拇指 凌阳 output 凌阳, 拇指 凌阳 reg6:0HEX0,HEX1,HEX2,HEX3;凌阳, 拇指 凌阳 wire 凌阳, 拇指 凌阳 15:0 凌阳, 拇指 凌阳 chefei,lucheng;凌阳, 拇指
26、 凌阳 wire 凌阳, 拇指 凌阳 6:0 凌阳, 拇指 凌阳 dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7;凌阳, 拇指 凌阳 taxicount 凌阳, 拇指 凌阳 U1(stop,start,clk,pause,chefei,lucheng);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 U2(chefei3:0,dis0);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 U3(chefei7:4,dis1);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 U4(ch
27、efei11:8,dis2);凌阳, 拇指 凌阳 10 ymq8421 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 U5(chefei15:12,dis3);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 U6(lucheng3:0,dis4);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 U7(lucheng7:4,dis5);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 U8(lucheng11:8,dis6);凌阳, 拇指 凌阳 ymq8421 凌阳, 拇指 凌阳 U9(lucheng15:12,dis7);凌阳, 拇指 凌阳 display 凌阳, 拇指 凌阳
28、U10(clk,dis0,dis1,dis2,dis3,dis4,dis5,dis6,dis7,HEX0,HEX1,HEX2,HEX3);凌阳, 拇指 凌阳 endmodule 凌阳, 拇指 凌阳 该 程序 定义输入输出端口如下: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 clk: 全局时钟信号 , 拇指 这里为 1Hz的时钟 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 stop: 当 stop=0 时 , 拇指 车停止; stop=1 时 , 拇指 车没停止 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 start: 凌阳,
29、 拇指 凌阳 凌阳, 拇指 凌阳 当 start= 凌阳, 拇指 凌阳 0 时 , 拇指 车起动 , 拇指 但没有走; start= 凌阳, 拇指 凌阳 1 时 , 拇指 车开动了 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 pause: 凌阳, 拇指 凌阳 当 pause 凌阳, 拇指 凌阳 =0 时 , 拇指 车暂停; pause 凌阳, 拇指 凌阳 =1 时 , 拇指 车不暂停 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 HEX0,HEX1,HEX2,HEX3: 七段数码管显示的数据 。 食指 凌阳, 拇指 凌阳 在 Altera 公司
30、的软件工具 Quartus 凌阳, 拇指 凌阳 (Windows 凌阳, 拇指 凌阳 XP 环境下 )中编译和波形仿真后得到的波形如图 4-1 所示: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 4-1 凌阳, 拇指 凌阳 用行为描述的 出租车计费器 电路系统 仿真波形图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 4.2 凌阳, 拇指 凌阳用结构描述实现 出租车计费器电路 系统设计 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 生成的 taxicount、 ymq8421 和 display元件图形符号只是 分别 代表分立的电路设计结果 , 拇指 并没有形成系统 。 食指 顶层设计文件就是调用 taxicount、 ymq8421 和display三 个功能元件 , 拇指 将它们组装起来 , 拇指 成为一个完整的设计 。 食指 taxi.bdf 是本例的
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。