单片机汇编语言一百例docWord文档格式.docx
- 文档编号:21010473
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:84
- 大小:25.37KB
单片机汇编语言一百例docWord文档格式.docx
《单片机汇编语言一百例docWord文档格式.docx》由会员分享,可在线阅读,更多相关《单片机汇编语言一百例docWord文档格式.docx(84页珍藏版)》请在冰豆网上搜索。
DELAY:
MOV30H,#0FFH
D1:
MOV31H,#0FFH
D2:
DJNZ31H,D2
DJNZ30H,D1
RET
END
方波输出
口输出高电平,延时后再输出低电
平,循环输出产生方波。
波形发生器。
程序实例():
;
直接利用口产生高低电平地形成方波步移位
显示个,十,百,千算机的内部计算都是二进
制,而二进制每除一个2,实际上是向右移一次。
所以为
了计算方便,我们选择取6个数,最后在算除法的时候,
只需要用单片机自带的右移位命令移2次就行了。
27
十六进制六位数加法(数码显示)
程序实例:
ADNUMBEREQU30H;
AD转换值
ADDNUMBEREQU31H加;
数值1
ADLEQU32H;
//
ADHEQU33H;
ADL转换高低位值
DISLEQU34H;
DISHEQU35H显;
示高低位值
ADDTOTALEQU36H第;
一次AD转换值
ADDJWEQU37H加;
法进位数
ADDHOLDEQU38H
ADDFLAGEQU39H加;
标志
ENDFLAGEQU40H
赋初值////////////////////////////////////////////
MOVADDHOLD,#00H
MOVADDNUMBER,#00H
MOVADL,#00H
MOVADH,#00H
MOVDISL,#00H
MOVDISH,#00H
MOVADDJW,#00H
MOVADDFLAG,#00H
MOVENDFLAG,#00H
MOVADDTOTAL,#00H
//////////////////////////////////////////////////
28
显示AD值//////////////////////////////////////////
ACALLDELAY
ACALLAD
MAIN3:
ACALLCAIFEN
ACALLDISPLAY
加这次的AD值,并判是否加了六次,是的话就进入死循环
ACALLADD1
INCADDFLAG
MOVA,ADDFLAG
CJNEA,#06H,MAIN2
LOOP:
AJMPLOOP
没有加到六次,继续取值加,如果没有来新AD值,还是去
显示上次加的值,有新AD值来了,显示这次AD值,并加上上
次AD值,显示///////////////////////////////////////
MAIN2:
ACALLDELAY
MOVA,ADNUMBER
CJNA,ADDTOTAL,MAIN3
AJMMAIN2
////////////////////////////////////////////AD
AD:
29
转换
MOVDPTR,#7F00H指;
向转换地址
MOVA,#03H;
指向转换口
MOVX@DPTR,A转;
换
MOVR1,#64H
DJNZR1,D1等;
100微秒转换完
MOVXA,@DPTR转;
换后的值给
A
MOVADNUMBER,A转;
换的值给RET
30H
拆分AD值程序//////////////////////////////////////
CAIFEN:
ANLA,#0FH
MOVADL,A取;
低位
ANLA,#0F0H
SWAPA
MOVADH,A;
取高位
MOVDISL,ADL
MOVDISH,ADH给;
显示值
显示//////////////////////////////////////////////
DISPLAY:
MOVA,DISL
MOVDPTR,#SETTAB
MOVCA,@A+DPTR
MOVSBUF,A
30
D3:
JNBTI,D3
CLRTI
MOVA,DISH
D4:
JNBTI,D4
MOVA,ADDJW
D5:
JNBTI,D5
MOVSBUF,#00H
D6:
JNBTI,D6
加法程序//////////////////////////////////////////
ADD1:
CLRC
MOVADDTOTAL,ADNUMBER
ADDCA,ADDHOLD
MOVADDHOLD,A
JNCADDJW1
INCADDJW
31
ADDJW1:
ANLA,#0FH
MOVDISL,A加;
值取低位
MOVA,ADDHOLD
MOVDISH,A加;
值取高位
///////////////////////////////////////////////
延;
MOVR3,#0AH
DD1:
MOVR1,#0FFH
D2:
MOVR2,#0FFH
DJNZR2,$
DJNZR1,D2
DJNZR3,DD1
SETTAB:
DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,
0FEH,0F6H
DB0EEH,3EH,9CH,7AH,9EH,8EH
求六位和中的最大值和最小值(数码显示)
程序实例():
32
ADH1EQU41H;
AD中最大的值
ADL1EQU42H;
AD中最小的值
ADHOLDHEQU43H
ADHOLDLEQU44H求;
AD最大值与最小
值时AD的比较值,即以此两个值为比较中转
FOUREQU45H
SUBEQU46H减;
去高低位后的值
JWHOLDEQU47H保;
存进位值
MOVADH1,#00H
MOVADL1,#00H
33
MOVADHOLDH,#00H
MOVFOUR,#00H
MOVADHOLDL,#00H
MOVJWHOLD,#00H
MOVSUB,#00H
ACALLAD取;
AD值
ACALLCAIFEN
ACALLDISPLAY显;
示
算最大值和最小值//////////////////////////////////
ACALLADDH
ACALLADDL
加和值显示///////////////////////////////////////
判是否加到了6次///////////////////////////////////
/////////////////////////////////////////////////
34
ACALLCAIFEN1拆;
最小值
ACALLCAIFEN2拆;
最大值
示最大值最小值
判有没有来新AD值,没有显示以前,有显示现在的///////
CJNEA,ADDTOTAL,MAIN3
AJMPMAIN2
AD转换////////////////////////////////////////////
MOVDPTR,#7F00H指;
100微秒转换完
换后的值给A
换的值给30H
35
36
MOVA,FOUR
////////////////////////////////////////////////
加法程序////////////////////////////////////////
37
AD值中的最大值////////////////////////////////////
ADDH:
MOVA,ADH1
CJNEA,#00H,ADDH1
MOVADH1,ADNUMBER
AJMPRE
ADDH1:
MOVA,ADNUMBER
SUBBA,ADH1
JCRE
RE:
RET
AD值中的最小值////////////////////////////////////
ADDL:
MOVA,ADL1
CJNEA,#00H,ADDL1
MOVADL1,ADNUMBER
AJMPRE1
ADDL1:
SUBBA,ADL1
JNCRE1
RE1:
分解AD最小值的个,十位////////////////////////////
38
CAIFEN1:
/////////////////////////////////////////////
分解AD最大值的个,十位///////////////////////
CAIFEN2:
MOVJWHOLD,ADDJW
MOVADDJW,ADL
MOVFOUR,ADH给;
39
求减去最大和最小值后的值(数码显示)
40
赋初值///////////////////////////////////////////
41
判是否加到了6次//////////////////////////////////
CJNEA,#
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 汇编语言 一百 doc