![[计算机软件及应用]例子讲解_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/7a518bf6-643c-4488-bec8-864b2401b9ab/7a518bf6-643c-4488-bec8-864b2401b9ab1.gif)
![[计算机软件及应用]例子讲解_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/7a518bf6-643c-4488-bec8-864b2401b9ab/7a518bf6-643c-4488-bec8-864b2401b9ab2.gif)
![[计算机软件及应用]例子讲解_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/7a518bf6-643c-4488-bec8-864b2401b9ab/7a518bf6-643c-4488-bec8-864b2401b9ab3.gif)
![[计算机软件及应用]例子讲解_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/7a518bf6-643c-4488-bec8-864b2401b9ab/7a518bf6-643c-4488-bec8-864b2401b9ab4.gif)
![[计算机软件及应用]例子讲解_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/22/7a518bf6-643c-4488-bec8-864b2401b9ab/7a518bf6-643c-4488-bec8-864b2401b9ab5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机软件及应用例子讲解计算机软件及应用例-子-讲-解如右图所示,将如右图所示,将P1口的作口的作为输入位,为输入位, 作为作为输出位。要求利用输出位。要求利用8031将开关所设的数据读入将开关所设的数据读入单片机,并依次通过单片机,并依次通过输出,驱动发输出,驱动发光二极管,以检查光二极管,以检查输入的电平情况输入的电平情况(高电平高电平LED亮亮)。现要。现要求采用中断触发方式求采用中断触发方式, 每每中断一次完成一次操作中断一次完成一次操作。程序如下:程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTER ORG 0030HMAIN:SETB EX0
2、 SETB IT0 SETB EAHERE:SJMP HERE 中断服务子程序:中断服务子程序:(输入、显示)(输入、显示) ORG 0200HINTER:MOV P1,#0F0H MOV A,P1 SWAP A MOV P1,A RETI END如右图所如右图所示的中断电路可实现系示的中断电路可实现系统的故障显示。当系统统的故障显示。当系统的各部分正常工作时,的各部分正常工作时,4个故障源的输入均为个故障源的输入均为低电平,显示灯全不低电平,显示灯全不亮。当有某个部分出现亮。当有某个部分出现故障时,则相应的输入故障时,则相应的输入线由低电平变为高电平线由低电平变为高电平,相应的发光二极管点,
3、相应的发光二极管点亮。亮。程序如下:程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTER ORG 0030HMAIN:SETB EX0 SETB IT0 SETB EAHERE:SJMP HERE 中断服务子程序:中断服务子程序: ORG 0100HINTER:JNB P1.0, L1L1: JNB P1.2, L2L2: JNB P1.4, L3L3: JNB P1.6, L4L4: RETI END某工业监控系统具有温度、压力、某工业监控系统具有温度、压力、pH值等多路监控功能。在值等多路监控功能。在pH值值7时将时将向向CPU申请中断,申请中断,C
4、PU响应后令引脚输出高电平,经驱动使加碱管道响应后令引脚输出高电平,经驱动使加碱管道电磁阀接通电磁阀接通1秒,以调整秒,以调整pH值。值。一、电路及分析:一、电路及分析: 中断请求输中断请求输入相当于入相当于“四输四输入的与或门入的与或门”,外电路上升沿外电路上升沿有效。有效。 用用于查询中断源。于查询中断源。 用用于清除中断请求。于清除中断请求。主程序及中断程序入口部分:主程序及中断程序入口部分: ORG 0000H LJMP MAIN LJMP INTX0 ORG 0030HMAIN:MOV SP,#5FH SETB EX0 SETB IT0 ;下降沿触发下降沿触发 SETB EA SJM
5、P $查询部分:查询部分:INTX0:CLR EA PUSH PSW PUSH A SETB EA JB P1.0, DV1 JB P1.1, DV2 JB P1.2, DV3 JB P1.3, DV4EXIT: CLR EA POP A POP PSW SETB EA RETI各装置的中断服务程序部分各装置的中断服务程序部分:DV1: (装置装置1的中断服务程序的中断服务程序) : LJMP EXITDV2: (装置装置2的中断服务程序的中断服务程序) : LJMP EXITDV4: (装置装置4的中断服务程序的中断服务程序) : LJMP EXIT装置装置3的中断服务程序的中断服务程序:D
6、V3: LCALL DELAY LJMP EXIT延时时间计算:延时时间计算:8+(2+(2+4*249+2)*100 +2)*10+8=1000056S1S延时延时1秒的子程序秒的子程序: (设晶振为(设晶振为12MHz)DELAY:PUSH 30H PUSH 31H PUSH 32H MOV 32H,#10DY1: MOV 31H,#100DY2: MOV 30H,#249LY3: NOP NOP DJNZ 30H,DY3 DJNZ 31H,LY2 DJNZ 32H,LY1 POP 32H POP 31H POP 30H RET应用举例应用举例设定时器设定时器T0选择工作模式选择工作模式0
7、,定时时间为,定时时间为1ms, osc=6MHz。试。试确定确定T0初值,计算最大定时时间初值,计算最大定时时间T。 解:解: (1)求)求T0的初值的初值X由公式:由公式:t=(213-T0初值初值)*机器周期机器周期Tcy t=1ms=1000s 机器周期机器周期Tcy=12/ osc=12/6000000s=2s得得 1000=( 213 -X)*2所以初值所以初值 T0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0H(2)最大定时时间)最大定时时间T 当当T0的初值的初值=0时为最大定时时间时为最大定时时间 T=(213 -0)*2=8192*2
8、s =16384 7692 32商为高商为高8位,位,余数为低余数为低5设设T1以模式以模式0定时,定时时间为定时,定时时间为1ms, osc=6MHz,编程实,编程实现其定时功能。现其定时功能。解解: (1)计算初值(同上,略)计算初值(同上,略) F0HTH0,0CHTL0(2)程序清单)程序清单 ORG 0000HRESET:AJMP MAIN ORG 000BH AJMP IT0P;主程序;主程序 ORG 0100HMAIN: MOV SP,#5FHMOV TL0,#0CHMOV TH0,#0F0HSETB TR0SETB ET0SETB EASJMP $;中断服务程序;中断服务程序
9、ORG 0120HIT0P:MOV TL0,#0CH MOV TH0,#0F0H RETI利用利用T0的工作模式的工作模式0产生产生1ms的定时,编程实现在引脚上输的定时,编程实现在引脚上输出周期为出周期为2ms的方波。设单片机的晶振频率的方波。设单片机的晶振频率osc=12MHz。解:解: 方法:定时方法:定时1ms,对取反,然后继续定时,对取反,然后继续定时(1)设置模式字)设置模式字 TMOD= * 0000B =00000000B=00H (2)计算初值)计算初值由公式:由公式:t=(213-T0初值初值)*机器周期机器周期 t=1ms=1000s,机器周期机器周期Tcy=12/osc
10、=12/1202X000s=1s得得 1000=( 213 -X)*1=(8192-X)*1所以初值所以初值 T0的低的低5位:位:11000B=18HT0的高的高8位:位:11100000B=E0H1ms2ms7192 32商为高商为高8位,位,余数为低余数为低5位位(3)程序清单)程序清单方法一:中断方式方法一:中断方式 ORG 0000HRESET:LJMP MAIN ORG 000BH LJMP CTC0;主程序;主程序 ORG 0030HMAIN: MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB EA SETB ET0
11、SETB TR0 SJMP $;中断服务程序中断服务程序 ORG 0100HCTC0:MOV TL0,#18H MOV TH0,#0E0H RETI方法二:查询方式方法二:查询方式 ORG 0000HSTART:MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB TR0LOOP: JBC TF0,NEXT SJMP LOOPNEXT: MOV TL0,#18H MOV TH0,#0E0H SJMP LOOP可替换为可替换为:LOOP:JNB TF0,$ CLR TF0 MOV TL0,#18H :用定时器用定时器T1产生一个产生一个5
12、0Hz的方波,由输出。使用程序查询方式,的方波,由输出。使用程序查询方式,设设 osc=12MHz。解解: (1)计算初值)计算初值方波周期方波周期T为:为:T=1/50s=0.02s=20ms定时时间为:定时时间为:t=T/2=10ms=10000s 由公式:由公式: t=(216-X)*机器周期机器周期Tcy因因Tcy=1s,得,得10000= (216-X)*1, 10000=65536-XX=55536=D8F0H55536 256商为高商为高8位,位,余数为低余数为低8位位 (2)模式字)模式字TMODTMOD=0001*B=10H (3)源程序)源程序 ORG 0000H MOV
13、TMOD,#10H SETB TR1LP: MOV TH1,#0D8H MOV TL1,#0F0H JNB TF1,$ CLR TF1 SJMP LP当引脚上输入的电平发生负跳变时,从输出一个当引脚上输入的电平发生负跳变时,从输出一个500s的同步脉的同步脉冲,请编程实现该功能。冲,请编程实现该功能。 设设 osc=6MHz。解题思路:解题思路: 先令先令T0以模式以模式2计数,其初值设为计数,其初值设为FFH,当引脚上输入的,当引脚上输入的电平发生负跳变时,计数器加电平发生负跳变时,计数器加1使溢出标志置使溢出标志置1;然后令;然后令T0以模式以模式2定时,使输出一个定时,使输出一个500s
14、的同步负脉冲。的同步负脉冲。解解:1、 T0以模式以模式2计数计数 (1)计数初值)计数初值 X=0FFH (2)模式字)模式字 TMOD=*0110B=06H 2、 T0以模式以模式2定时定时 (1)定时初值)定时初值X计算计算 t=500 s , Tcy=2 s由公式:由公式: t=(28-X)*机器周期机器周期Tcy得得 500=(256-X)*2 X=6 (2)模式字)模式字 TMOD=*0010B=02H 3、程序清单:、程序清单: ORG 0000HSTART:MOV TMOD,#6 ; T0以模式以模式2计数计数 MOV TH0,#0FFH MOV TL0,#0FFH SETB
15、TR0 JNB TF0,$ CLR TF0 CLR TR0 MOV TMOD,#2 ; T0以模式以模式2定时定时 MOV TH0,#06 MOV TL0,#06 SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 SJMP START利用定时器利用定时器T1的模式的模式2对外部信号计数,要求每计满对外部信号计数,要求每计满100次次对端取反。对端取反。解:(解:(1)计算计数初值)计算计数初值X 100=28-X X=256-100=156=9CH (2)模式字)模式字 TMOD=0110*B=60H (3)程序清单)程序清单 ;用中断方式;用中断方式 ORG 0000HM
16、AIN:MOV TMOD,#60H MOV TL1,#156 MOV TH1,#156 MOV IE,#88H SETB TR1 SJMP $;中断服务程序中断服务程序ORG 001BHRETI设某单片机系统中已经使用了两个外部中断源,并置定时器设某单片机系统中已经使用了两个外部中断源,并置定时器T1为模式为模式2,作串行口波特率发生器用。现要求再增加一个,作串行口波特率发生器用。现要求再增加一个外部中断源,并由引脚输出一个外部中断源,并由引脚输出一个5kHz的方波。的方波。 osc=12MHz。解:解:1、确定定时器的工作方式、确定定时器的工作方式 将将T0设置为模式设置为模式3计数,计数,
17、T0的引脚接外部中断源,的引脚接外部中断源,TL0的计的计数初值设为数初值设为FFH,下降沿产生中断;,下降沿产生中断;T0的的TH0为为8位定时器,位定时器,可产生方波,用中断方式;可产生方波,用中断方式;T1设为模式设为模式2定时,作串行口的波定时,作串行口的波特率发生器。特率发生器。2、计算各个初值、计算各个初值 (1)TL0的初值的初值 为为0FFH (2)TH0的初值的初值产生产生5kHz的方波的周期为:的方波的周期为:T=1/5000s=0.2ms=200 s因此因此TH0的定时时间为:的定时时间为:t=T/2=100 s , Tcy=1 s得得 100=(256-X)*Tcy X
18、=256-100=156 TH1=TL1,由波特率值确定,由波特率值确定3、TMOD值:值: 00100111B=27H TCON值:值: 01010101B=55H4、程序清单:、程序清单: (1)中断入口部分:)中断入口部分: ORG 0000HSTART:LJMP MAIN LJMP E0INT ORG 000BH LJMP TL0INT ORG 0013HLJMP E1INTORG 001BHLJMP TH0INT (2)主程序部分:)主程序部分:MAIN:MOV SP,#5FH MOV TMOD,#27H MOV TL0,#0FFH MOV TH0,#156 MOV TH1,#dat
19、a MOV TL1,#data MOV IE,#9FH ;开中断;开中断 :(3)中断处理程序部分:)中断处理程序部分: TL0溢出中断服务程序:溢出中断服务程序:TL0INT:MOV TL0,#0FFH (外部中断处理)(外部中断处理) RETI TH0溢出中断服务程序:溢出中断服务程序:TH0INT:MOV TH0,#156 ERTI (其它外部中断服务程序略)(其它外部中断服务程序略)设某单片机系统的晶振频率为设某单片机系统的晶振频率为6MHz,试编写利用,试编写利用T0产生产生1s定时定时的程序。的程序。解:解: 1、确定定时器、确定定时器T0的工作模式的工作模式 Tcy=2 s模式模
20、式0最长可定时:最长可定时:2模式模式1最长可定时:最长可定时:2模式模式2最长可定时:最长可定时:2s*256=512s 选模式选模式1,每隔,每隔100ms中断一次,中断中断一次,中断10次为次为1s。2、计算初值、计算初值X 100000 s=(65536-X)*2 s X=65536-50000=15536=3CB0H3、实现的方法、实现的方法:(1)计数器法)计数器法;(2)中断循环程序法)中断循环程序法15536 256商为高商为高8位,位,余数为低余数为低8位位4、程序清单:、程序清单:(1)中断入口和主程序部分:)中断入口和主程序部分: ORG 0000HSTART:LJMP
21、MAIN ORH 000BH LJMP SERVE ORG 0030HMAIN:MOV SP,#5FH MOV B,#10 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 ;开运行;开运行 SETB ET0 ;开中断;开中断 SETB EA SJMP $(2)中断服务程序部分:)中断服务程序部分:SERVE: MOV TL0,#0B0H MOV TH0,#3CH DJNZ B,LOOP CLR TR0LOOP:RETI END8031与与8155的连接方法的连接方法P2.7=0P2.0=0P2.7=0P2.0=1P2.1P2.6均取均取1设置
22、设置8155,使用,使用I/O口和定时器:使口和定时器:使A口为基本输入方式,口为基本输入方式,B口口为基本输出方式;定时器作方波发生器,对输入的脉冲进行为基本输出方式;定时器作方波发生器,对输入的脉冲进行24分频。试编程实现之。分频。试编程实现之。 思路:先对定时器赋初值和设定输出波形,向定时器思路:先对定时器赋初值和设定输出波形,向定时器/计数计数器寄存器中写;再设定器寄存器中写;再设定A、B口的工作方式和传输方向,并启口的工作方式和传输方向,并启动定时器工作,向命令寄存器中写。动定时器工作,向命令寄存器中写。 程序段如下:程序段如下:(1)对定时器赋初值和设定输出波形:)对定时器赋初值和
23、设定输出波形: 定时器定时器/计数器寄存器地址:计数器寄存器地址:7F04H、7F05HMOV DPTR,#7F04HMOV A,#24MOVX DPTR,A INC DPTRMOV A,#01000000BMOVX DPTR,A(2)设定)设定A、B口的工作方式并启动定时器工作:口的工作方式并启动定时器工作: 命令寄存器地址:命令寄存器地址:7F00HMOV DPTR,#7F00HMOV A,#11000010BMOVX DPTR,A 8051单片机的时钟振荡频率为,选用定时器单片机的时钟振荡频率为,选用定时器T1工作于模工作于模式式2作为波特率发生器,波特率为作为波特率发生器,波特率为24
24、00b/s。求。求T1的初的初值值X,并编写初始化程序段。,并编写初始化程序段。解:设波特率加倍位解:设波特率加倍位SMOD=0 X=256-11.0592 106 (0+1)/(384(0+1)/(384 2400)2400) =244 =244 =F4H =F4H 初始化程序段:初始化程序段: :MOV TMOD,#20HMOV TH1,#0F4HMOV TL1,#0F4HSETB TR1 :用用8051串行口外接串行口外接CD4049或或74LS164串入串入-并出移位寄存器,并出移位寄存器,扩展扩展8位并行口。位并行口。8位并行口的每位都接一个发光二极管,要位并行口的每位都接一个发光二
25、极管,要求发光二极管从左到右他延迟的轮流显示,并且不断循环。求发光二极管从左到右他延迟的轮流显示,并且不断循环。设发光二极管为共阴极接法,如下图所示。设发光二极管为共阴极接法,如下图所示。 STB为高电平时允许并行输出为高电平时允许并行输出选通选通串入串入并出移位寄存器并出移位寄存器解:采用中断方式发送;逐位输出高电平使二极管轮流发光;解:采用中断方式发送;逐位输出高电平使二极管轮流发光;显示延时通过调用延时子程序实现。显示延时通过调用延时子程序实现。 程序如下:程序如下: 中断服务子程序中断服务子程序SETB P1.0LCALL DELAYCLR TIRR ACLR P1.0MOV SBUF
26、, ARETI 主程序主程序 ORG 0023H LJMP SBR ORG 0030H MOV SCON,#0 SETB ES SETB EA MOV A,#80H CLR P1.0 MOV SBUF,A SJMP $SBR:循环右移循环右移用用8051的串行口以方式的串行口以方式1发送发送ASCII数据块,要求波特率为数据块,要求波特率为1200b/s,进行校验。试编写采用查询方式发送的程序。设,进行校验。试编写采用查询方式发送的程序。设数据在片内数据在片内RAM的的20H3FH单元,单元, osc。解解:(:(1)最高位作校验位,采用奇校验,最高位作校验位,采用奇校验,P最高位最高位 (2
27、)用定时器)用定时器/计数器计数器1以模式以模式2定时,作为波特率定时,作为波特率 发生器;计算初值,由发生器;计算初值,由初值初值X=X= 2N - osc (SMOD+1SMOD+1)/ /(384384 波特率值)波特率值)这里这里 N=8, osc 波特率为波特率为1200b/s, 取取 SMOD=0 PCON=00H得得 初值初值X=232D=0X=232D=0E8H。 (3)TMOD=00100000B=20H (4)SCON=01000000B=40H(5)程序清单:)程序清单: 主程序主程序 MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB
28、 TR1MOV SCON,#40HMOV R0,#20HMOV R7,#32MOV A,R0LCALL SP-OUTJNB P, ERRORINC R0DJNZ R7, LP :串行口发送子程序串行口发送子程序 MOV C,P CPL C MOV ACC.7, C MOV SBUF,A JNB TI, $ CLR TI RETERROR: (略)(略)SP-OUT: P为为0说明发送出的数据中有说明发送出的数据中有偶数个偶数个1,是错误的。,是错误的。LP:用用8051的串行口以方式的串行口以方式1接收带奇偶校验位的数据块(与接收带奇偶校验位的数据块(与上题配合)。试编写采用查询方式的程序,接
29、收的数据上题配合)。试编写采用查询方式的程序,接收的数据放在片内放在片内RAM的的20H3FH单元。单元。 osc。解解:(:(1)最高位为校验位(采用奇校验),应去掉最高位为校验位(采用奇校验),应去掉 (2)用定时器)用定时器/计数器计数器1以模式以模式2定时,作为波特率定时,作为波特率 发生器;计算初值,由发生器;计算初值,由初值初值X=X= 2N - osc (SMOD+1SMOD+1)/ /(384384 波特率值)波特率值)这里这里 N=8, osc 波特率为波特率为1200b/s, 取取 SMOD=0 PCON=00H得得 初值初值X=232D=0X=232D=0E8H。 (3)
30、TMOD=00100000B=20H (4)SCON=01010000B=50H(5)程序清单:)程序清单: 主程序主程序MOV SCON,#50H MOV PCON,#0MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV R0,#20HMOV R7,#32LCALL SP-INJC ERRORMOV R0,AINC R0DJNZ R7, LP :串行口接收子程序串行口接收子程序 JNB RI, $ CLR RI MOV SBUF,A MOV C,P CPL C ANL A,#7FH RETERROR: (略)(略)SP-IN:LP: C为为1说明接收的数据有说明接收的数据有偶数个偶数个1,是错误的(因采用奇校验)。,是错误的(因采用奇校验)。8031串行口按双工方式收发串行口按双工方式收发ASCII字符,最高位用来作奇偶校验字符,最高位用来作奇偶校验位,采用奇校验,要求传送的波特率为位,采用奇校验,要求传送的波特率为1200b/s,用中断方式,用中断方式收发,试编写程序。设发送的数据的首地址为收发,试编写程序。设发送的数据的首地址为20H,接收的数,接收的数据放在从据放在从40H开始的单元。单片机的振荡频率为开始的单元。单片机的振荡频率为 osc=6MHz。解:(解:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋合同尾款协议
- 棋牌室装修工程协议合同
- 收养协议是合同
- 客户样板合同协议
- 协议与合同差别
- 解除劳务合同协议书空白
- 大数据合同协议
- 简单三人合作协议书合同
- 混凝土包工合同协议书
- 如何签下劳动合同协议
- 中国盐业集团有限公司 笔试 内容
- 全过程工程咨询投标方案(技术方案)
- DL∕T 1051-2019 电力技术监督导则
- 关于学生假期(寒暑假)安排的调查问卷
- 2024广东深圳市龙岗区总工会招聘社会化工会工作者及事宜笔试历年典型考题及考点剖析附答案带详解
- 缺血性脑卒中的护理
- 中国历史-Chinese History (中英文)
- 未被列入违法失信名单承诺书
- 2024年专升本考试-专升本考试(机械设计基础)笔试考试历年高频考点试题摘选含答案
- 公司供应商风险管理制度
- 小学六年级上下册语文必背古诗词
评论
0/150
提交评论