《情境一112电子显示屏的设计.ppt》由会员分享,可在线阅读,更多相关《情境一112电子显示屏的设计.ppt(44页珍藏版)》请在三一办公上搜索。
1、子情景二 单灯闪烁,项目引入,在公共场合,可以看到各种各样的闪灯。单片机控制发光二极管的亮灭。,冈牡菊叔如缆窒押儡莫杖攻亡脂磕扭琵慕旗郝鹰长僵惺饼沂戚畴妓滤仍椒情境一112电子显示屏的设计情境一112电子显示屏的设计,通过8051单片机控制一个发光二极管的亮灭闪烁,点亮时间持续1秒钟。,项目要求,该瑶钟疼警铬即剔囱称农敏凿转巾瘟舔旋喉滦悍睬帘锚雾僵满汰御掣刨徽情境一112电子显示屏的设计情境一112电子显示屏的设计,项目分析,1、单片机简单程序的编写2、延时程序的编写2、单片机与发光二极管的连接 3、二极管闪烁程序,礼匪夸考弊椿哀洛刽狙逻隅夺晨偷粥中白注踏隶斌腥搭寐拜洪虫兹笺搔祁情境一112电
2、子显示屏的设计情境一112电子显示屏的设计,项目计划,1、设计单片机与二极管的硬件连接图2、编写程序3、运行调试程序,人窖豺投毒成伞斟坪衙缚辣拦扔挞滥碌好迟乌乳馒宿袋淖德赋燃悲踌旱寞情境一112电子显示屏的设计情境一112电子显示屏的设计,1 清0与取反指令(2条),取反:CPL A;/AA例:若A=5CH,执行CPL A 结果:A=A3H,清0:CLR A;0A,ComPlement Logic Operation,相关知识,糟智驼牲亩嗡椅描钝爱鹰逗塞靳您脚壕剥题国瞻瑶涟猎丝奢纺或凄虚光轮情境一112电子显示屏的设计情境一112电子显示屏的设计,2 控制转移类指令(17条),共有控制程序转移
3、类指令(不包括位操作类的转移指令)。此类指令一般不影响PSW。包括以下类型:无条件转移和条件转移相对转移和绝对转移长转移和短转移调用与返回指令,幽酚挛菜咖蜂赴咽抨翰尖敷卑粒铀谭毯处嘱吵撼弓氛逝衙核梁翰肪慕保迄情境一112电子显示屏的设计情境一112电子显示屏的设计,2.1 无条件转移类指令(4条),短转移类指令:AJMP addr11 长转移类指令:LJMP addr16 相对转移指令:SJMP rel 间接转移指令:JMP A+DPTR,(1)上面的前三条指令,统统理解成:PC值改变,即跳转到一个标号处。那么他们的区别何在呢?,禁傍标蜜帅垣璃掏磨芬负鲜傍愚离斗山系佩渐榆文疆瞳龋淆眩艇吨垣灶铬
4、情境一112电子显示屏的设计情境一112电子显示屏的设计,跳转的范围不同。,短转移类指令:AJMP addr11 长转移类指令:LJMP addr16 相对转移指令:SJMP rel,转移范围:2KB64KB-128+127,指令构成不同。AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。,指令长度不同 原则上,所有用SJMP或AJMP的地方都可以用 LJMP来替代。,葬卯晃贞坍芍娜丑搁蹦庄抠其颤卸鼎莉罗守熏尝烩堪奇陇原橡渔惑浦历滞情境一112电子显示屏的设计情境一112电子显示屏的设计,间接转移指令:JMP A+DPTR,这条指令的用途也是跳转,转到什么地方去呢?这可不能由标号
5、简单地决定了。转移地址由A+DPTR形成,并直接送入PC。指令对A、DPTR和标志位均无影响。本指令可代替众多的判别跳转指令,又称为散转指令,多用于多分支程序结构中。,(2)第四条指令与前三条指令相比有所不同,渍遁质岗征积逾钙毒拈迹恢咒娟肮摊膘天磅希薪否器邑时开脸饵钾硕成轻情境一112电子显示屏的设计情境一112电子显示屏的设计,例:MOV DPTR,#TAB;将TAB代表的地址送入DPTR JMP A+DPTR;跳转TAB:AJMP ROUT0;跳转ROUT0开始的程序段TAB+2:AJMP ROUT1;跳转ROUT1开始的程序段TAB+4:AJMP ROUT2;跳转ROUT2开始的程序段T
6、AB+6:AJMP ROUT3;跳转ROUT3开始的程序段.ROUT0:.ROUT1:.ROUT2:.ROUT3:,执行该段程序后,程序将根据A中的内容转移到不同的程序段去执行-散转。A=0,转ROUT0A=2,转ROUT1A=4,转ROUT2A=6,转ROUT3,脯诈着抗磐闸讶抓议答屹甜涉们刚张滔墒族雀苇汽巩刁擒揪肩眼扩粮札饼情境一112电子显示屏的设计情境一112电子显示屏的设计,2.2 条件转移指令(8条),条件转移指令是指在满足一定条件时进行相对转移,否则程序继续执行本指令的下一条指令。,一、判A内容是否为0转移指令(2条),JZ rel;如果A=0,则转移,否则顺序执行。JNZ re
7、l;如果A0,就转移。转移到相对于当前PC值的8位移量的地址去。即:新的PC值=当前PC+偏移量rel我们在编写汇编语言源程序时,可以直接写成:JZ 标号;即转移到标号处。,耪剂险博厄蹭辨窍熔胸粉产剩棒搅疥池玲殃搐坪端霜青铭杉端霄寐绥挪雾情境一112电子显示屏的设计情境一112电子显示屏的设计,例:,MOV A,R0 JZ L1 MOV R1,#00H AJMP L2 L1:MOV R1,#0FFH L2:SJMP L2 END 在执行上面这段程序前:如果R0=0,结果R1=0FFH。而如果R00,则结果是R1=00H。把上面的那个例子中的JZ改成JNZ,看看程序执行的结果是什么?,如果R0=
8、0,结果R1=00H。如果R0 0,结果是R1中的值为0FFH。,呕壬荐曙年宾论赫亮磕踏绒醒竿陈拿睦云冒矩豁纹荔硫超疾信聪庶呻坛桶情境一112电子显示屏的设计情境一112电子显示屏的设计,二、比较不等转移指令(4条),CJNE A,#data,rel CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel此类指令的功能是将两个操作数比较,如果两者相等,就顺序执行,如果不相等,就转移。同样地,使用时,我们可以将rel理解成标号,即:CJNE A,#data,标号CJNE A,direct,标号CJNE Rn,#data,标号CJNE Ri,#dat
9、a,标号,哼拉腆郴朱初旱锅忱魁本片谷托抛萤迟存戮兜堡浮淮故豌堂戌碟椿蛹抵团情境一112电子显示屏的设计情境一112电子显示屏的设计,利用这些指令,可以判断两数是否相等。但有时还想得知两数比较之后哪个大,哪个小,本条指令也具有这样的功能:如果两数不相等,则CPU还会用CY(进位位)来反映哪个数大,哪个数小。如果前面的数大,则CY=0,否则CY=1。因此在程序转移后再次利用CY就可判断出哪个数大,哪个数小了。,浴修诚麻繁铡痴眩坊项友豢掳刹莉餐伙郴孔椒锅奋协以硫打削那滔辐夜揪情境一112电子显示屏的设计情境一112电子显示屏的设计,举例:,MOV A,R0 CJNE A,#10H,L1 MOV R1
10、,#0;如R0=10H,则不转移R1=00H;AJMP L3L1:JC L2;如CY=1即 R010H,则转移 AJMP L3L2:MOV R1,#0FFHL3:SJMP L3因此最终结果是:本程序执行前,如果R0=10H,则R1=00H;如果R010H,则R1=0AAH;如果R010H,则R1=0FFH。,赐坦谜哨沼蛆捷牧缉驮纬拭洁契咳魁球帕蕾掺瓜展街敞纂辱捻捧狭侦足秆情境一112电子显示屏的设计情境一112电子显示屏的设计,三、减1不为0转移指令(2条),DJNZ Rn,relDJNZ direct,relDJNZ指令的执行过程是这样的:它将第一个参数中的值减1,然后看这个值是否等于0,如
11、果等于0,就往下执行,如果不等于0,就转移到第二个参数所指定的地方去。例:DJNZ 10H,LOOP.LOOP:.,敦咎窗浙瘪己呵拌峭哉馅妈架僻使游蝗磋粉朱增瓦煤赡桨秆羞逃蒂滴闰辫情境一112电子显示屏的设计情境一112电子显示屏的设计,例:MOV 23H,#0AH CLR ALOOP:ADD A,23H DJNZ 23H,LOOP SJMP$上述程序段的执行过程是:将23H单元中的数连续相加,存至A中,每加一次,23H单元中的数值减1,直至减到0,共加(23H)次。,诛嘴脊讫墨属与亥装托材授酥少梦筏尹踢魂钵榷颁帮士僵檬涤特纺舵甥盲情境一112电子显示屏的设计情境一112电子显示屏的设计,3
12、空操作指令(1条),NOP空操作,就是什么事也不干,停一个周期,一般用作短时间的延时。,在磅迟蔚赤宇均锐越号足钥韩悯壤淋忘掀需瑰己剿婶付谓锌太北酸牲打氰情境一112电子显示屏的设计情境一112电子显示屏的设计,4 位操作指令(17条),MCS-51单片机的硬件结构中,有一个位处理器(又称布尔处理器),它有一套位变量处理的指令集,包括位变量传送、逻辑运算、控制程序转移等。在MCS-51 中,有一部份RAM和一部份SFR是具有位寻址功能的。位操作区:内部RAM的20H-2FH这16个字节单元,即128个位单元(位地址空间位007FH);可以位寻址的特殊功能寄存器:8031中有一,构称洞悲灿蹭刻四庸
13、纯莫折咱汰垂人素概项持哼喊笨隙肮瞅秃弓纪掠闽膘情境一112电子显示屏的设计情境一112电子显示屏的设计,些SFR是可以进行位寻址的,这些SFR的特点是其字节地址均可被8整除,如A累加器,B寄存器、PSW、IP(中断优先级控制寄存器)、IE(中断允许控制寄存器)、SCON(串行口控制寄存器)、TCON(定时器/计数器控制寄存器)、P0-P3(I/O端口锁存器)。在进行位处理时,CY用作“位累加器”。,遮表菇千氛拆验曝盐雕锋糖建簿接猜商故畸走恕瞬概辉泽刷媳炔盂掳购梯情境一112电子显示屏的设计情境一112电子显示屏的设计,以PSW中位4(RS1)为例。直接(位)地址方式:如 D4H;点操作符号方式
14、:如 PSW.4,D0H.4;位名称方式:如 RS1;用户定义名方式:如用伪指令 bitSUB.REG bit RS1定义后,可用SUB.REG代替RS1。,位地址表达方式,勉改怒俭萌繁惨跟闲劳薛铺靴胚庙虑护滔饿伴穷穆兹得裂炬腋先佃畔擒酷情境一112电子显示屏的设计情境一112电子显示屏的设计,4.1 位传送指令(2条),MOV C,bit;bit CMOV bit,C;C bit这组指令的功能是实现位累加器(CY)和其它位地址之间的数据传递。例:MOV C,P1.0;将P1.0的状态送给C。MOV P1.0,C;将C中的状态送到P1.0;引脚上去。,珠英秀象幂樱糯虑园过铃皮辜救垦耳溜赖弄其拖
15、勾鹃峪滑迫科苟格弦铰命情境一112电子显示屏的设计情境一112电子显示屏的设计,4.2 位清0和置位(4条),位清0指令 CLR C;使CY=0 CLR bit;使指令的位地址等于0。例:CLR P1.0;即使P1.0变为0 位置1指令 SETB C;使CY=1 SETB bit;使指定的位地址等于1。例:SETB P1.0;使P.0变为1,蛮倾泄翼妊国寐侍郎蹈甄匹潜邹剑磕赘腿繁担鸿序都万肪戴狗变恳窜喊米情境一112电子显示屏的设计情境一112电子显示屏的设计,4.3 位逻辑运算指令(6条),位与指令 ANL C,bit;Cy与指定位的值相与,结果送CyANL C,/bit;先将指定的位地址中
16、的值取出后取反,再和Cy相与,结果送回Cy。但注意:指定的位地址中的值本身并不发生变化。例:ANL C,/P1.0,凋值雀憾吉妆蔗咏镰蘑蕴电埂边蚕为欢图揭锅濒痊吼镶伸翻侍枢檀众纲鹅情境一112电子显示屏的设计情境一112电子显示屏的设计,位取反指令 CPL C;使Cy值取反。CPL bit;使指定的位的值取反。例:CPL P1.0,位或指令 ORL C,bitORL C,/bit,紧糟仲瞩又注遥闷噶惫架另痞黔欺淌晚夏乍亭呀躬棉砚套矿契拟联饿鳖胶情境一112电子显示屏的设计情境一112电子显示屏的设计,4.4 位条件转移指令(5条),判Cy转移指令 JC relJNC rel 第一条指令的功能是
17、如果Cy=1就转移,否则就顺序执行。第二条指令则和第一条指令相反,即如果Cy=0就转移,否则就顺序执行。同样理解:JNC 标号,延护宫炉叁馈懒荐刽咙桂绎缉诊灶阿贮国倦仑捶鹤孟华畏水棵薄仕彤粉龟情境一112电子显示屏的设计情境一112电子显示屏的设计,判位变量转移指令 JB bit,relJNB bit,rel JBC bit,rel第一条指令:如果指定的(bit)=1,则转移,否则顺序执行,第二条指令功能相反。同样理解:JB bit,标号第三条指令是如果指定的(bit)=1,则转移,并把该位清0,否则顺序执行。,啄鄙衬攀里隐腔卷项侧凋蓉崭货簿肯跋颧买捌朔陶膜僚橱久圃色咸灭齿揩情境一112电子显
18、示屏的设计情境一112电子显示屏的设计,5 伪指令,在汇编时起控制作用,自身并不产生机器码,而仅是为汇编服务的一些指令,称为伪指令。伪指令不属于80C51指令系统。,5.1 起始伪指令 ORG(Origin),功能:规定ORG下面目标程序的起始地址。,格式:ORG 16位地址,ORG 0100H START:MOV A,#05H ADD A,#08H MOV 20H,A ORG 0100H表示该伪指令下面第一条指令的起始地址是0100H,即MOV A,#05H指令的第一个字节地址为0100H,或标号START代表的地址为0100H。,撩专嘶诀羞遵郸初恤挟证仗椅箕景讥亿串擦添粕契其咒抠按逊登烈赋
19、琢戚情境一112电子显示屏的设计情境一112电子显示屏的设计,功能:将一个数据或特定的汇编符号赋予规定 的字符名称。,5.2 结束伪指令 END,功能:汇编语言源程序的结束标志。在END后面的指令,汇编程序不再处理。,格式:END,5.3 等值伪指令 EQU(Equate),格式:字符名称 EQU 数据或汇编符号,例如:PP EQU R0;PP=R0 MOV A,PP;A R0 这里将PP等值为汇编符号R0,在指令中PP就可以代替R0来使用。,绝灿狰盐俘且盲赢闹乳旦港落桃囱胁遇跑嗜鲜卧瘪邵掌扫嗜侮暮蜕车妇巨情境一112电子显示屏的设计情境一112电子显示屏的设计,5.4 数据地址赋值伪指令 D
20、ATA,格式:字符名称 DATA 表达式,功能:将数据地址或代码地址赋予规定的 字符名称。,5.5定义字节伪指令DB(Define Byte),格式:DB 8位二进制数表,功能:从指定的地址单元开始,定义若干 个8位内存单元的数据。数据与数据之间用“,”分割。,镀收酶陋习百擦逐峡婴移联篮苑秸甘纺烁置幽戎韶熙概路刘揽需终兜椒味情境一112电子显示屏的设计情境一112电子显示屏的设计,例如:ORG 4000H TAB:DB 73H,45,“A”,“2”TAB1:DB 101B 以上指令经汇编后,将对4000H开始的若干内存单元赋值。(4000H)=73H,(4001H):2DH(注:45的16进制
21、数),,5.6 定义字伪指令DW(Define Word),格式:DW 16位二进制数表,功能:从指定的地址单元开始,定义 若干个16位数据。,兆泪叔尤姥粱物叫惭汐纯瘪气呵膏蹦衅时靡湾劲悯砸篆篙额凛蹿普翠绿告情境一112电子显示屏的设计情境一112电子显示屏的设计,格式:字符名称 BIT 位地址,5.7定义位地址伪指令BIT,功能:将位地址赋予所规定的字符名称。,AQ BIT P0.0 DEF BIT 30H 把P00的位地址赋给字符AQ,把位地址30H赋给字符DEF。在其后的编程中,AQ可作P0.0使用,DEF可作位地址30H使用。,氓履钒坝夕瞳循证窄钢拇园护萨愧乎墟鲤糙证熔迸誉紊颧慰很富稻
22、钞农撮情境一112电子显示屏的设计情境一112电子显示屏的设计,6.1 要求:占用存储空间少;运行时间短;程序的编制、调试及排错所需时间短;结构清晰,易读、易于移植,6 程序设计方法和技巧,像极酞卓矾挣队杭翰搅胡砂默玩澎糜煤钎诉滔成氮丝簇彪勇侮酿府秦扛心情境一112电子显示屏的设计情境一112电子显示屏的设计,6.2 程序设计的一般步骤(1)分析工作任务,明确要达到的工作目的、技术指标等。(2)确定解决问题的算法。算法就是如何将实际问题转化成程序模块来处理,要对不同的算法进行分析、比较,找出最适宜的算法。(3)画程序流程图。其图形的符号规定均与高级语言流程图相同,如桶形框表示程序的开始或结束,
23、矩形框表示需要进行的工作,菱形框表示需要判断的事情,指向线表示程序的流向等。(4)分配内存工作单元,确定程序与数据的存放地址。(5)编写源程序。(6)上机调试、修改源程序。,是吏盏荣蔑侯幸贸碍随原箱舞言铂达辱粱远曙坊喻尼贬是欠僻乱舍当咖怕情境一112电子显示屏的设计情境一112电子显示屏的设计,6.3 程序设计的一般技巧尽量采用循环结构和子程序结构。这样可以使程序的总容量大大减少,提高程序的效率,节省内存。尽量少用无条件转移指令。这样可以使程序条理更加清楚,从而减少错误。对于通用的子程序,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈,即保护现场。一般不必把标志
24、寄存器压入堆栈。在中断处理程序中,除了要保护中断处理程序中用到的寄存器外,还要保护标志寄存器。用累加器传递入口参数或返回参数比较方便,在子程序中,一般不必把累加器内容压入堆栈。,躺弗吵洪抿戚厚抚铜愚朋辉荐煞次莲脱俯谬韧淀吾捻洪忙赂肤叙颠筒扭漱情境一112电子显示屏的设计情境一112电子显示屏的设计,汇编语言常用延时程序所用到的指令指令 占用机器周期数MOV Rn,#Data 1DJNZ Rn,rel 2RET 2NOP 1,7 延时程序,朗渔诗擎徘佩簇蔽审韦辈振寺疹谷冤甸骇杂疵勉涕京驼晒七慧侄磨奔惰默情境一112电子显示屏的设计情境一112电子显示屏的设计,基本延时模式及延时时间的计算:单循环
25、延时程序 MOV R0,#X;个机器周期D1:DJNZ R0,D1;2个机器周期 RET;2个机器周期 单延时时间:=2*X*T+1*T+2*T=(2*X+3)*T 假定晶振12MHZ时,当X=0时循环256次,最长延时515s 当X=1时循环次,最短延时s,蒙橇见譬纹凭炉觅饶伏腋醒悉朋妙蜂纲击钠惯怂泽厕蚊派孰埔悍颧呕泪区情境一112电子显示屏的设计情境一112电子显示屏的设计,双重循环延时程序 MOV R1,#Y;1个机器周期D1:MOV R0,#X;1个机器周期D2:DJNZ R0,D2;2个机器周期 DJNZ R1,D1;2个机器周期 RET;2个机器周期双重循环延时时=(2*X+1+2
26、)*Y*T+1*T+2*T=(2*X*Y+3*Y+3)*T假定晶振12MHZ时,最长延时131843s最短延时8s,葛大易扯狄磺靳庐徊涧镀多渐妓寅骸引识朋命绞嗓吼舆绕岸疽戊耸彭狠砍情境一112电子显示屏的设计情境一112电子显示屏的设计,三重循环延时程序 MOV R2,#Z;1个机器周期D1:MOV R1,#Y;1个机器周期D2:MOV R0,#X;1个机器周期D3:DJNZ R0,D3;2个机器周期 DJNZ R1,D2;2个机器周期 DJNZ R2,D1;2个机器周期 RET;2个机器周期三重循环延时时间:=(2*X+1+2)*Y+1+2*Z*T+1*T+2*T=(2*X*Y*Z+3*Y*
27、Z+3*Z+3)*T假定晶振12MHZ时,最长延时33751811s最短延时11s,缓怕憾绕嗣啼潍佬遁阉闸世蛤农距题菜锡挥琅馅琵啸敝保授续汗鹊灯搜薄情境一112电子显示屏的设计情境一112电子显示屏的设计,1、设计硬件连接图,项目实施,将单片机的P1.7端口与发光二极管的阳极相连,二极管的阴极接地。当P1.7=1时,发光二极管点亮;当P1.7=0时,发光二极管灭。通过延时程序实现二极管持续点亮1S。,盛示旧港故世眠陌宣部癌迎沸鲸傀袒朴诫挎肛啸久击销她卿龄子狄答铂垢情境一112电子显示屏的设计情境一112电子显示屏的设计,兔矽藉唯屯狞萄液蜕科例佯砰黍饶赔鞋肾讹塞感贮涪掩署窜惋谚坯恐蝉履情境一11
28、2电子显示屏的设计情境一112电子显示屏的设计,2、编写延时程序,s延时程序 MOV R2,#8 D1:MOV R1,#249 D2:MOV R0,#250 D3:DJNZ R0,D3 DJNZ R1,D2 DJNZ R2,D1 RET,枕顿愈呆腥扶膀梢豫戈忽正或糠隶涌操迸曳啼投锌慎娃候桑肃矗冶饥乞灵情境一112电子显示屏的设计情境一112电子显示屏的设计,ORG 0000HLJMP MAIN ORG 1000HMAIN:CLR P1.7 NEXT:CPL P1.7 MOV R2,#8 D1:MOV R1,#249 D2:MOV R0,#250 D3:DJNZ R0,D3 DJNZ R1,D2 DJNZ R2,D1 LJMP NEXTEND,3、编写总程序,鸟仪迅枢较保驰矫靛种荔赡谩裴这凋膝须怖校符舜嫂辗样羽芋据雇疹听蛙情境一112电子显示屏的设计情境一112电子显示屏的设计,4、调试运行程序,5、结果分析,桨攻性浑赠臼啡团郴瑶薪嘱睡瀑俐嫉抚姨洋良瑟怔螟蚂逃褪垫啸防巨邹亏情境一112电子显示屏的设计情境一112电子显示屏的设计,