实 验 报 告
第 页
专业___软件学院__ 班级___4___ 学号___123012005158__
实验日期: 2007 年 11 月 2 日 报告退发 (订正 、 重做)
课程 单片机程序设计 实验名称 串口中断实验
一、实验目的
掌握串口中断原理和使用方法
二、实验环境
PC, KC
三、实验内容、步骤和结果分析
用定时中断的方式通过串口输出一个字符串.
org 00h
ajmp main
org 0023h
ajmp series
main:
mov SCON, 0x50 /* SCON: mode 1, 8-bit UART, enable rcvr */
mov TMOD, 0x20 /* TMOD: timer 1, mode 2, 8-bit reload */
mov TH1 , 0 /* TH1: reload value for 1200 baud @ 16MHz */
mov r0,#0ffh
mov r1,#0ffh
mov r2,#00h
setb TR1 ;开中断
setb ES
setb EA
;mov a,#30h
setb TI
mov dptr,#para ;将para赋值给dptr
ajmp $
series: clr TI ;清零,要进行中断的话TI必须为1,下面必须setb ti
djnz r0, output0 ;用于延时
djnz r1, output1
mov r0,#0ffh
mov r1,#0ffh
;cjne a, #30h, tt
;inc a
; mov a,0h
cjne r2,#06h,setz
;djnz r3, setz
mov dptr,#para
mov r2,0h
setb TI
reti
;out: reti
setz: mov a,#0h
movc a,@a+dptr ;将dptr赋值给a寄存器
mov sbuf, a ;发送
inc dptr ;dptr递增
inc r2
output1: mov r0,#0ffh
output0: setb TI
reti
para: db "hello " ;设置db段为要打印的字符串
end
四、讨论
本次实验后基本了解了如何使用串口中断和定时器中断,并对于dptr的使用有了初步的认识和了解,成功通过程序在串口进行模拟的输出.实验过程对于定义字节的移动等曾一直搞错,后在修改后得以理解并成功实现了本实验.