单片机程序(12页).doc
《单片机程序(12页).doc》由会员分享,可在线阅读,更多相关《单片机程序(12页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-1、编程将片内RAM30H单元开始的B的数据传送到片外RAM3000H开始的单元中去。解:STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000HLOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET2、编程将片内RAM 40H单元中的内容送到片外RAM2000H单元中。解: ORG 0100H MOV A,40H MOV DPTR,#2000H MOVX DPTR,A END-第 12 页-3、将内部RAM 40H开始的10个字节的数搬到外部RAM 2000H处 MOV DPTR,#2000H
2、 MOV R0,#40H MOV R2,#0AHLOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R2,LOOP SJMP $ END4、将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。MOV DPTR,#8000HMOV R0,#10HMOV R2,#50HLOOP:MOVX A,DPTR ;取数MOVX R0,A ;存数 1NC DPTR 1NC R0 DJNZ R2,LOOP RET5片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中解 START: MOV R0,#40H ;数据
3、块首地址送R0 MOV R7,#09H ;比较次数送MOV A,R0 ;取数送LOOP: INC R0 MOV 30H,R0 ;取数送H CJNE A,30H,NEHT ;(A)与(30H)相比NEXT: JNC BIE1 (A)(30H)转BIR1MOV A,30H ;(A)(30H),大数送ABIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较MOV 50H,A ;比较结束,大数送50HRET 6.片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和256 )解ADDIO:MOV R0,30H MOV R7,#9 MOV A,R0 LOOP: INC R0
4、 ADD A,R0 DJNZ R7,LOOP MOV 30H,A RET7、 设从内存BLOCK单元开始存放一 无符号数的数据块,其长度为LEN。试找出其最小数,并存入MIN单元。COMP: MOV A,#0FFH ;置比较的初始值MOV R2,#LEN ;置数据块长度MOV R1,#BLOCK ;置地址指针LOOP: CLR CSUBB A,R1 ;比较JC NEXT ;若小,则恢复原值MOV A,R1SJMP NEXT1NEXT: ADD A,R1NEXT1: INC R1 ;若大,则取下个数比较DJNZ : DJNZ R2,LOOPMOV MN ,A ;存最小数SJMP $8、比较存放在
5、ONE,TWO,TRE三个单元的无符号数,并将小数存放在20H单元中。MOV A,ONECJNE A,TWO,RRRR: JC SSMOV A,TWOCJNE A,TRE,TTTT: JC WWSJMP UUSS: CJNE A,TRE,VVVV: JC WWUU: MOV A,TREWW: MOV 20H,A9、设在单片机内部RAM中从STR单元开始存放有一数据块,该数据块以#00H结束,试统计其中为#0FFH的单元个数并存入NUM单元。COUNT: CLR A ;清计数单元 MOV R0,#STR ;置地址指针LOOP: CJNE #0FFH,LOOP1;数据为#0FFH则计数单元加1 I
6、NC ALOOP1: INC R0 CJNE R0,#000H,LOOP;数据块取完? MOV NUM A ;存统计结果 SJMP $10、将片内RAM2单元(如20H)的内容分成两段,并将它们分别存入2单元和3单元。(高位清零)。MOV R0,#21HMOV A,20HANL A,#0FHMOV R0,AINC R0MOV A,20HSWAP AANL A,#0FHMOV R011、从1加到5,最终结果存入35H,试编写程序。解:方法(1)ORG 1000HCLR AMOV R0,#5L2:ADD A,R0DJNZ R0,L2MOV 35H,AEND方法(2)ORG 1000HCLR AMO
7、V R0,#0L1: INC R0ADD A,R0CJNE R0,#5,L1MOV 35H,AEND12.从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。MOVR0,#30HMOVR1,#40HMOVA,#50HMOVR7,#10LOOP:MOV20H,R0JB20H.7,FSHUZSHU:MOV R1,20HINCR1SJMPNEXTFSHU:XCHA,R1MOVR1,AXCHA,R1INCANEXT:DJNZR7,LOOPSJMP$13、编一程序段,将字节地址30H3FH单元的内容逐一取出减1,然后再放回原处,如果取
8、出的内容为00H,则不要减1,仍将0放回原处。MOV R7,#10H MOV R1,#30HLOOP: CJNE R1,#00H,NEXT MOV R1,#00H SJMP NEXT1NEXT: DEC R1NEXT1:INC R1 DJNZ R7,LOOP SJMP $ END14、求平方子程序计算X=a2+b2先建立09的平方表(十进制),TAB为表首地址指针。子程序所完成的功能是用查表的方式求出平方值。计算X=a2+b2时只要两次调用子程序分别求出a2和b2,然后相加即可。(设X,a,b分别存于内部RAM的ONE,TWO和TRE三个单元中)。子程序入口:(A)=待查表的数子程序入 口:(
9、A)=平方值 MAIN: MOV A;ONE ;调求平方子程序 ACALL SQR MOV R1,A MOV A,TWO ACALL SQR ADD A,R1 ;求平方和 MOV TRE,A SJMP $ SQR: INC A ;修正查表偏移量(入口A) MOVC A, A+PC ;查表求平方值(出口A )RET ;返回TAB: DB: 0,1,4,9,16 ;平方表DB: 25,36,49,64,8115、编程实现字符串长度统计:设在单片机内RAM中从STR单元开始有一字符串以ASC II码存放,该字符串以$结束,试统计该字符串的长度,其结果存于LON单元。 START: CLR A ;计数
10、单元清零 MOV R0,#STR LOOP: CJNE R0,#24H,NEXT ;判断字符串是否结束 SJMP COMP NEXT: INT A INC R0 SJMP LOOP COMP: MOV LON,A ;将长度存入LON单元 SJMP $ 16、将31H、32H单元与41 H、40H单元的双字节十进制无符号数相加,结果存入32H,31H,30H单元。即(31H)(30H)+(41H)(40H) 32H、31H、30H。 MOV R0,#30HMOV R1,#40HMOV R2,#02HCLR CL1: MOV A,R0ADDC A,R1DA AMOV R0,AINC R0INC R
11、1DJNZ R2,L1CLR AMOV ACC.0,CMOV R0,A17、 编程实现逻辑运算:Q=(U *(V+W)+X.Y)+Z。设UZ的位地址为00H05H.Q的位地址为07H。实际中UZ可以是外部输入端口信号或软件设定的一些控制位 MOV C,01H O RL C,02H ANL C,00H MOV F0,C ;暂存U*(V+W)的值 MOV C,03H ANL C,/04H ORL C,F0 ORL C,/05H MOV 07H,C ; 保存结果18 已知一MCS51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外扩展RAM的8000H存放了一个8位无符号数86H
12、,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。 CY A DPTR 片外01H 片外00H 片外8000H 0 01H 8000H 0lH 00H 86H MOV DPTR,#8000H ;加数单元地址送DPTR MOVX A,DPTR ;取加数之一 ADD A,20H ;两数相加 MOV R0,#00H ;和值的低位送片外00H单元 MOVx R0,A INC R0 CLR A ;计算和值的高位 ADDC A,#00H MOVx R0,A ;高位
13、送片外01H单元 RET19.已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。Y=MOV A,VARCJNE A,#0,COMPSJMP RES ;x=0,Y=0COMP:JNC POSI ;x0,Y=1MOV A,#0FFH ;x0,Y=-1SJMP RESPOSI:MOV A,#01HRES:MOV FUNC,ARET20.已知在R2中存放一个压缩的BCD码,请将它拆成个BCD字节,结果存于SUM开始的单元(低位在前)。MOV R0,#SUM MOV A,R2 ANL A,#OFH MOV R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SWAP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序 12
限制150内