早教吧作业答案频道 -->其他-->
单片机中把两个16位无符号单字节数求和相加,设计程序?例1利用定时器输出周期为2ms的方波,设单片机晶振频率为6MHz.选用定时器/计数器T0作定时器,输出为P1.0引脚,2ms的方波可由间隔1
题目详情
单片机中把两个16位无符号单字节数求和相加,设计程序?
例 1 利用定时器输出周期为 2 ms的方波,设单片机晶振频率为 6 MHz.
选用定时器 /计数器T0 作定时器,输出为P1.0 引脚,2 ms 的方波可由间隔 1 ms的高低
平相间而成,因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波.
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
N= 1 ms÷2 μs = 500
由此可知:使用方式 0 的 13 位计数器即可,T0的初值X为
X=M-N=8 192-500=7 692=1E0CH
但是,因为 13 位计数器中,低8位TL0只使用了5 位,其余码均计入高8 位TH0的
初值,则T0的初值调整为
TH0=0F0H,TL0=0CH
TMOD初始化:TMOD=00000000B=00H
(GATE=0,C/T=0,M1=0,M0=0)
TCON初始化:启动TR0=1
IE初始化:开放中断EA=1,定时器T0 中断允许ET0=1
程序清单如下:
ORG 0000H
AJMP START; 复位入口
ORG 000BH
AJMP TOINT ; T0中断入口
ORG 0030H
START:MOV SP,#60H; 初始化程序
MOV TH0,#0F0H ; T0赋初值
MOV TL0,#0CH
MOV TMOD,#00H
SETB TR0 ; 启动T0
SETB ET0 ; 开T0中断
SETB EA ; 开总允许中断
MAIN:AJMP MAIN ; 主程序
TOINT:CPL P1.0
MOV TL0,#0CH
MOV TH0,#0F0H
RET
如果把6MHZ改成12MHZ程序应该怎么改?
两个无符号双字节数相加.
设被加数存放于内部RAM的40H(高位字节),41H(低位字节),加数存放于50H(高位字节),51H(低位字节),和数存入 40H和41H单元中.
START:CLR C ; 将Cy清零
MOV R0,#41H ; 将被加数地址送数据指针R0
MOV R1,#51H ; 将加数地址送数据指针R1
AD1:MOV A,@R0 ; 被加数低字节的内容送入A
ADD A,@R1 ; 两个低字节相加
MOV @R0,A ; 低字节的和存入被加数低字节中
DEC R0 ; 指向被加数高位字节
DEC R1 ; 指向加数高位字节
MOV A,@R0 ; 被加数高位字节送入A
ADDC A,@R1 ; 两个高位字节带Cy相加
MOV @R0,A ;高位字节的和送被加数高位字节
RET
如果把题目改成把两个16位无符号单字节数求和相加,程序怎么变化?
例 1 利用定时器输出周期为 2 ms的方波,设单片机晶振频率为 6 MHz.
选用定时器 /计数器T0 作定时器,输出为P1.0 引脚,2 ms 的方波可由间隔 1 ms的高低
平相间而成,因而只要每隔 1 ms对 P1.0 取反一次即可得到这个方波.
定时 1 ms的初值:
因为 机器周期=12÷6 MHz= 2 μs
所以 1 ms内T0 需要计数N次:
N= 1 ms÷2 μs = 500
由此可知:使用方式 0 的 13 位计数器即可,T0的初值X为
X=M-N=8 192-500=7 692=1E0CH
但是,因为 13 位计数器中,低8位TL0只使用了5 位,其余码均计入高8 位TH0的
初值,则T0的初值调整为
TH0=0F0H,TL0=0CH
TMOD初始化:TMOD=00000000B=00H
(GATE=0,C/T=0,M1=0,M0=0)
TCON初始化:启动TR0=1
IE初始化:开放中断EA=1,定时器T0 中断允许ET0=1
程序清单如下:
ORG 0000H
AJMP START; 复位入口
ORG 000BH
AJMP TOINT ; T0中断入口
ORG 0030H
START:MOV SP,#60H; 初始化程序
MOV TH0,#0F0H ; T0赋初值
MOV TL0,#0CH
MOV TMOD,#00H
SETB TR0 ; 启动T0
SETB ET0 ; 开T0中断
SETB EA ; 开总允许中断
MAIN:AJMP MAIN ; 主程序
TOINT:CPL P1.0
MOV TL0,#0CH
MOV TH0,#0F0H
RET
如果把6MHZ改成12MHZ程序应该怎么改?
两个无符号双字节数相加.
设被加数存放于内部RAM的40H(高位字节),41H(低位字节),加数存放于50H(高位字节),51H(低位字节),和数存入 40H和41H单元中.
START:CLR C ; 将Cy清零
MOV R0,#41H ; 将被加数地址送数据指针R0
MOV R1,#51H ; 将加数地址送数据指针R1
AD1:MOV A,@R0 ; 被加数低字节的内容送入A
ADD A,@R1 ; 两个低字节相加
MOV @R0,A ; 低字节的和存入被加数低字节中
DEC R0 ; 指向被加数高位字节
DEC R1 ; 指向加数高位字节
MOV A,@R0 ; 被加数高位字节送入A
ADDC A,@R1 ; 两个高位字节带Cy相加
MOV @R0,A ;高位字节的和送被加数高位字节
RET
如果把题目改成把两个16位无符号单字节数求和相加,程序怎么变化?
▼优质解答
答案和解析
如果把6MHZ改成12MHZ程序应该怎么改?
可以使用方式1.
X = M-N = 65 536 - 1 000 = 64 536 = FC 18H
需要修改的指令为如下三条.
MOV TH0,#0FCH ; T0赋初值
MOV TL0,#18H
MOV TMOD,#01H
如果把题目改成把两个16位无符号单字节数求和相加,程序怎么变化?
把:
ADDC A,@R1 ; 两个高位字节带Cy相加
改为:
ADD A,@R1 ; 两个高位字节带Cy相加
即可.
可以使用方式1.
X = M-N = 65 536 - 1 000 = 64 536 = FC 18H
需要修改的指令为如下三条.
MOV TH0,#0FCH ; T0赋初值
MOV TL0,#18H
MOV TMOD,#01H
如果把题目改成把两个16位无符号单字节数求和相加,程序怎么变化?
把:
ADDC A,@R1 ; 两个高位字节带Cy相加
改为:
ADD A,@R1 ; 两个高位字节带Cy相加
即可.
看了单片机中把两个16位无符号单字...的网友还看了以下:
当太阳直射点在北半球,并自北向南移动的期间(选择)A 尼罗河正值一年中枯水时期 B 南极大陆全部处 2020-05-13 …
给我介绍一本有风格的初中的作文选或者是某人的散文集,作品集我要买一本提高写作水平的书,请给我推荐一 2020-05-22 …
我上小学时的一次作文课,老师把我的文章当作范文念给同学们听.我听见老师的表扬,真是美得不得了.正当 2020-06-07 …
设备一级保养的时间选择应尽量不与生产发生冲突。 2020-06-07 …
老师布置了作业,要做一本自己的作文选,一个月时间,今天开始.题目啥的都要题目我觉得《追梦》不错,或 2020-06-18 …
英语翻译1.您好,非常感谢贵公司能给我这个宝贵的机会,我非常荣幸!但因为个人这周的行程安排比较紧凑 2020-06-23 …
描写名人的作文选择一两个具体事例,在事例中对人物的语言、动作、神态、心理进行描写,把你心中最钦佩的 2020-06-29 …
有关冬季景物的作文选择冬季的某一景物作为描写对象,写出自己的感受,抒发自己的情感.200字以上 2020-07-13 …
谁有第二届新概念作文大赛获奖作品选急求一篇作文中华杯第二届新概念作文大赛获奖作品选中,获二等奖作者 2020-07-16 …
急求一篇作文在第二届新概念作文大赛获奖作品选中,获二等奖作者名字叫汪策谁有第二届的作文选啊 2020-07-16 …