LOOP: MOV R7,#10 ;循环次数,10次 MOV R6,#0 INCC: MOV 30H,R6 LCALL DELAY INC R6 MOV R0,#BUFFER LCALL Display8 DJNZ R7,INCC
AJMP LOOP
END 八、思考题
1、如何实现8个LED数码管循环显示程序。 2、不使用8279,编程实现数码管的显示功能。
-14-
实验六 电子钟(定时器、中断综合实验)
一、实验目的
熟悉80C51中CPU的定时器、中断系统编程方法,了解定时器的应用、实时程序的设计和调试技巧。 二、实验内容
编写一个时钟程序,使用定时器产生一个50ms的定时中断,对定时中断计数,通过8279将时、分、秒显示在数码管上。 三、程序框图
开始初始化堆栈给时钟单元赋初值使用定时器方式一,相关寄存器赋初值开中断,开定时器调显示秒单元=60?刷新标志=1?Y清0刷新标志主程序中断处理NY秒单元复位0分单元+1中断返回中断开始恢复定时器初值50ms单元+1NN时单元=24?Y时单元复位0N1→刷新显示标志N分单元=60?Y分单元复位0时单元+150ms单元=20?Y50ms单元复位0秒单元+1
四、实验步骤
1、连线说明: E5区 :CLK E5区 :CS E5区 :A0 E5区 :A、B、C、D 2、时间显示在数码管上 五、程序清单 ms50 DATA sec DATA
—— B2区:2M —— A3区:CS5 —— A3区:A0 —— G5区:A、B、C、D 31H
32H
-15-
;存放多少个50ms ;秒
min DATA 33H ;分 hour DATA 34H ;时 buffer DATA 35H ;显示缓冲区 EXTRN CODE(Display8) ORG LJMP ORG LJMP ORG STAR: MOV MOV MOV MOV MOV MOV MOV MOV MOV SETB STAR1: LCALL JNB CLR SJMP ;中断服务程序 INT_Timer0: MOV MOV PUSH MOV INC CJNE MOV INC INC CJNE MOV INC INC CJNE
0000H STAR 000BH ;定时器T0中断处理入口地址 INT_Timer0 0100H SP,#60H ;堆栈 ms50,A ;清零ms50 hour,#12 ;设定初值:12:59:50 min,#59 sec,#50 TH0,#60 ;定时中断计数器初值 TL0,#176 ;定时50ms TMOD,#1 ;定时器0:方式一 IE,#82H ;允许定时器0中断 TR0 ;开定时器T0 Display ;调用显示 F0,$ F0 STAR1 ;需要重新显示时间 TL0,#176-5 TH0,#60 01H R1,#ms50 @R1 ;50ms单元加1 @R1,#20,ExitInt @R1,#0 ;恢复初值 R1 @R1 ;秒加1 @R1,#60,ExitInt1 @R1,#0 R1 @R1 ;分加1 @R1,#60,ExitInt1
-16-
MOV @R1,#0 INC R1 INC @R1 ;时加1 CJNE @R1,#24,ExitInt1 MOV @R1,#0 ExitInt1: SETB F0 ExitInt: POP 01H RETI HexToBCD: MOV B,#10 DIV AB MOV @R0,B INC R0 MOV @R0,A INC R0 RET Display: MOV R0,#buffer MOV A,sec ACALL HexToBCD MOV @R0,#10H ;第三位不显示 INC R0 MOV A,min ACALL HexToBCD MOV @R0,#10H ;第六位不显示 INC R0 MOV A,hour ACALL HexToBCD MOV R0,#buffer LCALL Display8 RET END 六、思考题
1、定时器0初始化时,为什么设置TL0为176,TH0为60? 2、电子钟走时精度与哪些有关系?中断程序中给TL0赋值为什么与初始化程序中不一样?
3、使用定时器方式二,重新编写该程序。
4、如何利用定时、中断实现交通灯的控制功能?
-17-
123实验七 双机通讯实验 一、实验目的与要求 1、了解单片机串行口的内部结构、工作原理;使用串行口方式二进行两个单片机之间的串行通信。 2、认真预习,做好实验前的准备工作,填写实验报告。 二、实验设备 STAR ES598PCI实验仪两套、PC机两台 三、实验内容 1、编写程序:A机向B机发送一个字节的数据,B机接收到后,将该数据显示在B机P1口的发光二极管上,再将该数据发送给A机,A机接收到B机发回的数据后,显示在A机P1口的发光二极管上。 2、按图连线,运行程序,观察实验结果,掌握8250的各项功能及编程方法。 四、实验原理图 123456785105105105105105105105109P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1GND89C52VccP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.04039383736353433323130292827262524232221R111DS35DS36L1L2五、实验步骤 1、连线说明: ①A、B机实验仪上均连线: A3区:JP51 A机 A3区:RXD A3区:TXD C1区:GND ②A机与B机交叉连线: —— B机 —— —— A3区:TXD A3区:RXD C1区:GND -18- R112DS37L3R113DS38L4R114DS39L5—— G6区:JP65 R115DS40L6R116DS41L7R117DS42L8VCCR1181011121314151617181920