第一篇:单片机实验报告2
目录 一、实验一··········································1 二、实 验二··········································7 三、实验三·········································11 四、实验四·········································15
一 实验一验实证验器数计/时定ﻩ 定时/计数器验证实验
一、
实验目得
熟悉定时/计数器T0得特点,学会合理选择定时方式并能根据具体情况结合软件得方式定时。
二、
实验 设备及器件
IBM PC机 一台 PROTEUS 硬件仿真软件 Keil C51。
三、实验内容
用AT89C51单片机得定时/计数器T0产生1s得定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始。
四、
实验要求
要求采用Proteus软件实现上述实验.五、
实验步骤
1.打开Proteus ISIS编辑环境,按照表1-1所列得元件清单添加元件。
元件名称 所属类 所属子类 AT89C51 Microprocessor 8051 Family CAP Capacitors Generic CAP-ELEC Capacitors Generic CRYSTAL Miscellaneous —— RES Resistors Generic 7SEG--CAT—GRN Optoelectronics 7—Segment Displays PULLUP Modeling Primitives Digital[Miscellaneous] 表1- 1 元件清单
元件全部添加后,在Proteus ISIS得编辑区域中按图1—1所示得原理图连接硬件电路。
图1 — 1 电路原理图
2.根据参考程序绘出流程图,并辅以适当得说明。
流程图如图1 1 —2 2 所示: :
开始单片机数码管初始化设置定时器0初始化开中断是否有中断?进入中断程序送时间常数COUNT+1是否计够1秒?YN中断返回NSECOND+1是否等于60秒?YSECOND归零Y分离计数值十位个位N查表显示十位个位 图1 1--2 程序流程图
3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“Source Group 1”中.在“Options for Target”对话窗口中,选中“Output”选项卡中得“Create HEX File”选项与“Debug”选项卡中得“Use:Proteus VSM Simulator”选项。编译汇编源程序,改正程序中得错误。
4.在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit ponent“对话窗口,设置单片机晶振频率为12MHz,在此窗口中得“Program File”栏中,选择先前用Keil生成得、HEX文件。在Proteus ISIS得菜单栏中选择“File"→“Save Design”选项,保存设计,在Proteus ISIS得菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug
Monitor”选项,以支持与Keil得联合调试.5.在Keil得菜单栏中选择“Debug”→“Start/Stop Debug Session“选项,或者直接单击工具栏中得“Debug”→“Start/Stop Debug Se
ssion”图标,进入程序调试环境。按“F5”键,顺序运行程序。调出“Proteus ISIS“界面可以瞧到7段数码管显示从0~59s得计数值,每个数值显示1s,如图1—3所示。
图1 — 3
程序运行结果
六、
实验 程序
SECOND EQU 30H COUNT H13 UQEﻩ0GROﻩﻩ0 Hﻩ
LJMP START
ORG0 HBﻩﻩ
LJMP INT_T0 START: H00#,DNOCESﻩﻩVOMﻩ
H00#,TNUOCﻩ VOMﻩ ELBAT#,RTPDﻩ VOMﻩﻩ AﻩﻩRLCﻩﻩ
MOV
A,0Pﻩ
MOV
A,2Pﻩ
MOV H00#,DOMTﻩﻩ
652/)00005—63556(#,0HTﻩ VOMﻩ 652 DOM)00005—63556(#,0LTﻩ VOMﻩﻩ 0RT BTESﻩﻩ 0TE BTESﻩﻩ
AEﻩBTESﻩ
H28#,EI
VOMﻩ
LJMP $ﻩINT_T0:MOV 652/)00005—63556(#,0HTﻩﻩ VOMﻩﻩ
652 DOM)00005—63556(#,0LTﻩ CNIﻩﻩ
COUNT
MOV
TNUOC,Aﻩ ﻩ CJNE 2I,02#,Aﻩ
VOMﻩﻩ COUNT,#00H
ﻩ CNIﻩ SECOND
ﻩ MOV
A,SECOND
CJNE 1I,06#,Aﻩ ﻩ MOV
H00#,DNOCESﻩI1:
MOV DNOCES,Aﻩﻩ ﻩ MOV H01#,Bﻩﻩ
VIDﻩﻩ AB
MOVC A,A+DPTR
VOMﻩ P0,A
B,AﻩﻩVOMﻩ
RTPD+A,AﻩCVOMﻩ A,2PﻩﻩVOMﻩﻩI2:
ITERﻩTABLE:
DB3 H66,HF4,HB5,H60,HFﻩ
DB 6DH,7DH,07H,7FH,6FH
DNEﻩ七、思考题
1.罗列一下 Proteus 软件得能带给我们得好处, , 指出一点最能帮助您得地方。
使用Proteus软件能使我们方便得搭建电路,同时在没有元器件得情况下进行便于仿真,方便我们在将程序写入单片机前确认运行就是否正确,同时可在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试。
2.用 用 Proteu s 界面中得播放键运行仿真与 Ke i lμVision4 得环境中联调运行它们两者得区别在什么地方?
用Proteus界面中得播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上得表现。而联调得时候可以再Keil软件里查瞧各寄存器与存储器得状况,即硬件得内部情况。
3.K K eil 软件软件仿真与 P r ote us 得仿真对比..使用Proteus仿真可从硬件得角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚得判断运行结果就是否正确。而在Keil环境中则就是从程序得角度通过观察程序中数据得变化来观察仿真结果,需要对程序运行结果充分了解.八、实验总结 及相关问题
通过本次实验了解了Ptoteus软件得使用方法,以及在掌握了Keil得使用方法下,学会了Proteus与Keil软件联调得方法。
在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可就是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能就是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1—3得结果。
二 实验二机片单ﻩ 单片机 O I/O 口控制实验
一、
实验目得
利用单片机得P1 口作IO 口,使同学学会利用P1 口作为输入与输出口。
二、
实验设备及器件
IBM PC 机 一台 DP—51PRO、NET 单片机仿真器、编程器、实验仪三合一综合开发平台一台
三、
实验内容
1.编写一段程序,用P1 口作为控制端口,使D1 区得LED 轮流亮。
2.编写一段程序,用P1、0~P1、6 口控制LED,P1、7 控制LED 得亮与灭(P1、7 接按键,按下时LED 亮,不按时LED 灭).四、
实验要求
学会使用单片机得P1 口作IO 口,如果有时间同学也可以利用P3 口作IO 口来做该实验.五、
实验步骤
1.用导线把A2 区得J61 接口与D1 区得J52 接口相连。原理如图2—1 所示。
图2 — 1 实验二 原理图
2.先编写一个延时程序。
延时程序 见程序1 1 子程序 DELAY。
3.将LED 轮流亮得程序编写完整并使用TKStudy ICE 调试运行。
LED 轮流亮程序见程序1。
调试运行结果 :D1 区 LE D轮流亮..4.使用导线把A2 区得J61 接口得P1、0~P1、6 与D1 区得 J52 接口得LED1~LED7 相连,另外A2 区J61 接口得P1、7 与D1 区得J53 得KEY1 相连. 5.编写P1、7 控制LED 得程序,并调试运行。(按下K1 瞧就是否全亮).P1、7 控制L ED 得程序见程序2 2。
调试运行结果:按下 P1、7 7 后 D1 区LE E D全灭。
6.A2 区J61 接口得P1、7 与D1 区得J54 得SW1 相连。然后再使用TKStudy ICE 运行程序,查瞧结果。
P1、7 控制L ED 得程序见程序2 2。
调试运行结果:按下P1 1、7后D1 1 区LE E D全亮。
六、
实验参考程序
序 程序 1: :
ORG
0000 HﻩLJMP
NIAMﻩORG
0100H MAIN: MOV
A,#0FFH
CLR CﻩﻩMAINLOOP:CALL YALEDﻩ A
CLRﻩﻩ
A,1Pﻩ VOMﻩ
SJMP POOLNIAMﻩDELAY: MOV
R7,#0 LOOP: MOV
0#,6Rﻩ
DJNZ $,6Rﻩ $,6R ZNJDﻩﻩ ﻩ DJNZ R6,$
ﻩ DJNZ R7,LOOP
RET
ﻩ END 程序 2 2: :
ORG
000H LJMP MAIN ORG 0010 HﻩMAIN: JB
DELTES,7、1PﻩCLRLED:CLR
0、1Pﻩ
CLR 1、1Pﻩﻩ
RLCﻩ P1、2
ﻩ CLR
3、1Pﻩ
CLR 4、1Pﻩﻩ ﻩ CLR
P1、5
RLCﻩ P1、6
ﻩ SJMP MAIN SETLED:SETB P1、0
ﻩ SETB 1、1Pﻩ
2、1P BTESﻩ 3、1PﻩBTESﻩﻩ
SETB 4、1Pﻩ
SETB 5、1Pﻩ
6、1PﻩBTESﻩ NIAMﻩPMJSﻩﻩ DNEﻩﻩ七、实验思考题
1.请同学思考一下, , 想出几个实现以上功能得编程方法。
程序1可利用单片机得定时计数器通过选择定时计数器工作方式与预置初值设定延时时间,通过定时计数器产生得中断在中断程序中对A进行移位后输出至P1口.程序2可在判断P1、7高低电平后根据判断结果直接将#80H或#7F直接送P1口而不必逐位进行位操作。
2.请同学再思考一下, , 第二个程序中如果使用 KEY1 作为外部中断控制 LED D 得亮与灭时, , 程序应如何修改。
此时将KEY1接/INT0口,在主程序中开启外部中断设置外部中断触发方式,通过中断服务子程序控制LED亮灭。程序如下所示: 0GROﻩ00 Hﻩ LJMP MAIN
ORG3000 序程务服断中ﻩ;Hﻩ LJMP DELTESﻩMAIN: MOV H04#,PSﻩ 断中部外开;0TE BTESﻩ CLR 0TIﻩ;设置为电平触发
SETB AEﻩCLRLED:CLR P1、0
CLR P1、1
2、1PﻩRLCﻩ CLR 3、1Pﻩ 4、1PﻩRLCﻩ CLR P1、5
CLR 6、1Pﻩ DELRLC PMJSﻩSETLED:SETB P1、0
1、1PﻩBTESﻩ SETB P1、2
3、1PﻩBTESﻩ 4、1P BTESﻩ SETB 5、1Pﻩ 6、1P BTESﻩ ITERﻩ
DNEﻩ八、实验总结 及相关问题
通过本次实验掌握了使用 TKStudy ICE 进行硬件仿真调试得方法,在设置仿真器驱动程序声明时对 C:Keil 目录下得Tools、ini 文件添加描述时,由于添加得路径错误导致无法进行硬件仿真调试,修改为正确路径后方可在DEBUG 窗口中得 Use 选项中找到对应得选项。使用 TKStudy ICE 进行硬件仿真调试相比本学期得电子系统设计中用到得调试方法更快捷,使用更方便. 与此同时,通过本次实验对单片机得 I/O 控制有了更深入得了接,同时加深入对单片机I/O 编程得理解.实验三
串转并 O I/O 口实验
一、
实验目得
熟悉并掌握串转并得I/O口扩展方法。
二、
实验设备及器件
IBM PC机 一台 DP-51PRO、NET单片机仿真器、编程器、实验仪三合一综合开发平台 一台
三、
实验内容
1.写程序,通过单片机得P1口控制74HC164得串行输入端口,实现串并转换.
2.验证串并转换数据得正确性。
四、
实验要求
熟悉串并转换芯片得工作原理,学会使用串并转换芯片扩展单片机得I/O 口资源.表3-1 74HC 164 真值表
五、
实验步骤
1. 短接C5区JP10接口,将C5区J43接口与A2区J61接口得P10~P13对应相连(CLK对P10等等)。如图3-1所示。
图3 —1 实验 三 原理图
2。
运行编写好得软件程序,完成一次串并转换。
实验 程序 见 实验参考程序。
2. 使用C2区得逻辑笔或D1区得J52接口(LED指示灯)测试并行输出数据Q0~Q7数据得正确性。
调试运行结果:通过观察 LE D得亮灭情况可判断完成一次串并转换, , 且转换结果正确无误..六、
实验参考程序
CLK
0、1P UQEﻩDINA
EQU P1、1 DINB
EQU P1、2 CLR164 3、1P UQEﻩORG0000 HﻩﻩLJMP NIAMﻩORG0010 HﻩﻩMAIN:
MOV
SP,#60H
ﻩ NOP
CLR
CLK
SETB BNIDﻩ
RLCﻩﻩ CLR164
461RLC BTESﻩﻩ
HFF0#,Aﻩ VOMﻩ VOMﻩﻩ
H80#,4RﻩSLCHG: RLC
Aﻩ
C,ANIDﻩ VOMﻩ
SETB
CLK
PONﻩ
KLC
RLCﻩ
PONﻩ GHCLS,4R
ZNJDﻩﻩ $ PMJSﻩﻩ
END 七、实验思考题
参考图 3—2电路图,尝试编写软件程序,实现 8 位 LED 流水灯得控制。
图 图 3、2 实验原理图
可利用单片机得定时计数器通过选择定时计数器工作方式与预置初值设定延时时间,通过定时计数器产生得中断在中断程序中对A进行移位。程序如下所示:
CLK
EQU
0、1Pﻩ ﻩ DINA
1、1P UQEﻩ ﻩ DINB
2、1P
UQEﻩ
CLR164 EQU P1、3
0 GROﻩ000 Hﻩ
LJMP MAIN
ﻩ ORG
000BH
;定时器 0 中断服务程序
LJMP SLCHG MAIN:
H06#,PSﻩ VOMﻩ
NOP
CLR
CLK
BNID BTESﻩ
461RLCﻩﻩRLCﻩ ﻩ SETB 461RLCﻩ
MOV
HFF0#,Aﻩ
MOV
1式方作工 0 器时定ﻩ;H10#,DOMTﻩ VOMﻩﻩ
数常间时 sm2 送ﻩ;H81#,0HTﻩ
HCF0#,0LTﻩ VOMﻩ ﻩ SETB
0RTﻩ;开中断
0TEﻩBTESﻩ
AEﻩBTESﻩ
$ PMJSﻩSLCHG: MOV ﻩ H81#,0HTﻩ
MOV
HCF0#,0LTﻩ A
CLRﻩﻩ C,ANID
VOMﻩﻩ ﻩ SETB
CLK
NOP
KLCﻩ RLCﻩ RETI
DNEﻩ八、实验总结 及相关问题
由于具有之前实验得基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验对串并转化程序得编写有了一定了解,通过编写流水灯程序加深了对单片机串并口得了解。
实验四
继电器控制实验
一、
实验目得
加深理解继电器得工作原理与特点,掌握利用单片机得IO口控制继电器得一般方法。
二、
实验设备及器件
IBM PC机 一台 DP—51PRO、NET单片机仿真器、编程器、实验仪三合一综合开发平台 一台
三、
实验内容
1.利用D1区得拨动开关与LED,学习继电器得工作原理与特点。
2.编写一段程序,用P1、0口控制继电器,继电器控制LED得亮与灭,(与CLOSE连通时,一盏LED亮;不连通时该LED灭。与OPEN连通时,另一盏LED亮,不通时该LED灭).
四、
实验要求
学会继电器得使用与利用单片机得IO口控制继电器得方法。
五、
实验步骤
图4 -1 继电器驱动控制电路图
1.用短路帽短接JP7,使用导线把D1区J54接口得SW1与C7区J9接口得KJ(任意一根针)相连接。
2.使用导线把D1区J52接口得LED1、LED2与C7区J103接口得OPEN1,CLOSE1分别相连,另外C7区J103接口得1接地(GND)。
3.接好线后,同学可以拨动D1区得SW1拨动开关,观察现象(拨到1时LED2亮,拨到0时LED1亮),并得出结论。
运行结果: : 拨到1 时LED 2 亮,拨到0 时L ED 1 亮,说明每拨动一次开关改变一次继电器得状态。
4.然后把C7 区J9 接口得KJ 改接到A2 区得J61 接口得P10。再编写一个程序程序(参考实验二), 使P1、0 口延时一段时间后改变电平值,来控制继电器得开关。
实验 程序见实验参考程序。
调试运行结果: : 两 个 LED 交替变亮, , 继电器状态不断改变。
六、
实验参考程序
ORG 0000 HﻩLJMP MAIN ORG
0100H MAIN: MOV
R7,#0 LOOP: MOV
0#,6Rﻩ ﻩ DJNZ $,6Rﻩ $,6RﻩZNJDﻩﻩ ﻩ DJNZ $,6Rﻩ POOL,7RﻩZNJDﻩﻩ ﻩ CPL
0、1Pﻩ NIAM PMJSﻩﻩ
DNEﻩ
七、
实验思考题
1.请同学思考一下,改由 OPEN 2、2、CLOSE2 时本实验如何进行。
同使用OPEN1、1与CLOSE1时连接方法类似,把D1区J52接口得LED1、LED2与C7区J103接口得OPEN2,CLOSE2分别相连,另外C7区J103接口得2接地(GND)即可。
2.请同学再思考一下, 继电器得用途,并举例说明。
继电器就是一种电控制器件,就是当输入量(激励量)得变化达到规定要求时,在电气输出电路中使被控量发生预定得阶跃变化得一种电器。它具有控制系统(又称输入回路)与被控制系统(又称输出回路)之间得互动关系。通常应用于自动化得控制电路中,它实际上就是用小电流去控制大电流运作得一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其她类型得继电器 八、实验总结 及相关问题
由于具有之前实验得基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器得控制方法。对继电器这一器件有了一定了解。
第二篇:单片机实验报告
单片机实验报告
一、实验目的
1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解
4.培养运用汇编语言进行初步编写程序的能力
二、实验内容
1.将片外RAM3050-306FH中数据转移至片内70-8FH中。
要求:可以从Keil或Protues上看到RAM的数据转移结果。2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。
要求:开发板或Prrotues演示
3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。
要求:在Keil或Protues上看到数据转换结果。
4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。
要求:Protues使软件间示波器显示方波。
三、实验程序
1.将片外RAM3050-306FH中数据转移至片内70-8FH中
ORG 0000H AJMP MAIN 上电,转向主程序
ORG 0030H 主程序入口
MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器
MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一
DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行
MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1
SJMP $ 等待
END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮 ORG 0000H SJMP MAIN 上电,转向主程序
ORG 0003H 外部中断0向量入口
AJMP INSER ORG 0030H 主程序入口
MAIN: SETB EX0 SETB IT0
SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行
RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP
允许外部中断0中断 选择边沿触发方式 开中断 等待中断 设置循环次数 赋初值,设置高电平亮 将初值送往P2口 延时 左移一位
判断循环次数,是否跳转到中断返回 延时程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波
ORG 0000H
AJMP MAIN
ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值
MOV TL1,#0F0H
SETB ET1 开中断
SETB EA CPU开中断
SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断 ORG 001BH T1中断向量地址
CLR TF1 将TF1清零
CPL P2.0 P2.0取反输出
MOV TH1,#0D8H 重装初值
MOV TH0,#0F0H
RETI;中断返回
END 4.2 查询方式产生50HZ方波
ORG 0000H
AJMP MAIN
ORG 0030H 主程序入口
MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值
MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待
CLR TF1
产生溢出,清标志位
CPL P2.0 P2.0取反输出
SJMP LOOP 循环
END
四、实验结果截图
1.2
3.4.1
4.2
第三篇:单片机实验报告
实验
四、中断交通灯实验
林立强
1000850116
一、实验目的
1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。
2、掌握中断响应及处理的编程方法。
二、实验原理
MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。如表:
IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。
三、实验电路
电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS
四、实验内容
参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。
1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;
2、程序下载到单片机实验板上验证;(实验板数码管的驱动程序见附件)。
五、程序流程图
仿真图:
紧急情况:
源程序:
ORG 0000H
AJMP START
ORG 0023H //串口中断地址
AJMP SBR1
START:MOV TMOD,#00100000B
//定时器方式2
MOV TL1,#0FDH //9600bps/11.0592MHz
MOV TH1,#0FDH
SETB TR1
MOV SCON,#01100000B //方式1
MOV R0,#20H
MOV R1,#40H
ACALL SOUT
SJMP $
SBR1: JNB RI,SEND
ACALL SIN
SJMP NEXT SEND: ACALL SOUT NEXT: RETI
SOUT: MOV A,@R0
MOV C,P
CPL C
MOV ACC.7,C
INC R0
MOV SBUF,A
CLR TI
RET
SIN: MOV A,SBUF
MOV C,P
CPL C
ANL A,#7FH
MOV @R1,A
INC R1
CLR RI
RET
PLAY: MOV A,R7
MOV B,#10
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
// 0
A B C D E F
END
第四篇:单片机实验报告
51单片机控制流水灯
目录
(1)51精简开发板简介(2)实验目的(3)实验内容(4)元件(5)原理图(6)实验步骤
(7)主要功能介绍
(8)实验错误及分析(9)调试及程序(10)系统测试(11)实验心得
一、51精简开发板简介
它是一款以8051系列单片机为核心的精简开发板。8051系列单片机是一款应用非常广泛的8位微处理芯片,由于其功能齐全,产品技术成熟,资料广泛,又是学习其他很多单片机的基础,所以它是初学者学习单片机的不二之选,是大学生进行电子实习、课程设计、毕业设计的必备的单片机。
本款51单片机精简开发板较市面上所出售的一般开发板的方便之处在: 支持STC及ATMEL AT全系列51/52单片机芯片,具有两种方便的下载方式,并且能够通过串口方便地和电脑进行通信。
2.省去了一般开发板高成本的外围扩展器件,但仍可以进行单片机I/O口输入输出、定时/计数器、中断、串口通信等常用实验项目。方便的扩展功能使用户能够根据自身需要配备实用的外围器件。
3.具有市面上一般单片机所不具有的超强扩展性能。每组I/O口两侧都与单片机供电电源相连,免去了以往单片机接扩展板时还需另行供电的麻烦。
4.开发板总体布局美观、大方,所有元件均采用直插式封装,便于焊接。学习51板单片机应由浅入深,逐步掌握,先是模仿实验,再是自己动手。51板单片机的开发环境是Keil uVision3,简单易懂,详细用法本书后面也做了说明。另外书后还附有几个有趣的实验,方便学生测试51板,也作为学生学习、修改之用。
二.实验目的
1.了解“51” 精简开发板的工作原理及结构;
2.了解复杂电子产品生产制造的全过程;
3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践观念。
三.实验内容
学会焊接电路,在开发板上实现八个流水现象以及通过使用汇编语言,控制流水灯过程。四.元件
1、单片机
STC89C52 一块
2、晶振 11.0592MHz一只
3、PCB板
4、电阻 三支
5、电容 八只
6、双路自锁开关 一个
7、LED 发光二极管 八只
8、排针9、4.5V电池盒
10、串口下载线 1.5米
11、串口电平转换芯片 NAX232 12、9针排阻 10千欧姆
13、复位按键14、14、PCB板 五.原理图
本产品是一套完整的8位单片机开发系统,若将程序下到51板上,它将成为一个极其有趣的智能玩具。
1.主要性能指标
输入电压:DC 4.5V~5V;典型值:5V
2.功能分区与模块简介
图10.1 51板框图
[1] 单片机
单片机也称单片微控制器(Single Chip Microcontroller),它集成度高、运算快、体积小、运行可靠、价格低廉,在过程控制、数据采集、机电一体化、智能仪器仪表、家用电器以及网络技术等方面得到广泛应用。MCS-51单片机结构框图如图10.2所示。
图10.2单片机结构
[2] 电源部分
电源部分由开关、稳压集成、电源指示灯几部分组成,本款51板输入电压4.5V~5V,典型输入电压为5V,也可通过板上的稳压集成芯片78M05给单片机提供5V电压,可使单片机正常工作。图10.1中的DS0为电源指示灯。[3] 串行下载部分
这一部分由串口、下载缓冲器MAX232组成,通过MAX232芯片把TTL电平转换成RS-232电平格式,可以用于单片机与微机通信。再通过DB9接口由一条串口线与电脑串口相连,可以利用程序下载软件(下载方法书后将做介绍)向单片机下载程序,也可通过一些串口调试软件与电脑进行串口通信。但是,只有STC89S系列单片机支持串口下载,而AT89S系列单片机不支持串口下载。[4] ISP下载
ISP下载是AT89S系列单片机的下载方式,不能用于STC89S系列单片机,它由一条并口线与电脑并口相连,通过Easy下载软件向单片机下载程序,但下载器需另行购买。
[5] 输入/输出接口
51板将32个I/O口全部引出:其中P0口、P1口、P2口、P3口各有8个I/O口用排针引出,排针两端为与单片机共地的5V电源,方便进行外接扩展,而单片机的EA、ALE、PSEN端口也在靠近排阻下方引出,以方便日后进行一些高级扩展。P1口接有8个发光LED,以供测试之用,P0口外接10K的上拉电阻。这些I/O口即可做输出,又可做输入口,51单片机内部可自行识别,不必要设置。
[6] 外部复位
复位是对单片机硬件的初始化,51单片机具有外部复位功能,高电平有效,即在单片机9脚加上高电平单片机就被复位。此产品的复位电路由按键S2,电容C3和电阻R9组成。
六.实验步骤:
1.拿到51单片机套件后,首先应按照附录的元器件清单表逐一检查元件数目和规格,确保产品完整。
2.详细阅读硬件说明部分,并将元件对号入座,确保一次性焊接成功。
3.先对较矮小的元件进行焊接,比如电阻、稳压集成,再对高一些的元件进行焊接,比如芯片座、排阻等,依此类推,最后焊接高大的元件,比如串口、ISP下载口等。焊接时应注意一些元件的正负极和方向。
4.由于此套件标准配置不包含稳压集成VR1(78M05),所以焊接完成后要用导线将VR1的1、3焊盘短接,芯片才能正常供电,此时只能使用4.5-5V的直流稳压电源供电;如果将自购VR1(78M05)焊接在板子上,那么就可以使用7.2V-15V的宽电源供电。
5.焊接并检查无误后先不要急于插入芯片,应该先对芯片供电电压进行测量。插上电源,用万用表检查单片机的20、40脚及MAX232的15、16脚间电压,看是否为+5V(±0.5V),然后用跳线帽接通P6的中间一针和上面一针,使单片机EA端(31脚)与电源正极相接,之后再插上芯片,进行系统测试。七.主要功能介绍: MCS-51单片机
也称单片微控制器,;它集成度高,运算快,体积小,运行可靠,价格低廉,在过程控制数据采集,机电一体化,智能仪表,家用电器,及网络技术等方面得到广泛应用。串口下载部分
由串口,下载缓冲器MAX232组成,通过MAX232芯片把TTL电平转换为RS232电平格式可以用单片机与电脑通信,再通过DB9接口有一条串口线与电脑串口相连,可以利用程序下载软件向单片机下载程序,也可以通过一些串口调试软件与电脑串口通信,而我们所使用的STC89C系列单片机只支持串口下载。电源部分
电源部分有开关,稳压集成,电源指示灯几部分组成,熟人电压4.5V到6V。典型值为5V.ISP下载
ISP下载是AT89S系列单片机下载方式而我们所用的是STC89C所以在此不多详细介绍。输入/输出接口
本开发板将4个并行I/O端口全部用排针引出来,共32个个排针,排针两端为与单片机共地的5V电源,方便进行外拓展;单片机的ALE,PSEN端口也靠近排阻下方引出以方便日后进行高级拓展。外部复位
对单片机硬件初始化操作,在系统加电时或出现故障时,在单片机RESET引脚加上一定时间的高电平就可以使单片机复位,这次制作的单片机复位系统是由按键,电容C1和电阻R3构成。八.实验错误及分析:
1.接好电源盒,电源指示灯不亮。
原因:1电源插座存在虚焊现象,接触不良。电源拔断开关存在虚焊现象,接触不良。方法:修复虚焊点。2.不能正常下载程序。
原因:1 电路板电源没有正常接通 下载线焊接组装有误 51板、下载线、PC机没有正常连接 4 电池电压低 方法:1 电源正常接通
更正正确 换新 更换或修复焊点
3.下载程序完成后,不能完成流水灯功能 原因:1 电池电压过低 发光二极管损坏或管脚虚焊 3 电阻R1开路或管脚虚焊 方法:1 更换电池 更换或修复焊点 3更换或修复焊点 九.程序:
#include “reg51.h” void main(){ unsigned inti=10;P1=0xfe;while(1){
while(--i){;} P1=(P1<<1)| 0x01;if(P1==0xff)P3 = 0x7f;
while(P1==0xff){ while(--i){;} P3=(P3>>1)| 0x80;
if(P3==0xff)
{
P1=0xfe;P3=0xff;} } } }
十、系统测试
1.串口测试
接上单片机电源和串口线,打开电源开关,电源指示灯DS0亮,使用STC89C系列单片机,其本身自带了一个测试程序,上电之后DS1-DS7便会两个两个的闪烁。或者自己下载一个程序,如果下载成功,说明串口正常,如不成功,请仔细检查焊点及串口线。
2.I/O口测试
下载程序一,将跳线P5接ON一端,如发现上排LED逐个亮或有规律的亮,说明P1检测正常;
根据程序一的特点,仔细分析程序二各语句功能,并猜测其结果,接着将程序二下载到单片机上,仍将跳线P5接ON一端,自己观察小灯跳变规律,看与自己分析结果是否一致。十一.心得体会:
在通过本次课程中,我遇到很多问题,但是与此同时,我也学到了很多,对于本次课题的心得体会,我觉得有以下几点:
1、不管做什么事,计划是很重要的。没有一个完好的计划,做事情就会没有一个好的顺序,做事情会比较乱,很难成功。而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率。
2、做事要多动脑,选出最好的方法。一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。
3、要识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。
4、,在本次课题中,我也注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。因此我不仅仅要有整体意学会了不懂就问,不仅事半功倍,而且发现了一些好的有趣的构想,使我对单片机有了更浓的兴趣。
5、最后,也是最重要的一点,通过这次课题,我学到了很多有关单片机方面的知识,也对单片机有了更深入的了解,受益匪浅。
计
算 机 基 本 技 能 训 练
学校:西安科技大学
班级:电气工程及其自动化1202班
姓名:张小雨
学号:1206060202
日期:2014年1月2日
第五篇:单片机实验报告
单片机原理与应用实
学校:合肥工业大学
班级:计算机科学与技术
学号:
姓名:
验报告
第一章MC51 单片机原理及应用软件实验
实验1:系统认识实验
1. 实验目的
(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。掌握实验箱内拨位开关KF,KC的使用方法。(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。(3)教育学生爱抚实验装置,养成良好的实验习惯。
2. 试验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。
3. 试验内容
(1)使用串行通讯电缆将实验开发装置与PC机相连。
(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。(4)在uVision2开发平台上建立并编辑示例程序:
计算N个数求和程序。其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。
题目:
1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。
(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。(7)实验结束,撤出接线,将一切整理复原。
4.实验源程序
ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R2,#06H MOV R3,#03H MOV R4,#04H MOV R0,#50H L1: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END
5.实验结果截图
6.实验总结
这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目 1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=? 实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目 计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。这次试验对硬件开发有了基本的认识,特别是对于单片机的存储器有了进一步的认识,在程序中把数据放入RAM中,结果存放在R3和R4中,实验时不知道R3和R4的地 址,后来了解到R3和R4可以直接用他的地址03H和04H,这样进一步深化了书本上 的知识。另外通过这次试验,对于51单片机的几种寻址方式也有了具体的认识。总之,还是要多动手虽然程序不是自己写的,但是阅读理解了还是有点收获的。
实验六.数据排序实验
1. 实验目的
(1)理解并掌握排序程序的设计方法。(2)掌握减法指令的功能,并联系其使用。
(3)逐步提高调试程序的能力及编写程序的能力。
2. 试验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。
3. 试验内容
(1)使用串行通讯电缆将实验开发装置与PC机相连。
(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。
(3)编写程序,实现从平台连续输入六个数,数码管将马上从小到大的顺序显示这六个数。要求被排序的数放在70H到7FH单元中。(4)编译连接源程序。
(5)调试程序,在存储器窗口输入被排序数放在70H到7FH单元中,全速运行程序,并检查程序员的运行结果,观察是否正确。
(5)若程序中出现错误,则可以采用单步分段调试,排除程序错误,直到正确为止。
4.实验源程序
MAIN:
LOP2:
LOP1:
LOP5:
ORG 0000H LJMP MAIN ORG 0030H MOV R2,#70H MOV R3,#71H MOV R4,#0FH ACALL LOP1 DJNZ R4,LOP2 LJMP LOP6 MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 CLR C SUBB A,@R1 JC LOP4 MOV A,@R0 XCH A,@R1
LOP4:
LOP6:
MOV @R0,A INC R1 INC R0 MOV A,@R0 CJNE
R1,#80H,LOP5 RET END 5.实验结果截图
6.实验总结
本次试验是在冒泡排序算法实现对70H~7FH中的数据进行排序,如上第一张图所示RAM中70H~7FH存放了数据,第二张图显示的是通过冒泡排序整理过的数据。成功完成了实验,收到了预期效果。
对于习惯了使用高级语言编程的我,看这些绕来绕去的汇编还是有些头大,觉得这个例子写的不太好,跳来跳去,程序层次不分明,可读性很差,冒泡不应该有内外两层吗,看书上有一个例子就写得很好,跟用高级语言写差不多,然而实验的这个好像是要考我们对各种跳转指令的了解,所以读起来晕头转向的。从另一方面来说,通过这次试验,我也熟悉了汇编的跳转与分支指令。另外,所以ORG 0000H
LJMP MAIN
ORG 0030H,这三句ljmp这句跳到了main,那么还要后面一句干嘛。不甚理解。
总之,这次实验让我了解了各种分支与跳转,还是有所收获的。
第二章MC51 单片机原理及应用硬件实验
实验一:广告灯实验
1. 实验目的
(1)熟悉ZY15MCU12BC2单片机实验开发装置的试验箱,学会选用其功能电路,连接成实验需要的系统。掌握实验箱内拨位开关KFKC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。
2.试验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。
3. 试验内容
(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。
(3)用试验箱上的发光二极管L0到L7模拟外界各种场合的动态广告灯,将试验箱上的发光二极管L0到L7分别与单片机的P1.0到P1.7相连。
(4)编写程序,实现从P1口输出信号驱动发光二极管L0到L7模拟外界广告灯动态点亮的功能。
(5)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。
(6)单步执行程序,观察是否进入表格首地址。
(7)单步执行程序,观察发光二极管L0到L7的变化。
(8)全速运行程序,观察发光二极管L0到L7的变化,并注意程序将循环下去。(9)实验结束,撤除接线,将一切整理复原。
4.实验源程序
ORG 0000H MAIN: MOV DPTR,#TAB
MOV R5,71H LOOP: MOV A,#00H
MOVC A,@A+DPTR
MOV P1,A
ACALL DELAY
ACALL DELAY
INC DPTR
DJNZ R5,LOOP
LJMP MAIN DELAY: MOV R7,#00H
MOV R6,#00H DE:
DJNZ R7,$
DJNZ R6,DE
RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH
DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH
DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H
DB 01H,00H,01H,03H,07H,0FH,1FH,3FH
DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH
DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H
DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH
DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH
DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H
DB 80H,40H,20H,10H,08H,04H,02H,01H,00H
DB 01H,02H,04H,08H,10H,20H,40H,80H,00H
DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH
END
5.实验结果
6.实验总结
广告灯按照程序所给的效果循环的有序的点亮,如果应用到广告霓虹灯,的确可以到达璀璨的效果,程序的最后的TAB是最纠结的,你要按照效果一点一点的编写十六进制的数字,换算出效果,可见真正的商业广告的效果的确是很麻烦的一件事,通过这个实验,我清楚地认识到了单片机的控制的灵活性,另外对于查表指令也有所理解。实验二:P1端口应用实验
1.实验目的
(1)进一步熟悉ZY15MCU12BC2实验箱上的资源,掌握实验箱内拨位开关KF,KC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。
2.试验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。
3. 试验内容
(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。
(3)将试验箱上的L0到L3接到P1.0到P1.3,开关K0到K3接到P1.4到P1.7。(4)编写程序实现如下功能: 拨动K0到K3,使L0到L3出现以下组合变化。K3 K2 K1 K0 L3 L2 L1 L0 0 0 0 0 全亮 0 0 0 1 全暗
0 0 1 0 一灯亮其余灯暗并左环依 0 0 1 1 一灯亮其余灯暗并右环依 0 1 0 0 一灯暗其余灯亮并左环依 0 1 0 1 一灯暗其余灯亮并右环依 ? ? ? 显示开关状态Ki为0,Li灯亮 要求:
1)设40H单元为标志单元,(40H)=0时开关状态无变化,(40H)=FFH时开关状态发生变化。
2)设41H单元为开关状态缓冲器,读入开关状态和41H单元内容比较,相同时开关状态无变化,不同是开关状态有变化。3)设42H单元为当前指示灯状态。
(4)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。
(5)根据准双向口的特性,对P1口写操作使灯L0到L7的状态随写入P1.0到P1.3的内容而变化;读P1口的高四位,读出内容随开关状态的变化而变化。如不对,则检查开关K0到K3的接线,检查K0到K3的电平是否随开关状态变化而变化。
(6)从开始运至BK1处,检查A的内容是否对应开关状态,接着单步运行程序,检查是否转到相应入口使L0到L3状态产生相应的变化。(7)全速运行程序至BK2,在检查A的内容是否与开关状态一致,如不对,则检查前面对P1口的操作指令。
(8)全速运行程序实现所要求的功能。
4.实验源程序
ORG 0000H STRL: MOV A,P1
SWAP A
ANL A,#0FH
MOV 41H,A
MOV 40H,#0FFH MLP0: CJNE A,#6,$+3
JNC PK6
MOV DPTR,#CTAB
MOV R1,A
RL
A
ADD A,R1
JMP @A+DPTR CTAB: LJMP PK0
LJMP PK1
LJMP PK2
LJMP PK3
LJMP PK4
LJMP PK5 PK6:
MOV 42H,A
LJMP MLP1 PK5:
MOV A,40H
CJNE A,#0FFH,PK51
MOV 42H,#01
LJMP MLP1 PK51: MOV A,42H
LCALL RR7
ANL A,#0FH
JNZ PK52
MOV A,#1 PK52: MOV 42H,A
LJMP MLP1 PK4:
MOV A,40H
CJNE A,#0FFH,PK41
MOV 42H,#1
LJMP MLP1 PK41: MOV A,42H
LCALL RL9
ANL A,#0FH
JNZ PK42
MOV A,#1 PK42: MOV 42H,A
LJMP MLP1 PK3:
MOV A,40H
CJNE A,#0FFH,PK31
MOV 42H,#0F7H
LJMP MLP1 PK31: MOV A,42H
LCALL RR9
ANL
A,#0FH
CJNE A,#0FH,PK32
MOV
A,#0F7H PK32: ORL
A,#0F0H
MOV
42H,A
LJMP MLP1 PK2:
MOV
A,40H
CJNE A,#0FFH,PK21
MOV
42H,0FEH
LJMP MLP1 PK21: MOV
A,42H
RL A
ANL A,#0FH
CJNE A,#0FH,PK22
MOV A,#0FEH PK22: ORL A,#0F0H
MOV 42H,A
LJMP MLP1 PK1:
MOV 42H,#0FH
LJMP MLP1 PK0:
MOV 42H,#0 MLP1: MOV A,42H
ORL A,#0F0H
MOV P1,A
MOV R7,#0
MOV R6,#0 DEL1: DJNZ R6,DEL1
DJNZ R7,DEL1
MOV
A,P1
SWAP A
ANL A,#0FH
CJNE A,41H,MLP2
MOV 40H,#0
LJMP MLP0 MLP2: MOV 41H,A
MOV 40H,#0FEH
LJMP MLP0 RR9:
RR A
RR A RR7:
RR A
RR A
RR A
RR A
RR A
RR A
RR A
RET RL9:
RL A
RL A RL7:
RL A
RL A
RL A
RL A
RL A
RL A
RL A
RET
END
5.实验结果截图
6.实验结论
试验中我们把P1口作为输入输出口来测试以下的内容 1.P1 口做输出口,接八只发光二极管循环点亮。2.P1 口低四位接四只发光二极管L1-L4, P1 口高四位接开关K1-K4,编写程序,将开关的状态在发光二极管上显示出来。
在这次试验中我认识到课本上的关于P1口的介绍的知识 P1 口为准双向口,P1 口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。
实验三:串转并实验
1.实验目的
(1)掌握51系列单片机串口工作方式0的应用。
(2)学习8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行 输出的同步移位寄存器74LS165两个接口芯片的应用性能。(3)研究单片机串行口如何用于扩展并行I/O口。
2.试验设备
(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。
3. 试验内容
(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确 认89C51处于仿真状态。(3)实验步骤:
1)通过单片机串口用一片8位串行输入/并行输出的同步移位寄存器74LS164扩展 8位并行输出口。
2)通过单片机串口用一片8位并行输入/串行输出的同步移位寄存器74LS165扩展 8位并行输入口。(4)将单片机的RXD端与74LS164的串行输入端SERIAL(PA)相连,将单片机的TXD 端与74LS164的脉冲CLOCK(PB)相连,74LS164的输出Q0到Q7接发光二极管 L8到 L15。(5)调试程序:
1)实验采用终端方式调试,既目标程序装入仿真器后,使操作界面进入终端方式。2)单步进入执行程序,打开Keil的寄存器窗口,观察串口数据缓冲区SBUF里的值有何变化。
3)单步执行程序,注意中断标志T1的变化以及所亮的发光二极管的位置。
4.实验源程序
ORG 0000H SJMP MAIN ORG 0023H SJMP SBV MAIN: MOV SCON,#00H SETB EA SETB ES MOV A,#80H MOV SBUF,A MOV SBUF,A MOV SBUF,A SJMP $ SBV: ACALL DELAY CLR T1 RR A MOV SBUF,A RETi DELAY: MOV R7,#00H MOV R6,#00H DEL: DJNZ R7,$
5.实验结果截图
6.实验结论
在实验中我明白了串行口和并行口的相关知识8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行输出的同步移位寄存器74LS165两个接口芯片的应用性能。知道了单片机串行口如何用于扩展并行I/O口