单片机原理与应用实验指导书学生部分修订.doc
《单片机原理与应用实验指导书学生部分修订.doc》由会员分享,可在线阅读,更多相关《单片机原理与应用实验指导书学生部分修订.doc(26页珍藏版)》请在咨信网上搜索。
单片机原理与应用 实验指导书 2023年5月 第一章 实验箱系统概述 一、系统地址分派 (1),存贮器地址分派 CPU ROM RAM1 RAM2 I/0扩展 51 0000H~0FFFFH(用户实验程序) 0000H~7FFFH用户数据 8000H~FF7FH(用户数据除FF20H~FF2FH) FF80H~FFFFH (2),I/O地址分派 地址 扩展名称 用途 0FF80H 自定义 实验用口地址 0FF90H 自定义 实验用口地址 0FFA0H 自定义 实验用口地址 0FFB0H 自定义 实验用口地址 0FFC0H 自定义 实验用口地址 0FFD0H 自定义 实验用口地址 0FF20H 系统8255 PA口 键扫/字位口 0FF21H 系统8255 PB口 字形口 0FF22H 系统8255 PC口 键入口 0FF23H 系统8255控制口 控制口 0FF28H 扩展8255 PA口 扩展口 0FF29H 扩展8255 PB口 扩展口 0FF2AH 扩展8255 PC口 扩展口 0FF2BH 扩展8255控制口 控制口 60H EX1 实验用 二、系统接口定义 (1),CZ11:用户实验通讯接口; (2),CZ4:打印接口; (3),JX0,JX17为系统提供的数据总线接口 (4),CZ7:系统提供的扩展接口; (5),JX12、JX14:液晶显示接口 三、通用电路简介 (1) LED发光二极管指示电路: 实验台上涉及16只发光二极管及相应驱动电路。见图1-1,Ll—L16为相应发光二极管驱动信号输入端, 该输入端为低电平“0”时发光二极管亮 图1-6 (2) 逻辑电平开关电路: 见图1-2。实验台上有8只开关Kl-K8, 与之相相应的K1-K8个引线孔为逻辑电平输出端。开关向上拨相应插孔输出高电平“l”, 向下拨相应插孔输出低电平“0”。 图1-7 (3) 单脉冲电路: 实验台上单脉冲产生电路如图1-3,标有“ ”和“ ”的两个引线插孔为正负单脉冲输出端。附近按钮AN为单脉冲产生按钮,每按一次产生一个单脉冲。 图1-8 (4) 分频电路:该电路由一片74LS393组成,见图1-4。T0—T7为分频输出插孔。该计数器在加电时由RESET信号清零。当脉冲输入为8.0MHZ时,T0—T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。 图1-9 (5) 脉冲发生电路:实验台上提供一8MHZ的脉冲源,见图1-5,实验台上标有8MHZ的插孔,即为脉冲的输出端。 图1-10 (6) 485接口电路: 图1-11 (7) 通讯接口电路 图1-12 (8) 数码管显示电路 图1-13 (9) 键盘电路 图1-14 (10),目的CPU(AT89S52)的控制电路 图1-15 (11),存储器控制电路 图1-16 第二章 系统安装与使用 一、软件安装 1, 系统规定 ◆ Pentium、Pentium-Ⅱ或兼容解决器的PC机; ◆ Windows95/98/NT4.0/2023/XP; ◆ ≥16MB RAM 20◆ ≥MB 硬盘空间; 2, DICE-598K51部分软件安装说明 运营随机光盘上‘DICE-51仿真开发系统’安装文献,根据提醒完毕软件安装,然后双击桌面上‘DICE-51仿真开发系统’银环快捷图标,即可运营DICE-51仿真软件。 3, 实验演示模拟装置的软件安装说明 随机的光盘中有一个“电子演示装置”文献夹,其中有下列文献: setup.exe 演示装置上位软件,点击后自动安装 D12Driver 演示装置USB接口驱动程序文献夹,内含win2k_xp和win98两个文献夹,相应的操作系统安装相应文献夹中的驱动程序。(win2k_xp用于2023、xp操作系统,win98用于98操作系统。) usbtest.exe 该文献用于测试演示装置的32个I/O口。 安装方法:先将上述程序从光盘复制到硬盘,并去掉只读属性,双击setup.exe,根据提醒直至安装完毕;然后用USB线将演示装置连接到PC机USB口,屏幕会提醒发现新硬件,根据提醒引导进行安装,当选择驱动程序时请把途径指向硬盘上win2k_xp或win98(根据自己实际的操作系统)文献夹中的d12test.sys,并直至安装完毕。 二、硬件安装 系统设立 (1)KB6开关拨向导59一侧,把51K--CPU卡插到CPU卡座上(在8088Unit两侧),51K--CPU卡短路块向片外程序短接。 (2)SW3、SW4、SW5:为键盘/显示选择开关,开关置ON(出厂模式),键盘/显示控制选择系统配置的8255接口芯片,反之由用户选择自定义的I/O接口芯片控制,在本机实验中,除8279实验外,键盘/显示为出厂模式。 (3)脱机使用:接通实验仪电源,数码管应显示“P.- -51”,表白实验系统处在51脱机状态,可通过实验仪键入相应实验序号,再按[EX/FV]键,即可全速执行该实验程序,例如输入数字键0、9,连接好A/D实验的导线,再按[EX/FV]键,即可运营实验序号九的A/D实验。 (4)联PC机操作:用34芯导线连接JF(在CPU卡)和仿真器接口(在CPU卡右侧),此时数码管熄灭,自动进入联机状态,把通信线一头和实验仪的系统通信接口CZ1相连,另一端和PC机串口相连,运营DICE-51仿真开发系统软件,51部分实验源程序在598K5asm文献夹。 *注:实验系统上的CZ11串行口为用户实验串行口。 第三章 实 验 指 导 一、采用联机调试实验程序时,需双击桌面上“DICE-51仿真开发系统”银环图标,打开仿真调试软件,设立仿真模式。具体环节如下:点击菜单栏的“设立(S)”项,在弹出下拉菜单中选择“仿真模式(M)...”,此时此时将弹出“仿真模式”对话框,在此进行相关设立==>CPU:8031/8032; RAM:用户RAM; ROM:系统ROM。 二、实验接线图上的粗实线表达用户在实验时要用导线连接起来。 软件实验 实验一 清零程序 1,实验目的: 掌握汇编语言设计和调试方法,熟悉键盘操作。 2,实验内容: 把2023H~20FFH的内容清零。 3,实验程序框图: 4,实验环节: 用连续或单步方式运营程序,检查2023~20FF中执行程序前后的内容变化。 5,思考: 假使把2023H~20FFH中的内容改成FF,,如何修改程序。 实验二 拆字程序 l,实验目的: 掌握汇编语言设计和调试方法。 2,实验内容: 把2023H的内容拆开,高位送2023H低位,低位送2023H低位,2023H、2023H高位清零,一般本程序用于把数据送显示缓冲区时用。 3,实验程序框图: 4,实验环节: 用连续或单步方式运营程序,检查2023H~2023H中内容变化情况。 5,思考: 如何用断点方式调试本程序。 实验三 拼字程序 1,实验目的: 进一步掌握汇编语言设计和调试方法。. 2,实验内容: 把2023H.2023H的低位分别送入2023H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一字节。 3,实验程序框图: 4,实验环节: 单步或用断点方式运营程序,检查2023H内容变化情况。 实验四 数据区传送子程序 1,实验目的: 掌握RAM中的数据操作。 2,实验内容: 把R2.R3源RAM区首址内的R6.R7字节数据传送到R4.R5目的RAM区。 3,实验程序框图: 4,实验环节: 在R2.R3中输入源首址(例如0000H),R4.R5中输入目的地址(例如2023H),R6.R7中输入字节数(例如lFFFH),运营程序,检查0000H~lFFFH中内容是否和2023H~3FFFH中内容完全一致。 实验五 数据排序实验 1,实验目的: 熟悉51指令系统,掌握程序设计方法。 2,实验内容: 编写并调试一个排序子程序,其功能为用冒泡法将内存RAM中几个单字节无符号的正整数,按从小到大的顺序重新排列。 3,程序框图: 4,实验环节: 将RAM 50H~5AH 中放入不等的数据,用断点方法运营本实验程序后检查 实验六 查找相同数个数 1,实验目的: 熟悉汇编语言编程。 2,实验内容: 在2023H~200FH的N个单元中填入零,运营本程序后检查2100H中是否为N。 3,实验程序框图: 4,实验环节: 在2023H~200FH的几个单元中填入零,运营本程序后检查2100H中是否是几个单元数。 5,思考: 修改程序,查找其它内容。 实验七 无符号双字节快速乘法子程序 1,实验目的: 掌握MCS-51汇编语言程序设计方法。 2,预备知识: 本程序运用单字节的乘法指令,根据下面的公式进行乘法运算的。 (R2R3)*(R6R7)=((R2)* +(R3))*((R6)* +R7)) =(R2)*(R6)* +((R2)*(R7)+(R3)*(R6))* +(R3)*(R7) 3,实验内容: 将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4 R5 R6 R7中。 4,实验程序框图: 5,实验环节: 在R2R3和R6R7中输入无符号整数,断点或单步运营本实验程序后检查R4 R5 R6 R7中内容。 实验八 多分支程序 1,实验目的: 掌握汇编语言的编程。 2,实验内容: 编写程序,根据送入的数据转移运营。 3,实验程序框图: 4,实验环节:在20H中分次送入00.01.02.03,每次运营程序后,观测数码管上数字循环 实验九 脉冲计数(定期/计数器实验) 1, 实验目的: 熟悉单片机内部定期/计数器功能,掌握初始化编程方法。 2, 实验内容 :把定期器0外部输入的脉冲进行计数,并送显示器显示 3, 实验程序框图: 4, 实验接线图: 5, 实验环节: 用插针把8MHZ插孔和T插孔连接,P3.4 依次接T0~T7或单脉冲输出孔,执行程序,观测数码管上计数脉冲的速度及个数。 6, 思考: 修改程序使显示器上可显示到999999个脉冲个数。 实验十 电脑时钟(定期器、中断综合实验) 1,实验目的: 熟悉MCS-5l定期器和中断初始化编程方法,了解定期器的应用实时程序的设计与调试技巧。 2,实验内容: 编写程序,从实验系统键盘上输入时间初值,用定期器产生0.lS定期中断,对时钟计数器计数,并将数值实时地送数码管显示。 3,实验程序框图 4,实验环节:连续运营程序,在键盘上输入时间初值,按执行键F0/EX执行,数码管实时显示时间值。 5,思考:(1)电子钟走时精度和程序中那些常数有关? 硬件实验 实验一 P1口亮灯实验 1, 实验目的:(l)学习P1口的使用方法; (2)学习延时子程序的编写。 2, 实验顶备知识: (l),Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才干作为输入。 (2),本实验中延时子程序采用指令循环来实现,机器周期(12/6MHz)*指令所需机器周期数*循环次数,在系统时间允许的情况下可以采用此方法。 3, 实验内容: P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。 4, 实验程序框图: 5, 实验接线图: 6, 实验环节 :P1.0~P1.7用插针连至L1~L8,运营程序后,观测发光二极管闪亮移位情况。 7, 思考: 改变延时常数,使发光二极管闪亮时间改变。 修改程序,使发光二极管闪亮移位方向改变。 实验二 P1口转弯灯实验 1,实验目的: 进一步了解P1口的使用,学习汇编语言编程方法及调试技巧。 2,实验内容:P1.0 开关接5V,右转弯灯闪亮,P1.1开关接5V时左转弯灯闪亮,P1.0,P1.1开关同时接5V或接地时,转弯灯均不闪亮。 3,实验程序框图: 4,实验接线图: 5,实验环节: P1.0 接K1,P1.1接K2,P1.4~P1.7接L1、L4、L7、L10,连续运营本程序,应看到转弯灯对的闪亮,在用单步方式调试本程序时需修改延时子程序,(例可把延时程序第一个字节改成返回指令22H),以便观测。 实验三 P3口输入,P1口输出 1,实验目的: 掌握P3口 P1口简朴使用。 2,实验内容: P3.3口输入一脉冲, PI口按16进制加一方式点亮发光二极管。 3,实验程序框图: 4, 实验接线图: 5,实验环节: P3.3用接针连至K1 P1.0~P1.7插针连至L1~L8,K1拨动一次,L1~L8发光二极管按16进制方式加一点亮。 6,思考:修改程序,使发光二极管左移方式点亮。 实验四 工业顺序控制 1,实验目的:掌握工业顺序控制程序的简朴编程,中断的使用。 2,实验预备知识:在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完毕预定的动作,对这类继续生产过程的控制称顺序控制,象注塑机工艺过程大体按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。 3,实验内容:由 P1.0~1.6控制注塑机的七道工序,现模拟控制七只发光二极的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。 4,实验程序框图: 5,实验接线图: 6,实验环节:JP向下短接,P3.4-->K1,P3.3-->K2,P1.0~P1.6-->L1~L7,P1.7-->Vin 。执行程序,把K1接到高电平,观测发光二极管点亮情况,拟定工序执行是否正常,然后把K2置为低电平,看是否有声音报警,恢复中断1.报警停,又从刚才报警时一道程序执行下去。可用单步、单步跟踪,非全速断点、全速断点,连续执行功能调试软件,直到符合自己程序设计规定为止。 7,思考:修改程序,使每道工序中有多位输出。 实验五 8255A.B.C口输出方波 1,实验目的:掌握可编程I/O接口芯片8255的接口原理使用,熟悉对8255初始化编程和输入/输出软件的设计为法。 2,实验内容:在8255的A.B.C口用万用表可测出每个口线的高低电平变化。 3,实验程序框图: 4,实验环节:执行程序,用万用表测量8255A.B.C口应有高低电平变化(或用8255A.B.C口分别用插针连至Ll~L8,观测发光二极管变化情况)。 实验六 8255 PA口控制PB口 1,实验目的:掌握单片机系统中扩展外围芯片的方法,了解8255芯片的结构及编程方法。 2,实验内容:用8255 PA口作开关量输入口,PB口作输出口。 3,实验程序框图: 4,实验接线图: 5,实验环节:8255PA口接Kl~K8,PB口接L1~L8运营程序,按K1~K8,观测L1~L8发光二极管是否相应点亮。 实验七 8255控制交通灯 1,实验目的:进一步了解8255芯片的结构及编程方法,学习模拟交通控制的实现方法。 2,实验内容:用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。 3,实验程序框图: 4,实验接线图: 5,实验环节:8255 PB3~PB0-->L1~L4,PA7~PA0-->L5~L12。执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后反复以上过程。 实验八 简朴I/O口扩展 l,实验目的: (1)学习单片机系统中扩展简朴I/O口的方法。 (2)学习数据输入输出程序的编制方法。 2,实验内容: 运用74LS244作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。 3,实验程序框图: 4,实验接线图: 5,实验环节:Y0~Y7接K1~K8,Q0~Q7接L1~L8,CS1接FF80H孔,CS2接FF90H孔,JX0接JX7,执行程序,按动K1~K8,观测L1~L8是否相应点亮。 6,思考: 可否用273输入,244输出。 实验九 A/D转换实验 1,实验目的:(1)掌握A/D转换与单片机接口的方法; (2)了解A/D芯片0809转换性能及编程方法; (3)通过实验了解单片机如何进行数据采集。 2,实验内容:运用实验系统上的0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。 3,实验接线图: 4,实验程序框图: 5,实验环节:把0809的零通道INT0用插针接至AOUT1孔,CS4接FF80H孔,JX0接JX6,8MHZ孔接CLK UNIT区的T孔。运营程序,数码管上显示0809.XX,,后二位显示当前采集的电压转换的数字量,调节电位器,该二位将随着电压变化而相应变化。 6,思考:修改程序,用其它通道轮流采样显示。 实验十 D/A转换 1,实验目的: (1)了解D/A转换与单片机的接口方法; (2)了解D/A转换芯片0832的性能及编程方法; (3)了解单片机系统中扩展D/A转换芯片的基本方法; 2,实验内容: 运用0832输出一个从0V开始逐渐升至5V再降至0V的可变电压。 3,实验接线图: 4,实验程序框图: 5,实验环节: 把0832译码线CS5接至FF80H孔,JX0接JX2,运营程序,数码管上显示不断加大或减小的数字量,用万用表测试D/A输出孔AOUT应也能测出不断加大或减小的电压值。 6,思考: 修改程序,使能产生锯齿波。 实验十一 8279键盘显示实验 1,实验目的:掌握8051系统中,扩展8279键盘显示接口的方法。 2,实验内容:按下数字键,数码管上应相应能显示数字,按下功能键,能相应执行其它程序。 3,实验接线图 4,实验程序框图: 5,.实验环节:把CS6孔用插针连至FF80孔,JSL接JS,JRL接JR,JOUT接JLED,SW3,SW4,SW5置OFF(实验完后置ON),运营程序,数码管上显示P,按下数字键,数码管上应能显示相应数字,按下功能键,数码管上显示相应的0字l字2字循环。 6,思考:修改程序,高四位数码管显示数字本地址看待,按功能键1后,按下的数字只显示在后二位上,当数据看待,功能键2和功能键3本地址加一和减一键使用。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 实验 指导书 学生 部分 修订
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文