- 39
- 0
- 约3.6千字
- 约 4页
- 2018-06-02 发布于辽宁
- 举报
单片机常用,常考程序
breeze
1.二进制数转换为BCD码,将累加器A中的二进制数0~FFH内的任一数转换为BCD码(0~255)
(1)题意分析
BCD码是每4位二进制数表示一位十进制数,本例所要求转换的最大BCD码为255,表示成BCD码需要12位二进制数,超过了一个字节(8位),因此我们把高4位存放在B的低4位,高4位清零;低8位存放在A中。
0000 0010 0101 0101
B A
转换的方法是将A中二进制数除以100、10,所得商即为百、十位数,余数为个位数。
(2)汇编语言源程序
;程序名:BINBCD
;功能:二进制数转换为BCD码
;入口参数:要转换的二进制数存在累加器A中(0~FFH)
;出口参数:转换后的BCD码存放在B(百位)和A(十位和个位)中
BINBCD: PUSH PSW
MOV B,#100
DIV AB ;除法指令,A/B →商在A中,余数在B中
PUSH ACC ;把商(百位数)暂存在堆栈中
MOV A,#10
XCH A,B ;余数交换到A中,B=10
DIV AB ;A / B→商(十位)在A中,余数在B(个位)中
SWAP A ;十位数移到高半字节
ADD A,B ;十位数和个位数组合在一起
POP B ;百位数存放到B中
POP PSW
RET
2. 查表子程序。假设a、b均小于10,计算c=a2+b2,其中a事先存在内部RAM的31H单元,b事先存在32H单元,把c存入33H单元。
(1)题意分析
本例两次使用平方的计算,在前面的例4.9中已经编过查平方表得到平方值的程序,在此我们采用把求平方编为子程序的方法。
(2)汇编语言源程序
ORG 0000H ;主程序
MOV SP,#3FH ;设置栈底
MOV A,31H ;取数a存放到累加器A中作为入口参数
LCALL SQR
MOV R1,A ;出口参数——平方值存放在A中
MOV A,32H
LCALL SQR
ADD A,R1
MOV 33H,A
SJMP $
;子程序:SQR
;功能:通过查表求出平方值y=x2
;入口参数:x存放在累加器A中
;出口参数:求得的平方值y存放在A中
;占用资源:累加器A,数据指针DPTR
SQR: PUSH DPH ;保护现场,将主程序中DPTR的高八位放入堆栈
PUSH DPL ;保护现场,将主程序中DPTR的低八位放入堆栈
MOV DPTR,#TABLE ;在子程序中重新使用DPTR,表首地址→DPTR
MOVC A,@A+DPTR ;查表
POP DPL ;恢复现场,将主程序中DPTR的低八位从堆栈中弹出
POP DPH ;恢复现场,将主程序中DPTR的高八位从堆栈中弹出
RET
TABLE: DB 0,1,4,9,16,25,36,49,64,81
3. 不同存储区域之间的数据传输。将内部RAM 30H单元开始的内容依次传送到外部RAM 0100H单元开始的区域,直到遇到传送的内容是0为止。
(1) 题意分析
本例要解决的关键问题是:数据块的传送和不同存储区域之间的数据传送。前者采用循环程序结构,以条件控制结束;后者采用间接寻址方式,以累加器A作为中间变量实现数据传输。程序流程图如图4.16所示。
图4.16 例4.8程序流程图
(2) 汇编语言源程序
ORG 0000H
MOV R0,#30H ;R0指向内部RAM数据区首地址
MOV DPTR,#0100H ;DPTR指向外部RAM数据区首地址
TRANS: MOV A,@R0 ;A←(R0)
MOVX @DPTR,A ;(DPTR)←A
CJNE A,#00H,NEXT
SJMP FINISH ;A=0,传送完成
NEXT: INC R0 ;修改地址指针
INC DPTR
AJMP TRANS ;继续传送
FINISH: SJMP $
END
4. 设单片机系统的时钟频率为12MHz利用定时器T0(任选工作方式),编写一个完整的C51程序使P1.6和P1.7分别输出周期为1ms和2ms的方波信号(占空比为50%)
ORG 0000HLJMP MAIN
ORG 000BH
LJMP TIME0
MAIN:
?MOV TMOD,#01H? ;设置T0为工作模式1?MOV IE,#82H?? ;开CPU中断,开T0定时器中断?MOV TH0,#0FCH? ;赋初值,定时1ms?MOV T
您可能关注的文档
- 2013年1月高等教育自学考试中外建筑史含部分答案.doc
- 初一150计算题.doc
- 电缆桥架购销合同范E34.doc
- 灯饰行业的调查报告.doc
- 财会考试经济法基础速记真解.doc
- PV3929版本20043中文.doc
- 2017年河北省中考物理试卷带答案.doc
- 211节流膨胀与焦耳汤姆逊实验.ppt
- 《民乐校本课》课程纲要.doc
- 2017Fintech发展趋势报告.ppt
- 浙江省温州市2024-2025学年七年级上学期语文期末考查卷.docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(原卷版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(解析版).docx
- 精品解析:北京市海淀区2025-2026学年九年级上学期期末语文试题(解析版).docx
- 精品解析:北京市东城区汇文中学2025-2026学年八年级上学期期中语文试题(原卷版).docx
- 精品解析:北京市回民学校2024-2025学年九年级上学期期中语文试题(原卷版).docx
- 精品解析:2024-2025学年广东省广州市从化区街口镇中心小学人教版五年级上册期中测试数学试卷(解析版).docx
- 精品解析:北京市通州区2024-2025学年七年级下学期期末考试英语试卷(解析版).docx
- 精品解析:北京市建华实验学校2024-2025学年七年级下学期期中英语试题(解析版).docx
原创力文档

文档评论(0)