单片机实验报告(3)
单片机实验报告

单片机实验报告实验一:存储器块清零或赋值一、实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二、实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。
例如将4000H开始的10个字节内容清零或全部赋值为33H。
注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
三、实验仪器微机、VW,WA VE6000编程环境软件,(单片机实验箱)Lab6000/Lab6000通用微控制器MCS51实验四、实验步骤1、新建工程文件。
(注意:文件不要用中文名称保存时不要用中文路径)2、编写程序。
3、运行和调试过程。
外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH):单步执行程序,观察SFR中外部地址指针的变化;全速执行程序,可以看到外部数据存储器已赋值33H:五、实验结果可以看到外部数据存储器已赋值33H:六、问题讨论本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。
同时,学习掌握汇编程序的编写和调试过程。
实验二:存储块移动一、实验目的1 熟悉51汇编语言程序结构。
2 熟悉循环结构程序的编写,进一步熟悉指令系统。
3 熟悉编程环境和程序的调试。
二、实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。
单片机外部中断实验报告

单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。
前一方式IT0二1,后一方式IT0二0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
单片机实验3 数码管控制实验-动态显示

;实验名称:数码管动态显示
;功能:4位数码管循环显示“0123”“4567”“89AB”“CDEF”,间隔0.5S。
;编写人:陈建泽
;编写时间:2010年11月2日
/**********************程序代码************************/
D1MS: MOV R2,#250 ;250*(1+1+2)=1000us=1ms
L1:NOP
NOP
DJNZ R2,L1
RET
/*****************中断服务子程序*****************/
T0_INT:MOV TH0,#(65536-50000)/256
MOV TL0,#(65536-50000)MOD 256
MOV A,R4
CJNE A,#16,L3
AJMP MAIN
L3:MOV R5,A
AJMP L1
DIS:MOV P2,R6;用A作为中间寄存器,因后面要循环显示
MOV A,R5
ACALL SQR ;查表
MOV P0,A
ACALL D1MS ;1ms
INC R5
MOV A,R6
RL A;指向下一位
MOV R6,A
RET;子程序返回
TAB: DB 0C0H,0F9H,0A4H,0B0H ;共阳极字型码表0、1、2、3
DB 99H, 92H, 82H, 0F8H;共阳极字型码表4、5、6、7
DB 80H, 90H, 88H, 83H;共阳极字型码表8、9、A、B
DB 0C6H,0A1H,86H, 8EH;共阳极字型码表C、D、E、F
单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。
二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。
2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。
通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。
三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)编写程序,点亮LED灯。
2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)将按键和LED灯与单片机相连。
(3)编写程序,实现按下按键控制LED灯亮灭。
3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)将数码管与单片机相连。
(3)编写程序,将数字输出到数码管上显示。
4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。
(2)编写程序,实现定时器功能。
四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。
2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。
按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。
3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。
通过程序设计,可以实现数码管显示不同的数字。
4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。
通过调节定时器的参数,可以实现不同的定时功能。
五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。
通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。
这些技能对于日常生活和工程设计都具有很大的实用性。
在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。
单片机实验报告

七、实验程序
ORG 0000H
AJMP START
ORG 0040H ;?
START: MOV A,#00H
MOV DPTR,#8000H
MOVX @DPTR,A
LCALL DY1
MOVX A,@DPTR
mov p1,a
; LCALL CONVER
;LCALL DISP8279
LCALL DELAY
7、在上位机上运行串口发送软件DVSIO,在窗口中参数设置选择 BP1200(通信波特率),设置连接的串口号(就是刚才得用户通信线接 入的串口)COM1或COM2,再打开串口,如图9-2所示。
图9-2 13、从上面软件窗口里的键盘上点击“0—F”数字按钮,相应的数字 会显示在实验系统的数码管上。 14、也可以通过串口调试助手进行操作。
MOV A,#10000100B LCALL WRCMD MOV A,78H LCALL WRDATE MOV A,79H LCALL WRDATE
MOV A,7AH LCALL WRDATE
MOV A,7BH LCALL WRDATE MOV A,7CH LCALL WRDATE MOV A,7DH LCALL WRDATE MOV A,7EH LCALL WRDATE MOV A,7FH LCALL WRDATE RET
四、 实验原理图和接线图 1、A/D转换原理图见附件
五、实验程序框图 如图5-1所示
六、实验步骤 1、1号模块上0809的0通道IN0用插针线接至主板模拟电压产生 Vout插孔(0~5V)。 2、1号模块上0809的CLK插孔与固定脉冲输出端500KHz(T3)相 连。 3、1号模块上0809的片选CS_0809连接至系统板译码输出Y0。 4、1号模块上/RD、/WR连到系统板的/RD、/WR。 5、1号板上的JD连到系统板的JD1-JD2任一插座上。 6、1号板J0连到底板电源J1-J3任一插座上,J00接底板电源J4。 7、系统板J0连到底板电源J1-J2任一插座上。 8、底板数码管显示JX连到系统板P1的任一插座,COM1和COM2接 +5V。
单片机综合实验报告

摘要单片机应用技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。
实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。
此次试验设计主要以STC89C52RC单片机为核心,由系统开发板、74LS138译码器、8253计数器等元件构成跑马灯以及方波的相关试验。
基于题目基本要求,首先我熟悉单片机最小系统的组成和工作原理,熟悉Keil C51集成环境软件的使用方法。
然后根据系统要求设计电路图,编写汇编语句,购买试验器件,焊接试验电路。
最后进行试验调试。
通过自己不懈的努力,最终完成了试验。
目录实验一构建单片机最小系统和实验环境熟悉 (2)第一部分:实验要求 (2)一、预习要求 (2)二、实验目的 (2)三、实验内容 (2)3.1单片机最小系统实验 (2)第二部分:实验过程 (2)一、单片机最小系统实验 (2)二、实验总结 (4)通过这次实验让我们对单片机最小系统有了一个清晰的认识,为下面的试验打好了基础。
实实验二跑马灯实验及74HC138译码器 (4)第一部分:实验要求 (5)一、预习要求 (5)二、实验目的 (5)三、实验内容 (5)3.1跑马灯实验: (5)3.2 74HC138译码器实验: (5)第二部分:实验过程 (5)一、通过74HC138译码器实现跑马灯 (5)1.1 74HC138译码器介绍 (5)1.1.1 74HC138译码器引脚图 (6)1.1.2 74HC138译码器真值表 (6)1.2 74ls138跑马灯原理图 (7)1.3程序流程图 (7)1.4实验程序代码 (8)三、调试结论 (9)实验三8253方波实验 (10)第一部分:实验要求 (10)一、预习要求 (10)二、实验目的 (10)三、实验内容 (10)第二部分:实验过程 (10)一、8253芯片介绍 (10)1.1 8253引脚图 (10)1.2 8253工作方式 (11)二、使用8253产生方波 (12)2.1实验原理图 (13)2.2程序流程图 (13)2.3实验程序代码 (14)三、调试结论 (15)实验课程总结 (16)参考文献 (16)实验一构建单片机最小系统和实验环境熟悉第一部分:实验要求一、预习要求1.构建单片机最小系统,熟悉51单片机的结构及编程方法。
单片机实验报告

单片机原理与应用实验报告学校:合肥工业大学班级:计算机科学与技术学号:姓名:第一章MC51 单片机原理及应用软件实验实验1:系统认识实验1.实验目的(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。
掌握实验箱内拨位开关KF,KC的使用方法。
(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。
(3)教育学生爱抚实验装置,养成良好的实验习惯。
2.试验设备(1)ZY15MCU12BC2单片机实验开发装置一台。
(2)PC系列微机及相关软件。
3.试验内容(1)使用串行通讯电缆将实验开发装置与PC机相连。
(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。
(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。
(4)在uVision2开发平台上建立并编辑示例程序:计算N个数求和程序。
其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。
题目:1)32H+41H+01H+56H+11H+03H=?2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。
(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。
(7)实验结束,撤出接线,将一切整理复原。
4.实验源程序ORG 0000HLJMP MAINORG 1000HMAIN: MOV R2,#06HMOV R3,#03HMOV R4,#04HMOV R0,#50HL1: MOV A,R4ADD A,@R0MOV R4,AINC R0CLR AADDC A,R3MOV R3,ADJNZ R2,L1END5. 实验结果截图6. 实验总结这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目1)32H+41H+01H+56H+11H+03H=?2)895H+02H+02H+44H+48H+12H=?实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。
单片机实验报告3

实验报告二、实验地点:图书馆816-2三、实验目的:了解MCS-51单片机定时器的结构及使用方法。
四、实验内容1.内容及要求:(1)用定时器1的方式1定时,P1.0接发光二极管,使发光二极管每秒钟闪烁1次。
程序如下:ORG 0000HLJMP STARTORG 001BHLJMP TIME1ORG 0100HSTART:MOV TMOD,#10HMOV TH1,#3CHMOV TL1,#0B0HSETB TR1SETB ET1SETB EAMOV P1,#00HMOV R2,#0AHSJMP $TIME1:MOV TH1,#3CHMOV TL1,#0B0HDJNZ R2,LOOPCPL P1.0MOV R2,#0AHLOOP:RETIEND(2)用定时器1的方式2计数,T1引脚接单脉冲,用P1口接二极管显示计数。
程序如下:ORG 0000HLJMP STARTORG 001BHLJMP TIME1ORG 0100HSTART:MOV TMOD,#60HMOV P1,#00HMOV TR1,#00HMOV TL1,#00HSETB EASETB ET1SETB TR1LOOP:MOV P1,TL1LJMP LOOPTIME1:RETIEND2.流程图:(1)图1 实验(1)流程图(2)图2 实验(2)流程图3.实验步骤(1)连接P1.0和与之对应的发光二极管。
(2)编写定时器计时的程序,打开实验箱,进行编译。
运行程序并观测实验箱。
若实验箱中发光二极管随着程序的运算每一秒闪烁一次,则实验成功。
(3)按照P1.0至P1.7连对应的八个发光二极管,P3.5接单脉冲。
(4)若实验箱上的发光二极管,随着按下单脉冲的次数,进行累加,则表示实验成功。
五、实验中遇到的问题及解决方法问题:进行定时实验时,老师要求将一秒闪烁五次改为一秒闪烁一次。
解决:利用公式(2^16-X)*2*10^(-6)=0.1,重新计算数值,每间隔100ms中断一次,计数初值算得15536,之后进入中断,重新装载初值,做11次中断之后对输出信号进行翻转就能得到一秒闪烁一次的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及接口技术学院:光电信息科学与技术学院班级:一一实验报告册083-1实验一系统认识实验1.1 实验目的1. 学习keil C51 集成开发环境的操作。
2.熟悉td-51系统板的结构和使用。
1.2实验仪器pc 机一台,td-nmc+教学实验系统。
1.3实验内容1. 编写实验程序,将00h —0fh共16个数写入单片机内部ram 的30h —3fh空间。
2. 编写实验程序,将00h到0fh共16个数写入单片机外部ram的1000h到100fh空间。
1.4 源程序 0000hmov r1,#30h mov r2, #10h mov a, #00h mov @r1, a inc r1 inc a djnz r2,loop sjmp $ end2. org 0000hmov dptr, #1000h mov r2, #10h mov a, #00h movx @dptr, a inc dptr inc a djnzr2,loop sjmp $ endloop:loop:1.5 实验步骤1. 创建keil c51 应用程序(1)运行keil c51 软件,进入keil c51 集成开发环境。
-3 - ( 2)选择工具栏的project 选项,弹出下拉菜单,选择n ewproject 命令,建立一个新的卩visi on2 工程。
选择工程目录并输入文件名asm1后,单击保存。
(3)工程建立完毕后,弹出器件选择窗口,选择sst 公司的sst89e554rc 。
(4)为工程添加程序文件。
选择工具栏的file 选项,在弹出的下拉菜单中选择new目录。
(5)输入程序,将text1 保存成asm1.asm。
(6)将asm1.asm源程序添加到asm1.uv2工程中,构成一个完整的工程项目。
2.编译、链接程序文件(1 )设置编译、链接环境(2)点击编译、链接程序命令,此时会在output win dow 信息输出窗口输出相关信息。
3. 调试仿真程序(1)将光标移到sjmp $语句行,在此行设置断点。
(2)运行实验程序,当程序遇到断点后,停止运行,观察存储器中的内容,验证程序功能。
1.6实验结果.2.4实验二查表程序设计实验2.1 实验目的学习查表程序的设计方法,熟悉51的指令系统。
2.2实验设备pc 机一台,td-nmc+教学实验系统2.3实验内容1. 通过查表的方法将16进制数转换为ascii 码;2. 通过查表的方法实现y= x2,其中x为0—9的十进制数,以bcd码表示,结果仍以bcd码形式输出。
52.4实验步骤1. 采用查表的方法将16进制数转换为ascii 码。
(1)编写实验程序,编译、链接无误后联机调试;(2)将待转换的数存放在r7中,如令r7中的值为0x86 ;( 3 )在语句行sjmp main 设置断点,运行程序;(4)程序停止后查看寄存器r6、r5中的值,r6中为高4位转换结果0x38 , r5中为低4位转换结果0x36 ;(5)反复修改r7的值,运行程序,验证程序功能。
2. 通过查表实现y = x2,x为0 —9的十进制数,存放与r7中,以bed码的形式保存,结果y以bed码的形式存放于寄存器r6中。
(1)编写实验程序,经编译、链接无误后,进入调试状态;(2)改变r7的值,如0x07 ;(3)在语句行sjmp main处设置断点,运行程序;(4)程序停止后,查看寄存器r6中的值,应为0x49 ;(5)反复修改r7中的值,运行程序,验证程序功能。
2.5源程序及实验结果1. org 0000hljmp main org 0100hmai n: mov dptr, #asetabmov a, r7 anl a, #0fh move a, @a+dptr mov r5, a mov a, r7 anl a, #0f0h move a, @a+dptr mov r6, a sjmp mai n6asetab: db 30h, 31h, 32h, 33h, 34h,5h, 36h, 37h, 38h, 39hdb 41h, 42h, 43h, 44h, 45h, 46hend当令(r7)=86h时,高四位转换结果(⑹=38h,低四位转换结果(r5)=36h,当令(r7)=37h时,结果如下图:当令(r7)=09h时,高四位转换结果(⑹=30h,低四位转换结果(r5)=39h,结果如下图:2. org 0000hljmp mai nmain: org 0100h mov dptr, #sqrmov a, r7move a, @a+dptrmov r6, asjmp main sqr: db 00h, 01h, 04h, 09h, 16hdb 25h, 36h, 49h, 64h, 81hend当令(r7)=07h 时,(r6)=49h 。
结果如下图:实验三数据排序实验3.1 实验目的熟悉51的指令系统,掌握数据排序程序的设计方法。
3.2 实验设备pc机一台,td-nmc+教学实验系统3.3 实验内容在单片机片内ram的30h —39h写入10个数,编写实验程序,将这10个数按照由小到大的顺序排列,仍写入ram的30h —39h单元中。
3.4 实验步骤(1)编写实验程序,编译、链接无误后联机调试;(2 )为30h—39h 赋初值,如:在命令行中键入 e char d:30h = 9,11h,5,31h , 20h, 16h,1,1ah,3fh,8 后回车,可将这10个数写入30h—39h中;(3)将光标移到语句行sjmp $处,点击命令,将程序运行到该行;(4)查看存储器窗口中30h —39h中的内容,验证程序功能;(5)重新为30h —39h单兀赋值,反复运行实验程序,验证程序的正确性3.5 源程序org OOOOhljmp mai norg 0100hmain: mov r0, #30hmov r7, #0ahlp1: mov a, r7mov r6, amov a, r0mov r1, ainc r1Ip2: mov a, @r0clr csubb a, @r1jc Ip3mov a, @r03.6 实验结果实验四数字量输入输出实验4.1 实验目的了解p1 口作为输入输出方式使用时,cpu对p1 口的操作方式。
4.2 实验设备pc机一台,td-nmc+教学实验系统。
4.3 实验内容编写实验程序,将p1 口的低4位定义为输出,高4位定义为输入,数字量从p1 口的高4位输入,从p1 口的低4位输出控制发光二极管的亮灭。
4.4 实验步骤1. 按图3-1-1所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;2. 编写实验程序,编译链接无误后进入调试状态;3. 运行实验程序,观察实验现象,验证程序正确性;4. 按复位按键,结束程序运行,退出调试状态;5. 自行设计实验,验证单片机其它io 口的使用。
4.5 源程序汇编:org OOOOhIjmp start org 0100h start: orl pl, #OfOh mov a,p1 swap amov pl, a sjmp start endc 程序:#in clude sst89x5x4.h void main( void) {}un sig ned char data i; while(1) { }p1 = p1 | OxfO; i = p1;p1 = (i& gt; >4)&0x0f;实验五中断系统实验5.1 实验目的了解mcs-51单片机的中断原理,掌握中断程序的设计方法。
5.2实验设备pc机一台,td-nmc+教学实验系统。
5.3实验内容1. 单片机集成的定时器可以产生定时中断,利用定时器0和定时器1,编写实验程序在p1.0及p1.1引脚上输出方波信号。
122. 手动扩展外部中断int0、int1 ,当int0产生中断时,使led 8亮8灭闪烁4次;当int1产生中断时,使led由右向左流水显示,一次亮两个,循环4次。
5.4 实验步骤1.定时器中断实验(1)编写实验程序,经编译、链接无误后,启动调试功能;(2)运行实验程序,使用示波器观察p1.0及p1.1引脚上的波形;(3)使用示波器测量波形周期,改变计数值,重新运行程序,反复验证程序功能;(4)按复位键退出调试状态。
2.外部中断实验(1)按下图连接实验电路;(2)编写实验程序,编译、链接无误后启动调试;(3)运行实验程序,先按kk1 ―,观察实验现象,然后按kk2 ―,观察实验现象;(4)验证程序功能,实验结束按复位按键退出调试。
外中断实验接线图5.5 源程序1.定时器中断实验汇编:org 0000hljmp start org 000bh ljmp timer0 org 001bh ljmp timer1 org 0100hmov tmod, #11h mov tcon, #50h mov ie, #8ah sjmp $timer0:cpl p1.0mov th0, #0f8h mov tl0, #00h retistart: mov p1, #0ffhmov th0, #0f8h mov tl0, #00h mov th1, #0f8h mov tl1, #00htimer1:cpl p1.1mov th1, #0f8h mov tl1, #00h reti endc 程序:#i nclude sst89x5x4.h sbit wave1 = p1A0; sbit wave2 = p1A1;void in t_timer0() in terrupt 1 { wave1 = ~wave1; }void in t_timer1() in terrupt 3 {}th1 = 0xf8; tl1 = 0x00;void mai n() {th0 = 0xf8; tl0 = 0x00; th1 = 0xf8; tl1 = 0x00; tmod = 0x11; tcon = 0x50; th0 = 0xf8; tl0 = 0x00;wave2 = ~wave2;14ie = 0x8a; while(1);}2. 外中断实验汇编:org 0000hIjmp start org 0003h Ijmp ein t0 org 0013h Ijmp eint1acall delay djnz r7, elp0 retiei nt1: mov a, #03hilp1:mov r7, #10h mov p1, a rl a rl a acall delay djnz r7, ilpl retistart: mov p1, #00hsetb it0 setb ex0 setb it1 setb ex1 setb ea sjmp $delay: mov r6, #0ffh dlpl: dlp2:mov r5, #0ffh djnz r5, dlp2 djnz r6, dlpl ret endein t0: mov r7, #04h elp0:mov p1, #0ffh acall delay mov p1, #00hc 程序#i nclude sst89x5x4.h #i nclude intrin s.h void delay(void)15{ }un sig ned int x;for(x=0; x<0xffff; x++);void int0_isr() interrupt 0 { }void in t2_isr() in terrupt 2 {unsigned char i=0x03, j; for(j=0; j<16; j++) {p1 = i;un sig ned char j; for(j=0; j<4; j++) { }p1 = 0xff; delay(); p1 = 0x00; delay();}}p1 = 0x00;void main () {p1 = 0x00;it0 = 1; ex0 = 1; it1 = 1; ex1 = 1; ea = 1; while(1);}i = _crol_(i, 2); delay();5.6 思考题设定int1为中断高优先级,在程序初始化中加一句:setb px1,则当按kk1-时,即int0产生中断时,led灯亮灭闪烁,在期间即使按动kk2_时,led就会由右向左流水显示,一次亮两个,循环4次,结束后会按照按动kk2-之前没有完成的次数继续直到4次。