优势更加明显。程序结构框图和源代码如下:
ORGMOVMOVMOVMOVMOV
1000H20H××H21H××H22H××H2AH××H2BH××H
f
MOV2CH××HMOVR020HMOVR12AHMOVR703HCLRCLOOP0MOVAR0MOVBR1ADDCABMOVR0AINCR0INCR1DJNZR7LOOP0NEXTJNCHALINCR0MOVR001HHALSJMPEND5思考题1、如果题目1改为递增排序,如何修改程序,为什么?答:将NEXT中的指令中的JC指令换为JNC指令即可2、如果题目1改为从30H单元开始的16个单元中无符号数排序,改哪几条指令?答:改变R7的值为15,将值赋予30H到3FH上就可以了3、如果题目2改为从50H开始的4字节数与60H开始的四字节数相加,如何修改?答:MOVR020H改为MOVR050HMOVR12AH改为MOVR160HMOVR703H改为MOVR704H4、写出题目2中你处理最高位进位的相应指令。答:NEXTJNCHALINCR0MOVR001HHALSJMP5、循环程序中为何常用间接寻址方式(RiDPTR)?答:因为间接寻址可以实现程序的循环,便于编写程序。
f
6心得体会:通过实际模拟操作,加深了对单片机的理解,更好的理解编程语言,本次实验较为简单,我是独立按时完成,当我看到发光二极管一次亮时别提我的兴奋劲了。在试验的编程过程中弄清了定时器的使用方法,以及延时的计算。
审阅:
f
实验三定时计数器实验
1实验目的:1、掌握MCS51单片机内部定时计数器的功能与特点,工作方式选择和编程方法,中断功能的使用和中断服务程序的设计;2、解和熟悉MCS51单片机实验板的功能。2实验内容:1、用MCS51单片机的内部定时器定时中断,通过P1口控制实验板上八个LED发光二极管轮流循环显示发光,每个LED发光二极管显示时间为05秒;2、用MCS51单片机的内部定时器定时中断,编写一段电子秒表程序。(选做)
3实验设备名称、型号:台式微型计算机MCS51仿真开发机
THKSCM2A
4画出软件程序流程图写出上机调试通过的汇编语言程序清单:1、用MCS51单片机的内部定时器定时中断,通过P1口控制实验板上八个LED发光二极管轮流循环显示发光,每个LED发光二极管显示时间为05秒分析:采用的晶振为110592MHz所以时间周期T1085069μs。采用方式一计时需要460800次,超过了计时范围,故在采用一个内循环,取为10,则共需460800÷1046080。X2(16)46080194564C00H编程:STARTMOVTMOD01HMOVTH04CHMOVTL000HSETBTR0SETBEASETBET0MOVAF7HMOVP1AMOV40H0AHSJMPORG0000HLJMPSTARTORG00BH
f
MOVTH04CHMOVTL000H
DJNZ40HOVERMOV40H0AHMOVP1ARRAOVERRETI
5思考题1、你采用的是定时器0还是定时器1?如果换用另外一个定时器,需要修改那些语句r