【大学课件】单片机原理及应用.ppt

上传人:sccc 文档编号:6098869 上传时间:2023-09-24 格式:PPT 页数:23 大小:919.51KB
返回 下载 相关 举报
【大学课件】单片机原理及应用.ppt_第1页
第1页 / 共23页
【大学课件】单片机原理及应用.ppt_第2页
第2页 / 共23页
【大学课件】单片机原理及应用.ppt_第3页
第3页 / 共23页
【大学课件】单片机原理及应用.ppt_第4页
第4页 / 共23页
【大学课件】单片机原理及应用.ppt_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《【大学课件】单片机原理及应用.ppt》由会员分享,可在线阅读,更多相关《【大学课件】单片机原理及应用.ppt(23页珍藏版)》请在三一办公上搜索。

1、2023/9/24,1,单片机原理及应用,http:/,2023/9/24,2,总结,第一章 51系列第二章 I/O口,CPU,存储器第三章 寻址方式,各类指令的格式、功能 字节数、周期数第四章 子程序,查表程序,分支程序,循环程序,2023/9/24,3,第五章 1、中断TCON、SCON、IE、IP 各中断源的入口地址、请求标志、撤消 中断服务程序 2、定时器/计数器 TCON、TMOD T0、T1的定时、计数初值,启动,溢出 4种工作方式,2023/9/24,4,第六章 1、SCON、PCON 发送、接收的SBUF,指令,完成标志 4种工作方式的帧数据、波特率2、存储器的扩展:地址3、I

2、/O口扩展:81554、LED显示,键盘5、A/D、D/A,2023/9/24,5,指令应用实例,【例1】在程序存储器中有一平方表,从2000H单元开始存放,如图所示,试通过查表指令查找出6的平方。解:采用DPTR作为基址寄存器的查表程序比较简单,查表范围大,也容易理解。只要预先使用一条16位数据传送指令,把表的首地址2000H送入DPTR,然后进行查表就可以了。相应的程序如下:MOV A,#6;设定备查的表项 MOV DPTR,#2000H;设置DPTR为表始址 MOVC A,A+DPTR;将A的平方值查表后送A 如果需要查找其他数的平方,只需要将累加器A的内容(变址)改一下即可。,2023

3、/9/24,6,指令应用实例,【例2】试编程计算5678H1234H的值,结果保存在R6、R5中。解:减数和被减数都是16位二进制数,计算时要先进行低8位的减法,然后再进行高8位的减法,在进行低8位减法时,不需要考虑借位,所以要在减法指令之前将借位标志清0。程序如下:MOV A,#78H;被减数低8位送累加器 CLR C;清进位标志位CY SUBB A,#34H;减去减数 MOV R5,A;保存低8位 MOV A,#56H;被减数高8位送累加器 SUBB A,#12H;减去减数 MOV R6,A;保存高8位,2023/9/24,7,指令应用实例,【例3】拆字程序:在内部RAM 40H单元保存有

4、以压缩BCD码表示的2位十进制数,编程将它们拆开,分别保存在内部RAM的41H、42H单元。解:程序如下:MOV A,40H;压缩BCD码送累加器 ANL A,#0FH;高4位清0,保留低4位 MOV 41H,A;保存低4位BCD码 MOV A,40H;取数据 MOV A,#0F0H;低4位清0,保留高4位 SWAP A;高低位交换 MOV 42H,A;保存高4位BCD码,2023/9/24,8,指令应用实例,【例4】设(SP)=30H,符号地址PROG1指向程序存储器的5678H单元,当前PC值为0123H。从0123H处执行指令“LCALL PROG1”,分析执行后PC、SP的值和相关存储

5、器的内容。解:执行过程为:(PC)+3=0123H+3=0126H。将PC内容压入堆栈:向(SP)+1=31H中压入26H,向(SP)+1=32H中压入01H,(SP)=33H。将PROG1=5678H送入PC,即(PC)=5678H。程序转向以5678H为首地址的子程序执行。最终执行结果是:(PC)=5678H、(SP)=33H、(31H)=26H、(32H)=01H。,2023/9/24,9,指令应用实例,【例5】比较内部RAM中40H、41H两个单元中的数据大小,将大的数送至42H单元。解:程序如下:MOV A,40H;取第一个数 CJNE A,41H,NEQU;比较,不相等转移至NEQ

6、U处 MOV 42H,40H;相等,(40H)42H SJMP TOOFF;完成,转移至结尾退出 NEQU:JC LESS;若CY=1,说明(40H)(41H)转移 MOV 42H,40H;(40H)(41H),(40H)40H SJMP TOOFF;完成,转移至结尾退出 LESS:MOV 42H,41H;(40H)(41H),(41H)40HTOOFF:RET,2023/9/24,10,程序设计实例,【例1】P1口做输出口,控制8盏灯(P1口输出低电平时灯被点亮),编程使灯按以下规律显示:同一时间只有两盏灯点亮,从P1.7、P1.6控制的灯开始,每盏灯闪烁5次,再移向下两盏灯,同样闪烁5次,

7、循环往复,延时时间1s。晶振频率6MHz。解:主程序是双重循环程序,循环移位是外循环,灯闪烁5次是内循环,内循环程序不能与外循环程序交叉。延时1S采用三重循环程序。晶振频率为6MHz时,机器周期为2s,延时程序的延时时间计算方法如下:1+1+(1+(1+1+2)125+2)200+25+22s=1006036s=1.006036s,2023/9/24,11,4.3.2 循环程序设计实例,主程序:,2023/9/24,12,延时子程序:,2023/9/24,13,中断的应用实例,【例1】P1口做输出口,控制八只灯(P1口输出低电平时灯被点亮),利用手控单脉冲信号作为外部中断信号,控制八只灯按一定

8、的规律循环点亮。解:手控单脉冲信号作为外部中断信号由INT0(P3.2)管脚输入,设置中断允许寄存器IE中的EA、EX0位为1;只有一个中断源可不设置优先级别;中断触发方式设为边沿触发,控制位IT0应设置为1。,2023/9/24,14,参考程序:,2023/9/24,15,T及应用实例,【例2】在P1.0输出周期为1 ms(频率1kHz)的方波,采用定时器1方式0设计程序,晶振频率为12MHz。解:根据题意,只要使P1.0每隔500s取反一次即可得到周期1 ms的方波,因而T1的定时时间为500s。用定时器1方式0时,定时器/计数器方式寄存器TMOD高4位中的M1M0应取00;可设定为软件启

9、动定时器,故GATE取0;因为用定时功能,C/T取0;定时器方式寄存器TMOD低4位为无关位,一般都取0,所以TMOD应为00H。晶振频率为12MHz,T机=12/fosc=12/(12106)=1s 定时初值 X=213-T/T机=213-500/1=8192-500=7692=1E0CH=1111000001100B 因TL1的高3位未用,对计算出的定时初值X要进行修正,即在低5位前插入3个0,修正后的定时初值 X=1111000000001100B=F00CH,2023/9/24,16,6.3.2 方式0及应用实例,参考程序:,2023/9/24,17,串行口应用举例,【例3】设甲乙机以

10、串行方式1进行数据传送,fosc=11.0592MHz,波特率为1200b/s。甲机发送的16个数据存在内RAM 40H4FH单元中,乙机接收后存在内RAM 50H为首地址的区域中。,T1初值=256-=232=E8H,32,121200,解:串行方式1波特率取决于T1溢出率(设SMOD=0),计算T1定时初值:,11059200,20,2023/9/24,18,甲机发送子程序:,MOV TMOD,#20H;置T1定时器工作方式2MOV TL1,#0E8H;置T1计数初值MOV TH1,#0E8H;置T1计数重装值CLR ET1;禁止T1中断SETB TR1;T1启动MOV SCON,#40H

11、;置串行方式1,禁止接收MOV PCON,#00H;置SMOD=0(SMOD不能位操作)CLR ES;禁止串行中断MOV R0,#40H;置发送数据区首地址MOV R2,#16;置发送数据长度MOVA,R0;读一个数据MOVSBUF,A;发送JNBTI,$;等待一帧数据发送完毕CLRTI;清发送中断标志INCR0;指向下一字节单元DJNZR2,TRSA;判16个数据发完否?未完继续RET;,TXDA:,TRSA:,2023/9/24,19,MOV TMOD,#20H;置T1定时器工作方式2MOV TL1,#0E8H;置T1计数初值MOV TH1,#0E8H;置T1计数重装值CLR ET1;禁止

12、T1中断SETB TR1;T1启动MOV SCON,#40H;置串行方式1,禁止接收MOV PCON,#00H;置SMOD=0(SMOD不能位操作)CLR ES;禁止串行中断MOV R0,#50H;置接收数据区首地址MOV R2,#16;置接收数据长度SETB REN;启动接收JNB RI,$;等待一帧数据接收完毕CLR RI;清接收中断标志MOV A,SBUF;读接收数据MOV R0,A;存接收数据INC R0;指向下一数据存储单元DJNZ R2,RDSB;判16个数据接收完否?未完继续RET;,乙机接收子程序:,RXDB:,RDSB:,2023/9/24,20,线选法扩展二片2K容量,61

13、16,一片4K容量,27162716:0000H07FFH6116(1):0000H07FFH6116(2):0800H0FFFH,2023/9/24,21,MCS-51单片机与8155的接口【例8-4】试设计一个8031单片机与并行接口芯片8155的接口电路,并对8155进行初始化编程:让8155的PA口、PB口工作在基本输入/输出方式,其中,A口为输出,B口为输入,对输入脉冲进行32分频,定时器作为脉冲发生器,输出连续脉冲。对8155I/O口地址分配如下:命令/状态寄存器的地址:7F00HPA口的地址:7F01HPB口的地址:7F02HPC口的地址:7F03H定时器低8位的地址:7F04H定时器高8位的地址:7F05H。8031单片机与并行接口8155的接口电路如图所示。,2023/9/24,22,2023/9/24,23,8155初始化参考程序如下:MOVDPTR,#7F04HMOVA,#20H;对计数器的低8位赋初值MOVXDPTR,AINCDPTRMOVA,#C0H;设定定时器为连续脉冲输出MOVXDPTR,A;装入定时器高8位MOVDPTR,#7F00HMOVA,#0C1H;设定命令控制字,并启动定时器MOVXDPTR,A,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号