版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021-10-201单片机原理及应用http:/ 51系列v第二章 i/o口,cpu,存储器v第三章 寻址方式,各类指令的格式、功能 字节数、周期数v第四章 子程序,查表程序,分支程序,循环程序中南林业科技大学涉外学院单片机原理及应用2021-10-203v第五章 1、中断tcon、scon、ie、ip 各中断源的入口地址、请求标志、撤消 中断服务程序 2、定时器/计数器 tcon、tmod t0、t1的定时、计数初值,启动,溢出 4种工作方式中南林业科技大学涉外学院单片机原理及应用2021-10-204v第六章 1、 scon、pcon 发送、接收的sbuf,指令,完成标志 4种工作方式的
2、帧数据、波特率2、存储器的扩展:地址3、i/o口扩展:81554、led显示,键盘5、a/d、d/a中南林业科技大学涉外学院单片机原理及应用2021-10-205【例【例1】 在程序存储器中有一平方表,从在程序存储器中有一平方表,从2000h单单元开始存放,如图所示,试通过查表指令查找元开始存放,如图所示,试通过查表指令查找出出6的平方。的平方。解:采用解:采用dptr作为基址寄存器的查表程序比较简作为基址寄存器的查表程序比较简单,查表范围大,也容易理解。只要预先使用单,查表范围大,也容易理解。只要预先使用一条一条16位数据传送指令,把表的首地址位数据传送指令,把表的首地址2000h送入送入d
3、ptr,然后进行查表就可以了。,然后进行查表就可以了。 相应的程序如下:相应的程序如下: mov a,#6 ;设定备查的表项设定备查的表项 mov dptr,#2000h ;设置设置dptr为表始址为表始址 movc a,a+dptr ;将将a的平方值查表后送的平方值查表后送a 如果需要查找其他数的平方,只需要将累加器如果需要查找其他数的平方,只需要将累加器a的内容的内容(变址变址)改一下即可。改一下即可。 2000h2001h2002h2003h2004h2005h2006h2007h2008h2009h0149162536496481中南林业科技大学涉外学院单片机原理及应用2021-10-
4、206【例【例2】 试编程计算试编程计算5678h1234h的值,结果保存在的值,结果保存在r6、r5中。中。解:减数和被减数都是解:减数和被减数都是16位二进制数,计算时要先进行低位二进制数,计算时要先进行低8位的减法,然后再进行高位的减法,然后再进行高8位的减法,在进行低位的减法,在进行低8位减位减法时,不需要考虑借位,所以要在减法指令之前将借位法时,不需要考虑借位,所以要在减法指令之前将借位标志清标志清0。程序如下:。程序如下: mov a,#78h;被减数低被减数低8位送累加器位送累加器 clr c;清进位标志位清进位标志位cy subb a,#34h;减去减数减去减数 mov r5,
5、a;保存低保存低8位位 mov a,#56h;被减数高被减数高8位送累加器位送累加器 subb a,#12h;减去减数减去减数 mov r6,a;保存高保存高8位位中南林业科技大学涉外学院单片机原理及应用2021-10-207【例【例3】 拆字程序:在内部拆字程序:在内部ram 40h单元保存有以压缩单元保存有以压缩bcd码码表示的表示的2位十进制数,编程将它们拆开,分别保存在内部位十进制数,编程将它们拆开,分别保存在内部ram的的41h、42h单元。单元。 解:程序如下:解:程序如下: mov a,40h;压缩压缩bcd码送累加器码送累加器 anl a,#0fh;高高4位清位清0,保留低保留
6、低4位位 mov 41h,a;保存低保存低4位位bcd码码 mov a,40h;取数据取数据 mov a,#0f0h;低低4位清位清0,保留高保留高4位位 swap a;高低位交换高低位交换 mov 42h,a;保存高保存高4位位bcd码码中南林业科技大学涉外学院单片机原理及应用2021-10-208【例【例4】 设设(sp)=30h,符号地址,符号地址prog1指向程序存储器的指向程序存储器的5678h单元,当前单元,当前pc值为值为0123h。从。从0123h处执行指令处执行指令“lcall prog1”,分析执行后,分析执行后pc、sp的值和相关存储的值和相关存储器的内容。器的内容。解:
7、执行过程为:解:执行过程为: (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。中南林业科技大学涉外学院单片机原理及应用2021-10-209【例【例5】 比较内部比较内部ram中中40h、41h两个单元
8、中的数据大小,两个单元中的数据大小,将大的数送至将大的数送至42h单元。单元。解:程序如下:解:程序如下: mov a,40h ;取第一个数取第一个数 cjne a,41h,nequ;比较比较,不相等转移至不相等转移至nequ处处 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;(40
9、h)(41h),(41h)40htooff: ret中南林业科技大学涉外学院单片机原理及应用2021-10-2010【例【例1】 p1口做输出口,控制口做输出口,控制8盏灯盏灯(p1口输出低电平时灯被点口输出低电平时灯被点亮亮),编程使灯按以下规律显示:同一时间只有两盏灯点亮,编程使灯按以下规律显示:同一时间只有两盏灯点亮,从从p1.7、p1.6控制的灯开始,每盏灯闪烁控制的灯开始,每盏灯闪烁5次,再移向下次,再移向下两盏灯,同样闪烁两盏灯,同样闪烁5次,循环往复,延时时间次,循环往复,延时时间1s。晶振频。晶振频率率6mhz。 解:主程序是双重循环程序,循环移位是外循环,灯闪烁解:主程序是双
10、重循环程序,循环移位是外循环,灯闪烁5次次是内循环,内循环程序不能与外循环程序交叉。是内循环,内循环程序不能与外循环程序交叉。 延时延时1s采用三重循环程序。晶振频率为采用三重循环程序。晶振频率为6mhz时,机器周时,机器周期为期为2 s,延时程序的延时时间计算方法如下:,延时程序的延时时间计算方法如下: 1+1+(1+(1+1+2)1+1+(1+(1+1+2)125+2)125+2)200+2200+25+25+22 2 s s =1006036 =1006036 s=1.006036ss=1.006036s 中南林业科技大学涉外学院单片机原理及应用2021-10-2011地址地址0000h
11、0030h0032h0034h0036h0039h机器码机器码02 00 3074 5f79 05f5 9012 01 0075 90 ff12 01 00程序程序 org 0000h ljmp main org 0030hmain: mov a,#5fh lp1: mov r1,#5 lp2: mov p1,a lcall delay mov p1,#0ffh lcall delay注释注释;灯点亮初始状态灯点亮初始状态;循环闪烁次数循环闪烁次数;延时延时1s;延时延时1s主程序:中南林业科技大学涉外学院单片机原理及应用2021-10-2012地址地址0100h0102h0104h0106h
12、0107h0108h机器码机器码7b 057c c87d 7d0000dd fedc f9程序程序 org 0100hdelay: mov r3,#5del3: mov r4,#200del2: mov r5,#125del1: nop nop djnz r5,del1 djnz r4,del2注释注释;延时延时1s的循环次数的循环次数;延时延时200ms的循环次数的循环次数;延时延时1ms的循环次数的循环次数延时子程序:中南林业科技大学涉外学院单片机原理及应用2021-10-2013【例【例1】 p1口做输出口,控制八只灯口做输出口,控制八只灯(p1口输出低电口输出低电平时灯被点亮平时灯被点
13、亮),利用手控单脉冲信号作为外部中,利用手控单脉冲信号作为外部中断信号,控制八只灯按一定的规律循环点亮。断信号,控制八只灯按一定的规律循环点亮。解:手控单脉冲信号作为外部中断信号由解:手控单脉冲信号作为外部中断信号由int0(p3.2)管脚输入,设置中断允许寄存器管脚输入,设置中断允许寄存器ie中的中的ea、ex0位为位为1;只有一个中断源可不设置优先级别;中断;只有一个中断源可不设置优先级别;中断触发方式设为边沿触发,控制位触发方式设为边沿触发,控制位it0应设置为应设置为1。 中南林业科技大学涉外学院单片机原理及应用2021-10-20140000h0003h0050h0052h0054h
14、0056h0058h02 00 5002 01 00d2 afd2 a8d2 8874 fef5 90 org 0000h ljmp main org 0003h ljmp int org 0050hmain: setb ea setb ex0 setb it0 mov a,#0feh mov p1,a;程序入口程序入口;转向主程序转向主程序;外部中断外部中断0的入口地址的入口地址;转向中断服务程序转向中断服务程序;中断触发方式为边沿触中断触发方式为边沿触发发参考程序:中南林业科技大学涉外学院单片机原理及应用2021-10-2015【例【例2】 在在p1.0输出周期为输出周期为1 ms(频率频
15、率1khz)的方波,采用定时器的方波,采用定时器1方式方式0设计程序,晶振频率为设计程序,晶振频率为12mhz。解:根据题意,只要使解:根据题意,只要使p1.0每隔每隔500 s取反一次即可得到周期取反一次即可得到周期1 ms的方波,因而的方波,因而t1的定时时间为的定时时间为500 s。 用定时器用定时器1方式方式0时,定时器时,定时器/计数器方式寄存器计数器方式寄存器tmod高高4位中位中的的m1m0应取应取00;可设定为软件启动定时器,故;可设定为软件启动定时器,故gate取取0;因;因为用定时功能,为用定时功能,c/t取取0;定时器方式寄存器;定时器方式寄存器tmod低低4位为无位为无
16、关位,一般都取关位,一般都取0,所以,所以tmod应为应为00h。 晶振频率为晶振频率为12mhz,t机机=12/fosc=12/(12 106)=1 s 定时初值定时初值 x=213-t/t机机=213-500/1=8192-500=7692 =1e0ch=1111000001100b 因因tl1的高的高3位未用,对计算出的定时初值位未用,对计算出的定时初值x要进行修正,即在要进行修正,即在低低5位前插入位前插入3个个0,修正后的定时初值,修正后的定时初值 x=1111000000001100b=f00ch 中南林业科技大学涉外学院单片机原理及应用2021-10-2016地址地址0000h0
17、050h0052h0055h0058h005bh005dh0060h0062h机器码机器码02 00 50d2 9075 89 0075 8d f175 8b 0cd2 8e10 8f 0280 fb75 8d f1程序程序 org 0000h ljmp main org 0050hmain: setb p1.0 mov tmod,#00h mov th1,#0f0h mov tl1,#0ch setb tr1 lp1: jbc tf1,lp2 sjmp lp1 lp2: mov th1,#0f0h注释注释;置置p1.0初始状态初始状态;置定时器置定时器1为工作方式为工作方式0;置置500 s
18、定时初值定时初值;启动定时器启动定时器1;查询计数溢出查询计数溢出;未到未到500 s继续计数继续计数;重新置重新置500 s定时初值定时初值参考程序:中南林业科技大学涉外学院单片机原理及应用2021-10-2017串行口应用举例串行口应用举例【例【例3 3】设甲乙机以串行方式】设甲乙机以串行方式1 1进行数据传送,进行数据传送,fosc=11.0592mhzfosc=11.0592mhz,波特率为,波特率为1200b/s1200b/s。甲机发送的。甲机发送的1616个数据存在内个数据存在内ram 40hram 40h4fh4fh单元中,乙机接收后单元中,乙机接收后存在内存在内ram 50hr
19、am 50h为首地址的区域中为首地址的区域中。 t1t1初值初值 = 256 - = 256 - = 232 = e8h = 232 = e8h3232121212001200解:解: 串行方式串行方式1 1波特率取决于波特率取决于t1t1溢出率溢出率( (设设smod=0),smod=0),计算计算t1t1定时初值:定时初值:11059200110592002 20 0中南林业科技大学涉外学院单片机原理及应用2021-10-2018甲机发送子程序:甲机发送子程序: mov tmod,#20hmov tmod,#20h; ;置置t1t1定时器工作方式定时器工作方式2 2mov tl1,#0e8
20、hmov tl1,#0e8h; ;置置t1t1计数初值计数初值mov th1,#0e8hmov th1,#0e8h; ;置置t1t1计数重装值计数重装值clr et1clr et1; ;禁止禁止t1t1中断中断setb tr1setb tr1;t1;t1启动启动mov scon,#40hmov scon,#40h; ;置串行方式置串行方式1,1,禁止接收禁止接收mov pcon,#00hmov pcon,#00h; ;置置smod=0(smodsmod=0(smod不能位操作不能位操作) ) clr esclr es; ;禁止串行中断禁止串行中断mov r0,#40hmov r0,#40h;
21、;置发送数据区首地址置发送数据区首地址mov r2,#16mov r2,#16; ;置发送数据长度置发送数据长度movmova,r0a,r0; ;读一个数据读一个数据movmovsbuf,asbuf,a; ;发送发送jnbjnbti,$ti,$; ;等待一帧数据发送完毕等待一帧数据发送完毕clrclrtiti; ;清发送中断标志清发送中断标志incincr0r0; ;指向下一字节单元指向下一字节单元djnzdjnzr2,trsar2,trsa; ;判判1616个数据发完否个数据发完否? ?未完继续未完继续ret ret ; ;txda:txda:trsa:trsa:中南林业科技大学涉外学院单片机原理及应用2021-10-2019mov tmod,#20hmov tmod,#20h; ;置置t1t1定时器工作方式定时器工作方式2 2mov tl1,#0e8hmov tl1,#0e8h; ;置置t1t1计数初值计数初值mov th1,#0e8hmov th1,#0e8h; ;置置t1t1计数重装值计数重装值clr et1clr et1; ;禁止禁止t1t1中断中断setb tr1setb tr1;t1;t1启动启动mov scon,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 插画怎么延展课程设计
- 禁止使用童工和未成年工管理制度
- 照明系统通电试运行调试方案
- 产品销售代理服务合同模板
- 临床医学教师聘用书
- 电子商务平台技术支持服务合同
- 个人自建房屋合同
- 电子商务平台客户关系管理合同
- 临床血气分析诊断思路
- 人力资源劳务合同
- 江苏省徐州市2023-2024学年八年级上学期期中英语试题
- 牙体牙髓病学-关于牙齿的故事智慧树知到答案2024年南昌大学
- xxx人民医院检查检验结果互认专项检查暨诊疗行为规范自查报告
- 【导学案】在奉献中成就精彩人生 2024-2025学年七年级道德与法治上册(统编版2024)
- 期中试卷(1-4单元)(试题)-2024-2025学年六年级上册数学人教版
- 国企投资岗笔试题目
- 七年级上册语文统编版5 《秋天的怀念》活动式公开课一等奖创新教学设计(表格式)
- 年产120万件汽车铝合金轮毂建设项目可行性研究报告模板-立项拿地
- 2023-2024学年北京市东城区广渠门中学八年级(上)期中数学试卷【含解析】
- 高中生物学选择性必修一测试卷及答案解析
- 智能安防监控系统维护手册
评论
0/150
提交评论