单片机原理实验报告
更新时间:2023-08-29 16:35:01 阅读量: 教育文库 文档下载
单片机原理实验报告
班级:仪表092
学号:099064064
姓名:颜志文
指导老师:丁易新
实验01 Keil μVision编程平台与汇编指令练习
一、实验器材
[1] 微型计算机
[2] 单片机硬件开发实验装置 [3] 实验装置下载线
二、实验目的
1. 熟悉uVision3集成调试环境
2. 熟悉MCS-51寻址方式及传送类指令
三、实验要求与任务
传送类指令练习。单步逐条向下执行指令。每执行一条指令,都要分析一下指令源操作数、目的操作数在存储空间的哪个单元,看一看你所理解的指令执行结果与实际运行结果是否符合,并且把每条指令执行后目的操作数的值记录下来。
1. 直接寻址只能在DATA 区和SFR 中进行,如下例 ORG 0000H LJMP START
ORG 0100H START:
MOV MOV MOV MOV
; 此处加入RAM的初始化程序(见下文)
A, 03H ; 把地址03H 中的数移入累加器
43H, 22H ; 把地址22H 中的数移入地址43H 中 02H, C ; 把Cy中的数移入位地址02H 中 42H, #18H ; 把立即数18 移入地址42H 中
MOV 09H, P1 ; 把端口1中的数移入地址09H 中 SJMP $
END
2.间接寻址要使用DPTR,PC ,R0, R1 寄存器作为指针访问各存储器。可访问的空间为CODE、IDATA、XDATA存储区,对DATA 存储区也可进行间接寻址。只能用直接寻址方式对位地址进行寻址。
①XDATA 区寻址:
ORG 0000H LJMP START
ORG 0100H START:
; 此处加入RAM的初始化程序(见下文)
MOV DPTR, #3048H ; DPTR 指向外部存储区
MOVX A, @DPTR ; 读入外部存储区地址3048H 中的数 INC DPTR ; 指针加一
MOV A, #26H ; 立即数26H 写入A 中
MOVX @DPTR, A ; 将26H 写入外部存储区地址3049H 中 MOV R0, #87H ; R0 指向外部存储区地址87H
MOVX A, @R0 ; 将外部存储区地址87H 中的数读入累加器中
SJMP $ END
②CODE区寻址:
查CODE区的平方表:
ORG 0000H LJMP START ORG 0100H
START:
MOV DPTR, #TABLE_BASE ; DPTR 指向表首地址
MOV A, #5 ; 把偏移量(立即数5)装入累加器中
MOVC A, @A+DPTR ; 从表中读出数据到累加器中(5的平方) SJMP $ TABLE_BASE:
DB 0,1,4,9,16,25,36 ; 平方表 END
四、实验步骤: Ⅰ 创建项目
⒈ 第一次使用,首先为我们编写的实验程序在D盘上新建一个文件夹D:\单片机实验; ⒉ 启动keil uVision3,新建一个项目文件并从器件库中选择一个器件,操作步骤如下: ⑴启动keil uVision3;
⑵新建一个项目文件:从菜单Project中选择New Project。 ①选择保存路径(至D:\单片机实验) ②输入项目文件名 (例:shiyan) ③点击保存 ⑶选择CPU:
弹出对话框Select Device for Target,为项目选择CPU。我们选择Atmel下的AT89C51。 弹出对话框,询问是否添加标准的启动代码到你的项目,不理会,点击NO。
Ⅱ新建一个源文件 从菜单File选择New来新建一个源文件。
在text1编辑窗口中输入程序。把程序保存在D:\单片机实验。由于是汇编程序,输入文件名时一定输入扩展名“.asm”。例:shiyan.asm。
Ⅲ 将你的源文件加入到你的项目中
⒈ 在你的Project Workspace窗口中点击Target 1前“+”,展开Suorce Group 1; ⒉ 右击Suorce Group 1,出现菜单,选择Add files to Group “Suorce Group 1”选项; ⒊ 弹出对话框。①选择你刚刚生成的文件。例:shiyan.asm。
②文件类型选择 asm source file ③点击Add后关闭对话框。
Ⅳ 编译(或汇编)你的源程序
⒈ 点击菜单Project下Options for Target弹出对话框Options for Target target1 。 Xtal:定义CPU时钟,12MHz。
下面依次是编译的存储模式、程序空间大小等设置,均使用默认值即可。
若要生成下载文件(.hex文件),点击Output选项,选中Create Hex Files。
⒉ 点击菜单Project下Build Target
即可编译(或汇编)你的源程序(留意一下,在工具栏上可找到相应快捷按钮)。
在下面的输出窗口Output Window可看到编译(汇编)的结果,应该没有错误才可继续下面实验。否则修改你的源程序,直到没有错误为止。
Ⅴ 调试你的程序
点击菜单Debug下Start/Stop Debug Session进入调试模式。
你现在就可以采用连续运行、停止、指令单步、函数单步、运行到光标处行等命令调试你的程序(这些命令在Debug下Run、Stop Running、Step、Step over,Run to Cursor line。也可利用快捷按钮)
。
你也可以设置断点后,连续执行程序进行调试。
如程序运行到中间想从头再来,只要按
RST按钮即可常用调试快捷按钮
符号
Rst
说明
复位
Run 连续运行
Stop Running 停止
Run to Cursor line 运行到光标
处行
Start/Stop Debug Session 调试模式/ 编辑模式 切换
Step into Step over 指令单步
函数单步
Ⅵ 存储器、寄存器的查看、修改
在调试程序时,经常需要查看存储器内容,你可以查看8051内的4个存储器逻辑空间的任一
个。
在调试模式下,依次点击View,Memory Window,你可以看到包含4个存储器空间的窗口,你在第一个存储器空间的Address栏内输入C:0,即可看到从0000H开始的一段程序存储内容;你也可以在其它Address栏内分别填入X:0、D:0、I:0就可以查看外部数据存储器空间、直接寻址的片内存储空间(包括片内00-7FH的RAM,及80H-0FFH的SFR)、间接寻址的片内存储空间(包括片内00-7FH的RAM,及8032的80H-0FFH的数据RAM)。
如要修改Memory Window内存储单元内容,可用鼠标右键点击选定存储单元,根据提示即可修改。
在Project Workspace窗口,你还可以看到8051的所有寄存器。
如要查看单片机的外围部件,像端口P0-P3,定时器T0、T1等,可点击Peripherals。
实验02 二进制数转换成十进制数实验
一、实验器材
[1] 微型计算机
[2] 单片机硬件开发实验装置 [3] 实验装置下载线
二、实验目的
1. 熟悉uVision3集成调试环境
2.学习掌握51单片机的汇编语言程序设计。
三、实验要求与任务
将RAM地址61H,60H的16进制数(高位61H,低位60H),转换成十进制数,结果送到44H、43H、42H、41H、40H(最高位44H,低位在40H)。
程序思路:数据-10000,够减X次,则万位为X;差值-1000,够减Y次,则千位为Y;差值-100,够减Z次,则百位为Z;差值-10,够减U次,则十位为U;个位为差值。
四、实验步骤:
实验步骤同实验01 实验程序如下: ORG 0000 LJMP B16TD5
B16TD5: MOV 44H,#0FFH MOV 62H,60H MOV 63H,61H B16TD5_1:INC 44H MOV A,62H CLR C
SUBB A,#10H ;十进制10000转换为16进制数2710H
MOV 62H,A MOV A,63H MOV 63H,A JNC B16TD5_1
SUBB A,#27H
ADD A,#10H
MOV 62H,A MOV A,63H MOV 63H,A MOV 43H,#0FFH
ADDC A,#27H
B16TD5_2:INC 43H MOV A,62H CLR C
SUBB A,#0E8H ;十进制1000转换为16进制数3E8H
MOV 62H,A MOV A,63H MOV 63H,A JNC B16TD5_2
SUBB A,#3
MOV A,62H ADD A,#0E8H
MOV 62H,A MOV A,63H MOV 63H,A
ADDC A,#3 MOV 42H,#0FFH B16TD5_3:INC 42H MOV A,62H CLR C
SUBB A,#64H ;十进制100转换为16进制数64H
MOV 62H,A MOV A,63H MOV 63H,A JNC B16TD5_3
SUBB A,#00
MOV A,62H ADD A,#64H
MOV 41H,#0FFH B16TD5_4:INC 41H
MOV 62H,A MOV A,63H MOV 63H,A
ADDC A,#00
CLR C SUBB A,#10
MOV 62H,A JNC B16TD5_4
MOV A,62H ADD A,#10
MOV 40H,A HERE:SJMP HERE END
实验03 流水灯实验
一、实验器材
[1] 微型计算机
[2] 单片机硬件开发实验装置 [3] 实验装置下载线
二、实验目的
1. 熟悉uVision3集成调试环境
2.学习掌握51单片机的I/O端口及编程。
三、实验电路:
图1-3 8位流水灯显示电路
四、实验要求与任务
1. 设计节日流水灯。8051单片机P0口驱动流水灯:输出“1”时灯灭,“0”时灯亮。流水灯效果如下图2-1所示。图中
表示灯灭,
流水灯效果在1-8
状态中循环。
LD0
……
LD7
LD0
……
LD7
1
1
2
2
3
3 4
4 5
5
6
6 7
7
8
8 9
9
10
图
2-1
流水灯
1
11
12 13
14 15
16 17
18
图
2-2
流水灯
2
2. 设计节日流水灯。
8051单片机
P0口驱动流水灯:输出“
1”时灯灭,
“0
”时灯亮。流水灯效果如上图
2-2
表示灯灭,流水灯效果在1-16
状态中循环。
五、实验步骤:
1.
系统各跳线器处在初始设置状态(参见附录)(
J1的
1,2处
8只短路帽打在左边,
3,4的
5只短路帽打在右边)
,MCU
的JD13
连接到八位逻辑电平显示模块的JD30
。 2. 程序输入、编译等实验步骤同实验01。 3.程序下载编程。
系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。
打开STC-ISP V397软件。
⑴ 步骤一:选择单片机芯片型号STC89C52RC ⑵ 步骤二:打开hex文件
⑶ 步骤三:选择COM口,与设备管理器(我的电脑,点击鼠标右键,选择设备管理器)中端口一致。
⑷ 步骤四:设置为12T/单倍速 ⑸ 步骤五:Download/下载。
关学习机电源→握手接线→打开学习机电源 4.程序验证。
流水灯一 ORG 0000H
LJMP MAIN MAIN:
MOV R7,#01H MAIN_LP:
MOV A,R7 MOV P0,A
LCALL DELAY RR A
MOV R7,A JMP MAIN_LP DELAY:
MOV R6,#0AH DL1: MOV R0,#0C8H DL: MOV R1,#0FFH DL6: DJNZ R1,DL6 DJNZ R0,DL DJNZ R6,DL1 RET END
流水灯二
ORG 0000H LJMP MAIN MAIN:
MOV R7,#00H MAIN_LP:
MOV A,R7 MOV P0,A
LCALL DELAY CPL ACC.0 RR A
MOV R7,A JMP MAIN_LP DELAY:
MOV R6,#0AH DL1: MOV R0,#0C8H DL: MOV R1,#0FFH
DL6: DJNZ R1,DL6 DJNZ R0,DL DJNZ R6,DL1 RET END
一、实验器材
[1] 微型计算机
[2] 单片机硬件开发实验装置 [3] 实验装置下载线
实验04 数码管显示实验
二、实验目的
1. 掌握8段数码管硬件线路原理;
2.掌握用HD7279A芯片实现数码管显示的编程方法。
三、实验电路
HD7279A是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能
显示驱动芯片,该芯片还可同时连接多达64键的键盘矩阵。HD7279A内部含译码器,可直接接受16进制码。
HD7279A芯片介绍请见附录一。
四、实验要求与任务
根据电路使用HD7279A驱动共阴数码管,显示自己学号后3位(例如:101)。
程序可参考附录一。
五、实验步骤:
1. 系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),J3打在7279处。 2. 程序输入、编译等实验步骤同实验01。 3.程序下载编程。
系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。
打开STC-ISP V397软件,下载程序(同实验03)。
六、实验程序参考框图:
实验程序如下:
KEY BIT P1.3 CLK BIT P1.6 DAT BIT P1.7 CS BIT P2.7
ORG 000H JMP START ORG 100H
START: MOV SP,#2FH ;定义堆栈
MOV P1,#11011011B ;I/O口初始化 MOV R7,#50
START_DELAY: MOV R6,#255
START_DELAY1:DJNZ R6,START_DELAY1 DJNZ R7,START_DELAY
MOV A,#10100100B ;发复位指令 CALL SEND SETB CS
XIANSHI:MOV A,#10000010b CALL SEND MOV A,#00000000b CALL SEND
MOV A,#10000001b CALL SEND MOV A,#00000110b CALL SEND
MOV A,#10000000b CALL SEND MOV A,#00000100b CALL SEND hh:JMP XIANSHI
SEND: MOV R0,#8 CLR CS
CALL LONG_DELAY
SEND_LOOP: MOV C,ACC.7 MOV DAT,C SETB CLK RL A
CALL SHORT_DELAY CLR CLK
CALL SHORT_DELAY DJNZ R0,SEND_LOOP CLR DAT RET
LONG_DELAY: MOV R7,#80
DELAY_LOOP: DJNZ R7,DELAY_LOOP RET
SHORT_DELAY:MOV R7,#6
SHORT_LP: DJNZ R7,SHORT_LP RET END
课程设计实验01 AD转换实验
一、实验器材
[1] 微型计算机
[2] 单片机硬件开发实验装置 [3] 实验装置下载线
二、实验目的
1. 掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用; 2.掌握用查询方式完成模/数转换程序的编写方法。
三、实验电路
实验使用ADC00809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片。片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁器输出。由于片内没有时钟需外接时钟信号。
芯片的引脚如图5-1,各引脚功能如下:
图5-1 ADC0809引脚图
IN0~IN7:八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:三位地址码输入端。
CLOCK: 外部时钟输入端。CLOCK输入频率范围在10-1280KHz,典型值为640KHz,此时A/D转换时间为100μS。51单片机ALE直接或分频后可与CLOCK相连。本实验CLOCK信号由CPLD Lattice3128分频产生(12MHz晶振12分频)。
D0~D7: 数字量输出端。
OE(ENABLE):A/D转换结果输出允许端。
当OE为高电平时,允许A/D转换结果从D0-D7输出。
ALE: 地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE信号有效时将地址锁存。
START: 启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。
EOC: A/D转换结束信号输出端。
当 A/D转换结束后,EOC输出高电平。
Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。
图5-2 ADC0809时序图
实验数码管显示部分电路,同实验04。实验ADC0809电路如下图5-3所示。实验采用外设与存储器同一编址,在使用中可直接将外设当作数据存储器访问。第0路ADC地址为2f00H(即:CS AD信号对应A15~A3为0010 1111 0000 0)。EOC(A/D转换结束信号输出端)取反后接单片机P1.7,若采用查询方式完成模/数转换,只需查询P1.7即可。本实验CLOCK信号由CPLD Lattice3128分频产生(12MHz晶振12分频)。
图5-3 ADC0809模拟转换电路
四、实验要求与任务
本实验从ADC0809的IN-0输入模拟量0~5V,数码管以十进制形式显示模拟量(单位为伏特)。
提示:将AD转换结果*500/255的运算可简化为将AD转换结果*500/256。
五、实验步骤:
1. 系统跳线:
1)系统各跳线器处在初始设置状态(参见附录),将MCU模块JT12跳线器的C、D、E、F四只短路帽置为上边(1、2短接),G短路帽置为下面(2、3短接)。
2)A/D、D/A模块J101跳线器的短路帽置位左边;CPLD模块JT110跳线器的短路帽置位左边。J1的都打到左边,J2的 WR,RD打在左侧,J3打在CS7279处。 2. 程序输入、编译等实验步骤同实验01。 3.程序下载编程。
系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。
打开STC-ISP V397软件,下载程序(同实验03)。 4.数码管以十进制形式显示模拟量(单位伏特),手动调节电位器 RP100,改变输入模拟量电压的大小,数码管显示将随之变化。
六、实验程序参考框图:
实验程序如下:
ADHEX DATA 050H
DBUF DATA 060H BIT_COUNT DATA 070H
TIMER DATA 072H TIMER1 DATA 073H
TIMER2 DATA 074H
DATA_IN DATA 020H DATA_OUT DATA 021H CLK BIT P1.6 DAT BIT P1.7
ORG 0000H LJMP MAIN ORG 0100H MAIN: clr a setb p1.7
MOV R0,#DBUF
MOV DPTR,#02f00H ; A/D NOP nop nop
MOVX @DPTR,A ; 启动转换 JNB P1.7,$ NOP nop nop
MOVX A,@DPTR ; 读入结果
NOP nop nop
MOV R7,A
MOV ADHEX,A
CALL MUL500 ; ADHEX*500/256 CALL HB2 ; 转换成bcd CALL TODISP ; 拆开显示 NOP
CALL DISPLAY CALL delay LJMP MAIN
DISPLAY:
ANL P2,#00H ; CS7279有效 MOV DATA_OUT,#10100100B ; A4H,复位命令 CALL SEND
MOV DATA_OUT,#11001000B ; 译码方式0,0位显示 CALL SEND
MOV DATA_OUT,DBUF CALL SEND CALL SEND
MOV DATA_OUT,DBUF+1 CALL SEND
MOV DATA_OUT,#11001001B ; 译码方式0,1位显示
MOV DATA_OUT,#11001010B ; 译码方式0,2位显示
CALL SEND
MOV DATA_OUT,DBUF+2 CALL SEND
MOV P2,#0FFH RET
SEND: MOV BIT_COUNT,#8 ANL P2,#00H CALL LONG_DELAY SEND_LOOP:MOV C,DATA_OUT.7 MOV DAT,C SETB CLK
MOV A,DATA_OUT RL A
MOV DATA_OUT,A CALL SHORT_DELAY CLR CLK
CALL SHORT_DELAY
DJNZ BIT_COUNT,SEND_LOOP CLR DAT RET
LONG_DELAY:MOV TIMER,#150 DELAY_LOOP:DJNZ TIMER,DELAY_LOOP RET SHORT_DELAY:
MOV TIMER,#20 SHORT_LP: DJNZ TIMER,SHORT_LP RET
无效
发送字符子程序 ;延时约200US ;延时约20US ; ; CS7279
正在阅读:
单片机原理实验报告08-29
高中数学第一章导数及其应用1_3导数在研究函数中的应用教材习题04-24
毕业生汽车销售实习报告02-22
当前宏观经济形势与经济热点问题06-09
经典语录,最多最新的2016经典语录大全02-10
工程项目竣工财务决算报告的编制方法06-09
中国主要名茶及其产地01-30
人民币汇率波动的影响因素分析09-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 单片机
- 原理
- 实验
- 报告
- 青岛版五年级下册数学期中试卷
- 招投标机构廉政风险防范机制建设的实践与思考
- 剑桥少儿英语预备级下unit15
- 大型养猪场沼气工程设计方案
- 工会劳动保护监督检查三级网络机构图
- 用于银行贷款2013年卫星导航多模增强应用服务系统项目可行性研究报告(甲级资质+专家答疑)编制方案
- 建设部标准施工招标文件(2010年版)
- 我国的法定传染病有哪些
- 全国计算机等级考试二级officeexcel真题
- 施工现场管理奖罚实施细则
- 平行四边形的面积说课稿
- 二叉树的应用实验报告
- 新版中日交流标准日本语初级下同步测试卷(第35-39课)38
- 35T汽车吊参数
- 张主任在高三年级组会议上讲话
- 天鹅的故事(说课稿)
- 新课标高中3500词英语词汇word版带音标
- 阿里巴巴案例分析
- 护理科学研究复习题及参考答案
- 精选最新2020全国行政执法人员考试题库500题(含答案)