实验1BCD码转换成十六进制码Word格式文档下载.docx
- 文档编号:19052032
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:11
- 大小:93.34KB
实验1BCD码转换成十六进制码Word格式文档下载.docx
《实验1BCD码转换成十六进制码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验1BCD码转换成十六进制码Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
(1)熟悉MCS-51指令系统,掌握程序设计方法。
(2)掌握排序程序算法
(3)掌握循环程序实现数据排序的基本方法。
2.实验设备
计算机一台,配置同上
3.实验内容
编写并调试一个通用排序子程序,其功能为将RAM的40H~4FH单元16个子字节无符号二进制整数按从小到大顺序排列,将排序后数据存储于RAM的50H~5FH单元中。
4.实验原理提示
从40H单元的第一个数开始依次和相邻单元的另一个数比较,如果顺序对,则不作任何操作;
如果顺序不对,则将这两个数交换位置。
这样,在完成第1遍n-1次比较后,最大的数到了最后,所以第2遍比较只是比较n-2次,最多作n-1遍比较就可完成排序。
在比较中设立一个标志位flag=1说明排序未完成,进入外循环;
若flag=0,说明排序已完成,程序结束。
实验程序:
ORG0
LJMPMAIN
ORG40H
MAIN:
MOVR5,#10H
MOVR0,#40H
MOVA,#0H
MOVR1,#0H
MOVR2,#10H
LOOP0:
ACALLLOOP
INCR0
INCR1
DJNZR5,LOOP0
LOOP1:
MOVB,#0FH
LOOP2:
MOVA,@R0
MOV10H,A
MOV11H,@R0
LOOP3:
CJNEA,11H,LOOP4
LOOP4:
JCLOOP5
MOV@R0,10H
DECR0
MOV@R0,A
LOOP5:
DJNZB,LOOP2
DJNZR2,LOOP1
SJMP$
LOOP:
MOVDPTR,#TAB
MOVA,R1
MOVCA,@A+DPTR
TAB:
DB3,5,4,1,7,9,3,4,6,1,12,45,23,17,34,12
END
实验3定时器
(1)、加深对MCS-51单片机定时器内部结构,工作原理和工作方式的理解
(2)、掌握定时器工作在定时器状态下的编程方法
(3)、掌握中断服务程序的设计方法
计算机,单片机实仪,KeilC51和Proteus软件。
3、实验内容
定时器实验
在使用12MHz晶振的条件下,用T1产生50ms定时,两个7段LED数码管从“00”开始显示,每1s加1,到达“59”后,再从“00”开始,完成60s定时功能。
4、实验原理提示
定时/计数器实际上是加1计数器,当它对具有固定时间间隔的内部机器周期进行计数时,它是定时器;
当它对外部事件进行计数时,它是计数器。
MCS-51单片机内部包括T0和T1两个定时/计数器。
每个定时/计数器有4种工作方式。
一、定时器计数初值的确定
在定时工作状态下,输入的时钟脉冲是由晶体振荡器的输出经12分频取得的,因此,定时器可看作是对单片机机器周期的计数器。
若晶振频率为12MHz,则定时器的加1计数器每隔
加1。
加1计数器满溢出时才申请中断,所以在给加1计数器赋计数初值时,输入的是加1计数器计数的最大值与这一计数的差值。
设加1计数器计数的最大初值为M,计数值为N,计数初值为Count,则Count的计算方法如下。
定时状态:
Count=M-定时时间/T,T=12/fosc
若单片机的时钟频率为12MHz,T1工作在定时方式1,定时时间为50ms,则其计数初值Count为:
Count=M-定时时间/T=2
-50000/1=65536-50000=15536=3CB0H
所以,定时器的计数初值为TH1=3CH,TL1=0B0H。
二、定时器初始化程序
定时器包括两个控制寄存器TMOD和TCON,向TMOD和TCON写入相应的值来设置各个定时器的操作模式和控制功能。
启动定时器的步骤如下:
(1)、设定TMOD的值:
TMOD=10H,设置T1工作于定时方式1(16位方式)
(2)、设定IE的值:
启动中断SETBET1。
(3)、设定TL1和TH1的值:
TL1=0B0H,TH1=3CH。
(4)、启动T1定时:
SETBTR1。
实验电路图
实验程序流程图
ORG0000H
AJMPSTART
ORG001BH
AJMPTIME1
ORG0030H
START:
MOVSP,#60H
MOVTMOD,#10H
SETBEA
SETBET1
MOVR3,#60
MOVR0,#0
MOVR1,#0
MOVTH1,#3CH
MOVTL1,#0B0H
SETBTR1
AJMP$
TIME1:
PUSHACC
PUSHPSW
MOVA,R0
CJNEA,#20,T_LP2
MOVA,R1
MOVB,#10
DIVAB
ADDA,B
MOVP1,A
CJNER1,#60,LP0
MOVR1,#00H
LP0:
MOVR0,#00H
T_LP2:
POPPSW
POPACC
RETI
END
试验要求
(1)画出实验程序流程图:
编写汇编语言和C51程序。
(2)上级调试该程序。
实验四-基本输入/输出
(1)掌握MCS-51单片机I/O口的基本输入/输出功能。
(2)学习延时子程序的编写和使用。
计算机一台;
单片机试验仪一台;
KeilC51和Proteus软件。
(1)P0作为输出口,接8只发光二极管,编写程序使发光二极管实现“单灯左移”。
(2)P0作为输出口,接8只发光二极管,P2作为输入口,P2.0和P2.1接两个按键
和
;
当按下
时P0口上连接的8只发光二极管全亮;
时P0口上连接的8只发光二极管全灭。
4.实验原理提示
(1)P0口为双向I/O口,具有较大的负载能力,除作为地址、数据复用口外,还可以用作通用I/O口。
P2口味准双向口,常作为通用I/O使用。
当某一口线作为输入口线时,必须向锁存器相应位写入“1”,该位才能作为输入。
(2)常用延时方法
常用循环指令来实现延时,设晶振为12MHz,因此1个机器周期为1us。
DELAY:
MOVR5,#250;
=1个机器周期,设定外循环次数为250次
D1:
MOVR6,200;
=1个机器周期,设定内循环次数为250次
DJNZR6,$;
=2个机器周期,本次执行200次
DJNZR5,D1;
=2个机器周期,本次执行250次
RET;
=2个机器周期,返回子程序
T=
+(
*200)+
)250+
=1+(1+(2*200)+2)*250+2=100753个机器周期
共延时100753*1us=100753us=0.1us
5.实验电路图
I/O实验电路图如下图所示
6.实验程序流程图
实验内容(1)的输出实验程序流程图如下图a所示。
实验内容(2)的输入实验程序流程图如下图b所示。
7.实验程序
MOVP0,#0FFH
MOVA,#0FEH
MOVP0,A
ACALLDELAY
RLA
DELAY:
MOVR5,#250
D1:
MOVR6,#200
DJNZR6,$
DJNZR5,D1
MOVP2,0FFH
START:
JBP2.0,LP0
MOVP0,#00H
LP0:
JBP2.1,START
8实验要求
(1)编写相应的程序。
(2)上机调试通过的程序。
(3)写出实验报告。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 BCD 转换 十六进制