EDA课程设计报告数字电子时钟.docx
《EDA课程设计报告数字电子时钟.docx》由会员分享,可在线阅读,更多相关《EDA课程设计报告数字电子时钟.docx(16页珍藏版)》请在咨信网上搜索。
EDA课程设计报告 设计题目: 数字时钟的设计 班 级: 电气工程及其自动化 姓 名: 学 号: 日 期: 2014年6月15日 目录 摘要 一、课程设计任务及要求 3 1.1实验目的 3 1.2功能设计 4 二、整体设计思想 4 2.1性能指标及功能设计 4 2.2总体方框图 4 三、详细设计 5 3.1数字时钟的结构: 5 3.2控制模块的结构 5 3.3.1按键处理模块 6 3.3.2定时时钟模块 6 3.3.3扫描时钟模块 6 3.3.4定时计数模块 6 3.3.5显示控制模块 7 四、主程序……………………………………………………………………………………………. 7 五、实验步骤……………………………………………………………………………………………14 5.1工程建立及存盘 14 5.2时序仿真 14 5.3引脚锁定 14 5.4硬件测试 15 5.5实验结果 15 结束语 15 参考文献 16 EDA技术实现的数字电子时钟设计 作者: 指导老师: 摘 要 EDA技术在硬件实现方面融合了大规模集成电路制造技术,IC版图设计技术、ASIC测 试与封装技术、FPGA /CPLD编程下载技术、自动检测技术等;EDA技术为现代电子理论和设计的表达与实现提供了可能性。在现代技术的所有领域中,纵观许多得以飞速发展的科学技术,多为计算机辅助设计,而非自动化设计。显然,最早进入设计自动化的技术领域之一是电子技术,这就是为什么电子技术始终处于所有科学技术发展最前列的原因之一。不难理解,EDA技术已不是某一学科的分支,或某种新的技能技术,应该是一门综合性学科。它融合多学科于一体,打破了软件和硬件间的壁垒,是计算机的软件技术与硬件实现、设计效率和产品性能合二为一,它代表了电子设计技术合应用激活速 的发展方向。 电子时钟以成为人们常生活中数字电子钟一般由振荡器,分频器,译码器,显示器等部分组成。电子时钟的应用非常广泛,应用于人家庭或车站、剧场、办公室等公共场所,给人们的生活,学习,工作,娱乐带来极大的便利, 尽管目前市场上以有现成电子时钟集成电路芯片,价格便宜这些都是数字电路中最基本的,应用最广的电路。数字电子钟的基本逻辑功能框图如下:它是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。他的计时装置的周期为24小时,显示满刻度为23时 59分59秒,另外应有校时功能。 关键字:EDA;VHDL语言;电子时钟 一、 课程设计任务及要求 1.1实验内容 选用合适的可编程逻辑器件及外围电子元器件。设计一个数字电子钟,利用EDA软件(QUARTUSⅡ)进行编译及仿真,设计输入可采取VHDL硬件描述语言输入法和原理图输入法,并下载到EDA实验开发系统,连接外围电路,完成实际测试。 1.2设计要求 1)用六个数码管显示时、分、秒信息 2)设置复位功能,可通过复位键将时、分、秒清零 3)具有时、分预置功能,可分别对时和分做递增设置和递减设置 二、整体设计思想 2.1性能指标及功能设计 数字钟时常见的一种计数装置,数字钟以1Hz的频率工作。该设计完成数字钟的运行和显示。其主要功能有: (1)数字钟以1Hz的频率工作,其输入频率为1MHz。 (2)数字钟显示时、分、秒信息。这些显示信息在6个7段数码管上完成。 (3)通过按键设置时、分信息。并且具有对数字钟的复位功能。 复位键将时、分、秒清零,并做好重新计数的准备。按键具有预置时、分的功能。分别对当前的时和分信息做递增设置和递减设置。 2.2总体方框图 三、详细设计 3.1数字时钟的结构 该数字钟的控制部分由PLD芯片完成。该芯片的输入和输出接口由下面信号组成: 输入信号: 复位信号(reset) 时钟输入信号(clk) 小时递增信号(inc_hour) 小时递减信号(sub_hour) 分钟递增信号(inc_min) 分钟递减信号(sub_min) 输出信号: 7段数码管选信号(sel) 7段数码管段选信号(q) 3.2控制模块结构 该设计分成下面五个模块:定时时钟模块、扫描时钟模块、按键处理模块、定时计数模块和显示控制模块。图11.2给出了这几个模块之间的信号连接关系。 3.2.1、按键处理模块 由于VHDL语言的规则,将按键的处理和定时模块设计在一起。为了描述清楚,将对按键的处理进行说明。在该设计中,采用异步复位电路方式。当复位信号低有效时,计数器停止计数,时、分、秒清零。 对于小时的递增、递减按键操作,通过一个1Hz的计数时钟采样。图11.3给出了递增、递减的操作时序。 当1Hz的div_clk信号的上升沿到来时,检测hour_inc和hour_dec按键,图中的虚线表示在时钟的上升沿对按键信号进行采样。当hour_inc或hour_dec按键低有效时,对小时进行递加或递减操作。对于分钟的递加、递减按键操作,也是通过一个1Hz的计数时钟采样。原理同图11.3。 3.2.2、定时时钟模块 定时时钟模块其作用就是将外部提供的1MHz的时钟,通过分频器后向模块内的定时计数模块提供1Hz的定时计数时钟。在设计定时时钟模块时,采用同步计数电路。 3.2.3、扫描时钟模块 扫描时钟模块的作用就是通过对1MHz的分频处理后,向显示控制模块提供合适的显示扫描时钟,该时钟必须经过合理的设计,才能保证7段数码显示的稳定。在设计扫描时钟模块时,采用同步计数电路。 3.2.4、定时计数模块 定时计数模块是该设计中最重要的一部分,在设计该模块时,为了便于后续显示控制模块的设计,将时、分、秒进行分离,即小时分成了小时的十位和个位分别处理,分钟分成了分钟的十位和个位分别处理。秒分成了秒的十位和个位分别处理。在该设计中,采用24小时计数模式。 例如:13:28:57。13为小时的表示,1为小时的十位,3为小时的个位;28为分钟的表示,2为分钟的十位,8为分钟的个位;57为秒的表示,5为秒的十位,7为秒的个位。 秒的个位计数从0-9,即十进制计数。当秒的个位计数到9后,准备向秒的十位进位。秒的十位计数从0-5,即六进制计数。当秒的十位计数到5后,准备向分的个位进位。 分钟的个位计数从0-9,即十进制计数。当分钟的个位计数到9后,准备向分钟的十位进位。分钟的十位计数从0-5,即六进制计数。当分钟的十位计数到5后,准备向小时的个位进位。 对于小时的处理比较复杂,小时的十位和个位之间存在下面的关系: (1)当小时的十位为0或1时,小时的个位可以计数范围为0-9,即十进制计数; (2)当小时的十位为2时,小时的各位可以计数的范围为0-3,即四进制计数; 3.2.5、显示控制模块 显示控制模块主要作用是在7段数码管上正确的显示0-9的数字。sel三位选择线和3-8译码器相连 四、主程序 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity clock is port( clk : in std_logic; rst : in std_logic; inc_min : in std_logic; sub_min : in std_logic; inc_hour : in std_logic; sub_hour : in std_logic; sel : out std_logic_vector(5 downto 0); q : out std_logic_vector(7 downto 0)); end clock; architecture Behavioral of clock is signal sec_counter1:std_logic_vector(3 downto 0); signal sec_counter2:std_logic_vector(3 downto 0); signal min_counter1:std_logic_vector(3 downto 0); signal min_counter2:std_logic_vector(3 downto 0); signal hour_counter1:std_logic_vector(3 downto 0); signal hour_counter2:std_logic_vector(3 downto 0); signal divcounter : std_logic_vector(8 downto 0); signal div_clk : std_logic; signal scancounter : std_logic_vector(1 downto 0); signal scan_clk : std_logic; signal scan_out : std_logic_vector(2 downto 0); signal secseg1,secseg2,minseg1,minseg2,hourseg1,hourseg2:std_logic_vector(7 downto 0); begin process(rst,clk) begin if(rst='1')then divcounter<="000000000"; div_clk<='0'; elsif(rising_edge(clk)) then if(divcounter="111111111") then divcounter<="000000000"; div_clk<=not div_clk; else divcounter<=divcounter+1; end if; end if; end process; process(rst,clk) begin if(rst='1')then scancounter<="00"; scan_clk<='0'; elsif(rising_edge(clk)) then if(scancounter="11") then scancounter<="00"; scan_clk<=not scan_clk; else scancounter<=scancounter+1; end if; end if; end process; clock:process(div_clk,rst) begin if(rst='1')then sec_counter1<=X"0"; sec_counter2<=X"0"; min_counter1<=X"0"; min_counter2<=X"0"; hour_counter1<=X"0"; hour_counter2<=X"0"; elsif(rising_edge(div_clk))then if(inc_min='1') then if(min_counter1=X"9") then min_counter1<=X"0"; if(min_counter2>=X"5") then min_counter2<=X"0"; else min_counter2<=min_counter2+1; end if; else min_counter1<=min_counter1+1; end if; elsif(sub_min='1') then if(min_counter1=X"0") then min_counter1<=X"9"; if(min_counter2=X"0")then min_counter2<=X"5"; else min_counter2<=min_counter2-1; end if; else min_counter1<=min_counter1-1; end if; elsif(inc_hour='1') then if(hour_counter2=X"2")then if(hour_counter1=X"3")then hour_counter1<=X"0"; hour_counter2<=X"0"; else hour_counter1<=hour_counter1+1; end if; else if(hour_counter1=X"9") then hour_counter1<=X"0"; hour_counter2<=hour_counter2+1; else hour_counter1<=hour_counter1+1; end if; end if; elsif(sub_hour='1') then if(hour_counter1=X"0")then if(hour_counter2=X"0")then hour_counter1<=X"3"; hour_counter2<=X"2"; else hour_counter2<=hour_counter2-1; hour_counter1<=X"9"; end if; else hour_counter1<=hour_counter1-1; end if; else if(sec_counter1>=X"9") then sec_counter1<=X"0"; if(sec_counter2>=X"5") then sec_counter2<=X"0"; if(min_counter1>=X"9") then min_counter1<=X"0"; if(min_counter2>=X"5") then min_counter2<=X"0"; if(hour_counter2=X"2") then if(hour_counter1=X"3") then hour_counter1<=X"0"; hour_counter2<=X"0"; else hour_counter1<=hour_counter1+1; end if; else if(hour_counter1=X"9") then hour_counter1<=X"0"; hour_counter2<=hour_counter2+1; else hour_counter1<=hour_counter1+1; end if; end if; else min_counter2<=min_counter2+1; end if; else min_counter1<=min_counter1+1; end if; else sec_counter2<=sec_counter2+1; end if; else sec_counter1<=sec_counter1+1; end if; end if; end if; end process clock; process(rst,scan_clk) begin if (rst='1') then scan_out<="000"; elsif(rising_edge(scan_clk)) then if(scan_out="101")then scan_out<="000"; else scan_out<=scan_out+1; end if; end if; end process; process(scan_out) begin case scan_out is when "000" => q<=secseg1; sel<="000001"; when "001" => q<=secseg2; sel<="000010"; when "010" => q<=minseg1; sel<="000100"; when "011" => q<=minseg2; sel<="001000"; when "100" => q<=hourseg1; sel<="010000"; when "101"=> q<=hourseg2; sel<="100000"; when others => q<="11111111";sel<="000000"; end case; end process; second_counter1:process(sec_counter1) begin case sec_counter1 is when "0000" => secseg1<="10111111"; when "0001" => secseg1<="10000110"; when "0010" => secseg1<="11011011"; when "0011" => secseg1<="11001111"; when "0100" => secseg1<="11100110"; when "0101" => secseg1<="11101101"; when "0110" => secseg1<="11111101"; when "0111" => secseg1<="10000111"; when "1000" => secseg1<="11111111"; when "1001" => secseg1<="11101111"; when others => secseg1<="11111111"; end case; end process second_counter1; second_counter2:process(sec_counter2) begin case sec_counter2 is when "0000" => secseg2<="00111111"; when "0001" => secseg2<="00000110"; when "0010" => secseg2<="01011011"; when "0011" => secseg2<="01001111"; when "0100" => secseg2<="01100110"; when "0101" => secseg2<="01101101"; when others => secseg2<="01111111"; end case; end process second_counter2; minute_counter1:process(min_counter1) begin case min_counter1 is when "0000" => minseg1<="10111111"; when "0001" => minseg1<="10000110"; when "0010" => minseg1<="11011011"; when "0011" => minseg1<="11001111"; when "0100" => minseg1<="11100110"; when "0101" => minseg1<="11101101"; when "0110" => minseg1<="11111101"; when "0111" => minseg1<="10000111"; when "1000" => minseg1<="11111111"; when "1001" => minseg1<="11101111"; when others => minseg1<="11111111"; end case; end process minute_counter1; minute_counter2:process(min_counter2) begin case min_counter2 is when "0000" => minseg2<="00111111"; when "0001" => minseg2<="00000110"; when "0010" => minseg2<="01011011"; when "0011" => minseg2<="01001111"; when "0100" => minseg2<="01100110"; when "0101" => minseg2<="01101101"; when others => minseg2<="01111111"; end case; end process minute_counter2; process(hour_counter1) begin case hour_counter1 is when "0000" => hourseg1<="10111111"; when "0001" => hourseg1<="10000110"; when "0010" => hourseg1<="11011011"; when "0011" => hourseg1<="11001111"; when "0100" => hourseg1<="11100110"; when "0101" => hourseg1<="11101101"; when "0110" => hourseg1<="11111101"; when "0111" => hourseg1<="10000111"; when "1000" => hourseg1<="11111111"; when "1001" => hourseg1<="11101111"; when others => hourseg1<="11111111"; end case; end process; hor_counter2:process(hour_counter2) begin case hour_counter2 is when "0000" => hourseg2<="00111111"; when "0001" => hourseg2<="00000110"; when "0010" => hourseg2<="01011011"; when others => hourseg2<="01111111"; end case; end process; end Behavioral; 五、实验步骤 5.1工程建立及存盘 1. 打开 QuartusⅡ,单击“File”菜单,选择 File→New Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。 2.单击“File”菜单,选择New,弹出小对话框,双击“VHDL File",即选中了文本编辑方式。在出现的“Vhdl1.vhd”文本编辑窗中键入VHDL程序,输入完毕后,选择File→Save As,即出现“Save As”对话框。选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“Save”按钮。 3. 建立工程项目,在保存VHDL文件时会弹出是否建立项目的小窗口,点击“Yes”确定。即出现建立工程项目的导航窗口,点击“Next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件名必须与文件的实体名一致,输入后,单击“Finish”按钮。 4.然后对程序进行编译 5.2时序仿真 建立波形文件:选择 File→New,在New窗中选中“Other File”标签。在出现的屏幕中选择“Vector Waveform File”项出现一新的屏幕。在出现的新屏幕中,双击“Name”下方的空白处,弹出“Insert Nod or Bus”对话框,单击该对话框的“Node Finder……”。在屏幕中的 Filter 中选择 Pins,单击“List”。而后,单击“>>”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,也可以只选其中的的一部分,根据实际情况决定。然后单击屏幕右上脚的 “OK”。在出现的小屏幕上单击“OK”。 设定仿真时间宽度。选择 Edit → End time…选项,在End time选择窗中选择适当的仿真时间域,以便有足够长的观察时间。 波形文件存盘。选择File→Save as 选项,直接存盘即可。 运行仿真器。在菜单中选择项,直到出现,仿真结束。 5.3引脚锁定 将设计编程下载进选定的目标器件中 操作如下: 1.选择 Assignments → Assignments Editor ,即进入 Assignments Editor编辑器。在Category 栏选择 Pin,或直接单击右上侧的 Pin 按钮。 2.双击 TO 栏的《new》,在出现的的下拉栏中选择对应的端口信号名(如 D[0]);然后双击对应的栏的《new》,在出现的下拉栏中选择对应的端口信号名的期间引脚号。 3.最后存储这些引脚锁定信息后,必须再编译(启动 )一次,才能将引脚锁定信息编译进编程下载文件中。此后就可以准备将编译好的 SOF 文件下载到试验系统的FPGA中去了。 5.4硬件测试 1.首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源,选择模式3。 2.打开编辑窗和配置文件。选择,弹出一个编辑窗。在Mode栏中选择JTAG,并在选项下的小方框打勾。注意核对下载文件路径与文件名。如果文件没有出现或者出错,单击左Add file侧按钮,手动选择配置文件 clock.sof。 3.最后单击下载标符Start,即进入对目标器件 FPGA 的配置下载操作。当 Progress 显示100%,以及在底部的处理栏中出现 Configuration Succeeded 时,表示编程成功,如图所示。注意,如果必要时,可再次单击 Start ,直至编程成功。 4.下载完成后,通过硬件测试进一步确定设计是否达到所有的技术指标,如未达到,可逐步检查,哪部分出现问题。如果是代码出现问题,须修改代码;若是时序波形图有问题,须重新设置。 5.5实验结果 实验箱使用模式3,键8为复位按键,键8为0时正常工作。键3、4设置小时,键1、2设置分钟。 下载成功后,按下键8,及使六个LED复位清零,松开键8,显示数秒的自动计时,可以通过3、4键设置小时数,1、2键设置分钟数。当秒数满60则进一位,分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,之后从新计时。 结束语 随着电子设计自动化技术的普及,利用EDA技术进行数字电路课程设计,不仅可以很好地锻炼学生的综合设计开发能力和动手能力,从而激发学生的学习兴趣,还可以大大节约数字电路课程设计实验的成本,提高设计效率。因此,将EDA技术应用于数字电路课程设计必将成为今后数字电路实验课程改革的新动向。EDA软件,可方便地在计算机上进行电路设计、仿真,其电路结构及设计观念可以很容易地被修正;也可方便地更换所需要的元件。通过模拟可快速地反映出所设计电路的性能。若能利用计算机辅助设计进行电路模拟与分析,则可有效地节约资源、缩短产品研发的成本与时间。 在本次课程设计中,曾遇到过不少问题,如果单靠我个人的努力,很难按时完成的,在此,我衷心感谢我的指导老师,我学到了很多东西。知道老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我获益非浅。老师无论在理论上还是在实践中,都给予我无私帮助和悉心的教导,使我的课程得以顺利地按时完成。 参考文献 [1] 曾繁泰 李冰 李晓林.《EDA工程概论》[M]. 清华大学出版社, 2002年. [2] 胡立涛.《EWB电子仿真实验指导书》[M]. 南海出版公司, 2006年. [3] 朱运利.《EDA技术应用》[M]. 电子工业出版社, 2004年. [4] 郭勇.《EDA技术》[M]. 高等教育出版社, 2004年. [5] 钟文耀 段玉生 何丽静.《EWB电路设计入门与应用》[M].清华大学出版社, 2000年. [6] 崔建明.《电子电工EDA仿真技术》[M]. 高等教育出版社, 2004年. [7] 周功明 周陈深.《基于Electronics Workbench 6.0 的数字电子钟设计与仿真》- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 报告 数字 电子 时钟
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文