1、主程序的功能: LDE灯“全亮”、“全灭”交替进行 (状态 2);Int0 中断服务程序功能: 2个相邻的 LED灯被点亮且循环左移( 状态 0);Int1 中断服务程序功能: 1个LED灯被点亮且循环右移 - (状态 1);【注意】:实验仪上的 LED灯物理位置最左侧为 d0;最右侧为 d7。1在主程序中利用 CPL P3.3 的指令驱动其电平不断地转换(由逻辑笔电路做 程序状态监视)。2在中断服务程序中将 P3.3 置位( P3.3=1),实现对计数器“加 1 ”并(通过 P1口)显示的功能。3中断结束后回到主程序,程序继续对 P3.3 的电平不断取反。三、实验电路图+5V限流电阻81KM
2、CS-51P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P3.2LED8LED7LED6LED5LED4LED3LED2P3.3图 1 :实验电路连接示意图四、实验流程图INT0入口P3.2 置 1调用延时子程序计数器加一并显示P3.2=0?RETI五、程序清单ORG 0000HLJMP STARTORG 0003HLJMP INT_0ORG 0013HLJMP INT_1ORG 0100H ;主程序START: MOV SP,#60HMOV IE,#85HMOVIP,#04HTCON,#05HA,#00HLP1:M OVP0,ALCALLDELAYCPLASJMPLP1IN
3、T_0: PUSH PSW ;中断 T0 入口PUSHACCA,#3FHLP2:RRSETBJNBP3.2,LP2POPPSWINT_1:中断 T1 入口A,#0FEHLP3:RLP3.3,LP3LCALL DELAYPOP ACCDELAY: PUSH 02H03HR2,#00HDL1: MOV R3,#00HDJNZR3,$R2,DL102HRETEND六、实验结果与分析LED灯按程序设计的规则亮灭,可调至 3 个状态,两个中断分高低优先级,实 验成功。七、实验体会和建议此次实验学会了中断的编程方式和软件去抖的原理。八、主要仪器设备名称型号备注实验四 定时/ 计数器的编程实验(蜂鸣器的驱动
4、)1通过对 T1 的编程,学习、掌握定时器的初值计算、方式及模式设定等初始 化方法。2学习采用查询和中断两种方式的编程技术。3掌握秒脉冲的设计方法,为后续实验打好基础。要求:分别利用 T0、T1实现 1秒钟发声( 1500KHZ)操作,其中:1 一个定时器控制蜂鸣器的发生频率( 1500KHZ),使用查询法编程;2 另一个定时器做 1秒钟定时( 50mS20), 使用中断法编程。二、实验算法1首先选择一个定时器编程、调试 1500KHZ的定时周期并通过端口驱动蜂鸣器 发声;2编制一个 1 秒钟定时程序; 3将两者综合起来,实现持续一秒钟的发声持续, 1 秒钟后停止发声。【提示】:可以利用控制发
5、声( 1500HZ)定时器 TRx的置位或清零控制定时器的 工作状态,因而决定蜂鸣器是否发声。 开始发声时, TRx置一,驱动蜂鸣器发声; 1 秒钟到后清零 TRx 是蜂鸣器停止发声。图 2 :实验电路T1中断入口重置时间初值20.0H=0? P1.1 取反主程序入口设 T0 T1 工作方式设中断允许位设 T0 T1 定时初值计数器 R1赋值 20T0中断入口 重置时间初值 R1-1R1 R1=0? 计数器 R1 赋值 20 CPL A MOV P1,A启动定时器 T0 T1 RET1CLR A 开中断等待中断ORG0000HLJMPSTART000BHINT_T0001BHINT_T10100H ;TMOD,#11H ;方式 1TL1,#0CDHTH1,#0FEHTL0,#0FCHTH0,#4BHR1,#20TR1TR0IE,#8AH$INT_T0:T0 中断入口R1,EXITCLR20H.0EXIT: POP PSWINT_T1:T1 中断入口MOV TL1,#0CDHMOV TH1,#0FEH20H.0,NEXTNEXT:启动程序后,蜂鸣器按所设定的 1 秒发声。此次实验学会了如何通过编程的方式定时使蜂鸣器发声,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1