专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

实验二 定时器/计数器应用及数据排序,拼拆,转换练习

作者:佚名   来源:本站原创   点击数:  更新时间:2010年06月23日   【字体:

实验时间: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

小数排前,大数排后。
关闭窗口

相关文章