实验时间:2010.05.12
实验名称:定时器/计数器应用
实验目的:1. 学习51单片机内部计数器的使用和编程方法。
2. 进一步掌握中断处理程序的编程方法。
实验要求:
1. 用单片机内部定时器中断方式计时,实现每1秒钟输出状态发生一次反转
2. P1.0 ●-----------------------●LED0
实验过程:
org 0 ajmp start org 000bh ajmp timer0_isr org 0100h start: mov sp,#70h mov A,#00000001 mov r7,#16 setb et0 setb ea setb pt0 mov tmod,#01h mov tl0,#00h mov th0,#00h setb tr0 sjmp $ timer0_isr: djnz r7,exit mov r7,#16 cpl A mov p1,A exit:reti end
1.在KEIL软件内新建工程,输入如下程序:
2. 保存文件后缀名为ASM
3. 鼠标右键点source group,点add files to group ‘source group’
4. 点rebuild all target files运行,看是否有语法错误,并修改语法错误,生成后缀名为HEX的文件。
5. 连接单片机开发板与电脑。打开烧录软件,装载HEX文件。
6. 将刚才生成的HEX文件烧入单片机学习开发板中,待完成后观察实验结果。
实验结果:
P1.0口所对应的LED灯,亮一秒,暗一秒。符合实验要求。
实验三 数据排序、拼拆、转换练习
实验时间:2010.05.18
实验名称: 数据排序、拼拆、转换练习
实验目的: 1、熟悉掌握比较和控制转移指令的功能及编程;
2、掌握排序的算法
实验内容: 给出一组随机数,将此组数据排序,使之成为有序数列。
实验过程:
在keil软件录入以下程序,冒泡排序,升序:
实验结果:
ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R0,#04H LOOP1: MOV R1,#20H MOV A,R0 MOV R2,A LOOP2: MOV A,@R1 MOV R3,A INC R1 SUBB A,@R1 JC LOOP3 MOV A,R3 XCH A,@R1 DEC R1 MOV @R1,A INC R1 LOOP3: DJNZ R2,LOOP2 DJNZ R0,LOOP1 SJMP $ END小数排前,大数排后。