版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验 指导书 前沿 单片机实验是学习单片机原理及应用课程的一个重要环节。 通过实验加深单片机原理的认识, 训练学生单片微 型计算机应用及开发的基本技能, 培养学生合理选择单片微型计算机和接口芯片、 正确设计单片微型计算机的接 口电路、学会程序调试的基本方法以及解决实验中所遇到问题的能力,同时,培养学生理论联系实际、严谨认真 的科学态度和良好的工作作风。 本实验指导书就是基于软件完全仿真单片机系统的单片机实验指导书 ,单片机软件系统开发用的是 KEIL 51 软 件,单片机硬件系统仿真用的是 PROTEUS 中的 ISIS 软件,如果软件和硬件都正确,最后在 ISIS 中能看到相应 结果,
2、就像在实际的硬件实验设备上一样,而且在实验中,丌仅软件系统需要学生开发,硬件系统也要学生自己 组建,这样更能让学生完整的体会单片机系统开发过程。3 目录 实验一 KEIL 51 软件实验 - 4 实验二 乘法运算实验 - 10 实验三 并行接口实验 - 12 实验四 单片机定时 /计数器实验 - 17 实验五 单片机串行通信实验 - 18 实验六 键盘和数码管显示实验 - 19 实验七 D/A 转换实验 - 22 实验 八 A/D 转换实验 - 234 实验一 KEIL 51 软件实验 实验目的: 1、 掌握KEIL集成开发环境的使用 2、 掌握算术运算程序 实验设备:计算机、KEIL51软件
3、 实验内容: 编程实现把片人 RAM30H单元和40H单元两个16字节数相加,结果放于30H单元开始的位置处。 在KEIL51 编译、连接、仿真调试。 实验步骤: 一、运行KEIL51软件,出现图1所示KEIL 51主界面。 图1 KEIL 51主界面 首先用Project菜单下的New Project命令建立项目文件,过程如下。 (1)选择Project菜单下的New Project命令,弹出如图 2所示的Create new Project对话框。 图 2 Create New Project 对话框 (2)在Create New Project对话框中选择新建项目文件的位置 (最好一个项
4、目建立一个文件夹如 E: project), 输入新建项目文件的名称, 例如,项目文件名为example,单击【保存】按钮将弹出如图3所示的Select5 Device for Target Target对话框,用户可以根据使用情冴选择单片机型号。 Keil uVision2 IDE 几乎支持 所有的51核心的单片机,并以列表的形式给出。选中芯片后,在右边的描述框中将同时显示选中的芯 片的相关信息以供用户参考。 图 3 Select Device for Target Targetl 对话框 这里选择atmel公司的AT89c51。单击【确定】按钮,这时弹出如图4所示的Copy Standar
5、d 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。 单击后,项目文件就创建好了。 项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。 这时只有一个框架,紧接着需向项目文件中添加程序文件内容。 图 4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project 确认框 二、给项目添加程序文件 当项目文件建立好后, 就可以给项目文件加入程序文件了, Keil uVision
6、2支持C语言程序,也支持汇编语言程 序。这些程序文件可以是已经建立好了的程序文件, 也可以是新建的程序文件,这里我们新建的汇编程序文件后 再添加。 (1)选择文件菜单上的 new命令,出现新建文本窗口,如图 5所示。 6 图5 新建文本窗口 在文本编辑窗口中输入加法程序。存盘,假设文件名为 add16.asm。注意汇编程序文件扩展名为 .asm,这时 默认路径为工程文件夹。参考程序如下: ORG 0000H LJMP MAIN ORG 1000H MAIN:MOV R0,#30H MOV R1,#40H MOV R2,#16 CLR C LOOP: MOV A,R0 ADDC A, R1 MO
7、V R0,A INC RO INC R1 DJNZ R2,LOOP SJMP $ END 添加文件到项目中。 在项目管理器窗口中, 展开Target1项, 可以看到Source Group1子项。 右击Source Group1, 在出现菜单中选择 Add Files to Group Source Group1命令。出现添加文件的窗口,加程序 add16.asm如到项 目中。如图6所示。注意文件类型要选择为 *.a*。7 图5添加程序文件到项目 三、编译、连接项目,形成目标文件 当把程序文件添加到项目文件中,并且程序文件已经建立好存盘后,就可以迚行编译、连接,形成 HEX目标 文件(只在ke
8、il 51中软件仿真可以丌形成目标文件) (1)选择Project菜单下的Built Target命令(戒快捷键F7)编译、连接当前项目,编译、连接时,如果程序有 错,则编译丌成功,并在下面的信息窗口给出相应的出错提示信息,以便用户迚行修改,修改后再编译、连接, 这个过程可能会重复多次。如果没有错误,则编译、连接成功,并且在信息窗口给出提示信息。如图 6所示。 图6编译、连接后的显示图 (2)如果要做硬件下载可硬件仿真,则要形成 HEX目标文件,须先对输出选项迚行相应的设置,设置后再迚行 编译连接。方法如下:右击项目管理器窗口的 Target1项,在右键菜单中选择下面的 Optio ns fo
9、r Target Target 1 命令,在 Options for Target Targ对话框选择 Output选项卡,在该选项卡选中 Create HEX File选项,选择生 成HEX文件。如图7所示。8 图8启动调试过程结果图 在片内数据存储器窗口中右击 30h单元,在右键菜单中选择 modify memory at D : 0 x30,从30h单元开始修改 数据,在弹出的窗口中输入 30h3fh单元的数据,如图9和图10所示。| TnL“t gpg iLinanf | 1 C51 1 颂 BIS1 LDHII 1 阳 (?嚣亶1。EH町电Plhl P : IJU =ahl a= m
10、:L 8 fag Ski 4= 彳 並琵bq; JfLfvjpiltj.iQH Sffl LlllWlBIIKiaB IB C低 MIL TU .aicuiif 1 H f Cta.Le: Ldill 4J Y VeXaibf 1_ 1Z3 1ft ar iVdct -Start Albingr.g 厂 Fw Vsur froip n *】 确宝 JL 厂 CrtftJk* Bhlck TLL 图 7 Options for Target Target 1 对话框 四、运行调试观察结果 当项目编译、连接成功后,就可以运行它来观察结果,运行调试过程如下。 先用Debug菜单下的Start/Sto
11、p Debug Session命令(快捷键Ctrl+F5)启动调试过程,启动后可用 Debug菜单下 Go连续运行命令、Step单步运行、Stop running停止运行命令等运行程序观察结果。本实验中迚入启动调试后, 先用View菜单下的memory window打开存储器窗口,在 address框输入d: 0 x30,在存储器窗口中显示片内数 据存储器30h单元开始的数据。如图 8所示。 -|C|x| Fl Pile Eiil Yiv Ejrgictl DtVu flal Pcxip-trila TPIS 罰第 Yiad胆 H&l? ifij 岁 巻冨口 0 |為芒龍|匸二咋罕启鬼
12、施喂 跖引 ? LJHf (CAIU Q(E?G lOQOH mrR;EH)V RO,#30H m(T ILJV y” CLR C innF: TTF 和的D 冲C A” fijU nzv 伽池 JJt RJD R2 .LOOP Memory window 窗口 *cil -bi iflzM 000 00 0U00 uu DO nnn nO1000 00 00 打 HUuuO :DO OD DO CO OO 00 00 00 00 OiU 00 00 00 0 0-0 -U o O o D o o U Q o _D D U 03 0D on DI oo E Pp F 氐 K 卉 r FjS q
13、 冃 -九 r m HL r 耳 c 丁1*0更日1人 牛吧車 人M兮*pr鲨 卜h作皿討/ ill eel Fvldir far Qtj EVVJ tln JLill ! Is 加刘6 也址、Lowe* iJefcrifi hiM廿* rirL4t: Nut忡 n LI曲由 甞0 也掛申十逊说比。卜|尿 乙1林武忙瞳妊巳丨色血丨匪 图14连接元件图 五、在keil 51中设计软件程序,形成 HEX文件。保存软件项目到电路文件相同的文件夹 e: projectio。设 计软件程序如内容一,过程略。参考程序如下: ORG 0000H LJMP MAIN 33: sfis 4卄旳lr册息解 J:一
14、 土 T1I#JJ 劭睁鼻#鼻懐導备 图13放置元件图 * IE: * 吕 * LEL RED ! . 11 17 ORG 0100H MAIN:MOV A,#01H LOOP:MOV P2,A LCALL DELAY RL A SJMP LOOP SJMP $ DELAY:MOV R2,#10H DELAY1:MOV R3,#0FFH DJNZ R3,$ DJNZ R2,DELAY1 RET END 六、在PROTEUS电路图中,单击单片机 80C51芯片,选中,再次单击打开单片机 80C51的属性对话框, 在属性对话框中的 program file框中选择下载到80C51芯片中的程序。这里
15、是同一个文件夹下面的 io.hex 文件。如图14所示。 图14 下载程序到单片机 七、单击仿真运行按钮 play,运行程序。可通过 LED二极管看到相应的结果。如图 15所示。18 图15仿真结果图 实验结论不问题: 如果要改变LED显示的循序,该怎么办? 19 实验四单片机定时/计数器实验 实验目的: 1、 了解定时/计数器的结构 2、 熟练掌握定时/计数器的使用方法 3、 掌握利用定时/计数器产生方波的方法 4、 掌握中断的使用 实验设备:计算机、KEIL51软件、PROTEUS软件 实验内容: 利用单片机/计数器 0工作于方式1,从P1.1产生周期为100ms的方波,从P1.2产生周期
16、为500us的 方波,要求定时器溢出用中断方式处理,在仿真环境上实现,用示波器测量产生的方波周期。 (参考原理图 不程序见附录) 实验步骤:(略) 实验结论不问题: 怎样改变输出信号的周期?改变方式对输出波形有什么影响? 参考电路图, C1 C2 H19 18 C3 U1 XTAL1 XTAL2 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 39 8 T37 34 3 RST P0.7/AD7 R1 300 29 30 PSEN P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 ALE EA P2
17、.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 21 22 3 25 26 _27 F 1 2 3 4 5 P1.0 P1.0 P1.1 P1.2 P1.1 P1.2 P1.3 P1.4 P1.3 P1.4 P1.5 P3.0/RXD P3.0/RXD P3.1/TXD P3.2/INT0 P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.3/INT1 P3.4/T0 10 11 12 13 14 10 11 12 13 14 D1 D1 D2 LED-I LED- D2 LED-RED LED-RED P1.5 P1.6 P1.7 P1.6
18、P1.7 P3.5/T1 P3.6/WR P3.7/RD P3.5/T1 P3.6/WR P3.7/RD 15 16 17 15 16 17 30C51 1nF X1 CRYSTAL 4.7uF 20 程序参考教材。21 实验五 单片机串行通信实验 实验目的: 1、了解串行口的结构不功能 2、掌握串行通信的方法 3、学习串行通信程序的设计 实验设备: 计算机、 KEIL51 软件、 PROTEUS 软件 实验内容: 实现甲不乙两台单片机点对点的双机通信,将甲机的片内 RAM 中 30H3FH 单元的内容传送到乙机的 片内 RAM 的 40H4FH 单元中,内容自定。在仿真环境上实现。 实验步骤
19、:(略) 实验结论不问题: 通信时,应先启动发送还是先启动接收?为什么?10 22 实验六键盘和数码管显示实验 实验目的: 1、 了解矩阵键盘的基本原理 2、 了解数码管软件译码动态显示的基本原理 3、 掌握利用51单片机使用矩阵键盘和数码管显示器方法 实验设备: 计算机、KEIL51软件、PROTEUS软件 实验内容: 实现2 8矩阵键盘和8个LED数码管显示,要求按键编码在数码管上轮流显示,在仿真软件中设计硬件电 路,编写转换程序,仿真运行。 实验步骤:(略) 实验结论不问题: 如果从左向右显示,如何处理? 参考电路图 J=L U1 U2 AL IXTAL1 P0.0/AD0 XTAL2
20、RST P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 PSEN P2.3/A11 ALE P2.4/A1EA P2.5/A13 P2.6/A14 P1.1/T2EX P3.1/TXD P1.2 P1.3 P3.2/INT0 P1.5 P3.5/T1 P3.6/WR- P3.7/RD- P1.7 18 9 29 30 31_ AT89C52 3D1 4 3D2 7 3D3 8 3D4 13 3D5 14 3D6 17 3D7 18 21 1 D0 39 3 D0 Q0 D1 QD2 Q
21、D3 QD4 Q4 D6 Q6 D7 Q7 OE LE 74LS373 D0D4 D133 D2 32 D331 D4 30 D529 U3 2 D0 D1 D4 D7 AL 11 22 5 25 8 A1 _ 35 RESET 6 CS RD WR AO D2 D3 D5 D6 36 9 D628 D727 23 24 26 27 5 6 9 12 15 16 19 17 28 8255A PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 4 A 3
22、B 2 C 1D 40 E 39 F 38 G 37 H 1J 12 23* 24* 25* 26* 27. 25 A 14 PC0 15 PC1 16 17 13 12 11 10 23 24 参考程序: #include #include #define /定义绝对地址访问 char int /延时凼数声明 /声明显示凼数 /声明检测按键凼数 /声明键扫描凼数 uchar disbuffer8=0,1,2,3,4,5,6,7; /显示缓冲区左移,按键放入显示缓冲区最后 /调用显示凼数 / 定义显示凼数 uchar codevalue16=0 x3f,0 x06,0 x5b,0 x4f,0
23、x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; 0 F 的字段码表 uchar chocode8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; /uchar i,p,temp; for (i=0;i8;i+) XBYTE0 x7f01=0 xff; p=disbufferi; temp=codevaluep; XBYTE0 x7f00=temp; / temp=chocodei; / / 取当前显示的字符 / 查得显示字符的字段码 送出字段码 取当
24、前的位选码void main(void) uchar key; XBYTE0 x7f03=0 x81; while(1) key=keyscan(); if( key!=0 xff) disbuffer0=disbuffer1; disbuffer1=disbuffer2; disbuffer2=disbuffer3; disbuffer3=disbuffer4; disbuffer4=disbuffer5; disbuffer5=disbuffer6; disbuffer6=disbuffer7; /主凼数 /8255A 初始化 /检测按键 /* void delay(uint i) uin
25、t j; for (j=0;ji;j+) 延时凼数 * / 延时凼数 /* * 显示凼数 * uchar unsigned #define uint unsigned void delay(uint); void display(void); uchar checkkey(); uchar keyscan(void); /定义显示缓冲区 disbuffer7=key; display(); void display(void) 位选码表 25 uchar keyscan() uchar scancode; uchar codevalue; uchar m; uchar k; uchar i,j
26、; if (checkkey()= =0) return(0 xff); else delay(20); if(checkkey()= =0) return(0 xff); else scancode=0 xfe;m=0 x00; for (i=0;i8;i+) k=0 x01; XBYTE0 x7f00=scancode; for (j=0;j2;j+) if (XBYTE0 x7f02&k)= =0) / codevalue=m+j; while(checkkey()! =0); return(codevalue); else k=k1; m=m+2; scancode=scancode1; / 定义列扫描码变量 / 定义返回的编码变量 / 定义行首编码变量 / 定义行检测码 / 检测有无键按下 , 无返回 0 xff / 延时 / 检测有无键按下 , 无返回 0 xff / 列扫描码 , 行首码赋初值 / 送列扫描码 检测当前
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微特电机的能效优化考核试卷
- 2024年标准职业学校学生实习岗位合作三方合同版
- 2024年度贷款购买与转让协议3篇
- 玉米种植农业生态环境保护措施评估考核试卷
- 煤化工生产过程监控与数据分析考核试卷
- 电子商务支付课程设计
- 2024年燃气综合服务购销协议示例
- 2024医院医用耗材包装及运输服务合同3篇
- 材料力学课程设计要求
- 算法股票投资课程设计
- 2023叉车使用安全管理规范
- 3-6岁儿童学习与发展指南语言领域解读
- 医用注射器原理与使用方法
- 2023-2024学年浙教版科学九年级上册期末测试+
- 110KV高压线路检修方案
- 国开02181-混凝土结构设计原理机考复习资料
- 药用植物硒多糖的
- 课程设计列车变频空挪用直流电源系统的设计
- 物业保洁新技术新设备的应用
- 《四川省病案质控指标检查表》填报指南
- 工程洽商记录表
评论
0/150
提交评论