求高手把这些汇编语言转成c语言,51单片机数字信号发生器-串行通讯软件设计
设计程序:ORG0013HLJMPEXINTORG1000HEXINT:ORLP1,#0FH;P1口低4位为输出JBP1.0,SERV1;选择锯齿波JBP1.1,SERV...
设计程序:
ORG 0013H
LJMP EXINT
ORG 1000H
EXINT:ORL P1, #0FH ;P1口低4位为输出
JB P1.0,SERV1 ;选择锯齿波
JB P1.1,SERV2 ;选择三角波
JB P1.2,SERV3 ;选择矩形波
JB P1.3,SERV4 ;选择正弦波
RETI ;中断返回
SETV1: MOV A, #00H ;初始化
MOV R3, #0FEH
MOV DPTR,#7FFFH ;取入口地址
MM: MOVX @DPTR, A ;送转换
INC A
LCALL LOOP2 ;决定波形坡度
DJNZ R3,MM ;判断转移
SJMP EXINT
SERV2:MOV A,#00H ;初始化
MOV DPTR,#7FFFH ;取入口地址
SS1:MOVX @DPTR,A ;送转换
LCALL LOOP2 ;决定波形坡度
SS2:INC A
CJNE A ,#0FFH,SS1 ;判断波形是否达到峰值
SS3:DEC A ;波形开始下降
MOVX @DPTR,A ;送转换
LCALL LOOP2 ;决定波形坡度
JNZ SS3 ;判断波形是否达到谷值
SJMP EXINT ;产生下一个周期
SERV3: MOV A, #00H ;初始化
MOV DPTR,#7FFFH ;取入口地址
MOVX @DPTR,A ;送转换
LCALL LOOP1 ;调用子程序
MOV A, #0FFH
MOVX @DPTR,A ;送转换
LCALL LOOP2 ;调用子程序
SJMP EXINT ;产生下个周期波形
SERV4:MOV R5, #0FEH ;置偏移量
SIN: MOV A, R5
MOV DPTR, #500H ;从表格中取数
MOVC A,@A+DPTR ;送入寄存器中
MOV DPTR,#7FFFH ;取入口地址
MOVX @DPTR,A ;送转换
LCALL LOOP2
INC R5 ;偏移量加一
CJNE A, #0D9H,SIN
SJMP EXINT 展开
ORG 0013H
LJMP EXINT
ORG 1000H
EXINT:ORL P1, #0FH ;P1口低4位为输出
JB P1.0,SERV1 ;选择锯齿波
JB P1.1,SERV2 ;选择三角波
JB P1.2,SERV3 ;选择矩形波
JB P1.3,SERV4 ;选择正弦波
RETI ;中断返回
SETV1: MOV A, #00H ;初始化
MOV R3, #0FEH
MOV DPTR,#7FFFH ;取入口地址
MM: MOVX @DPTR, A ;送转换
INC A
LCALL LOOP2 ;决定波形坡度
DJNZ R3,MM ;判断转移
SJMP EXINT
SERV2:MOV A,#00H ;初始化
MOV DPTR,#7FFFH ;取入口地址
SS1:MOVX @DPTR,A ;送转换
LCALL LOOP2 ;决定波形坡度
SS2:INC A
CJNE A ,#0FFH,SS1 ;判断波形是否达到峰值
SS3:DEC A ;波形开始下降
MOVX @DPTR,A ;送转换
LCALL LOOP2 ;决定波形坡度
JNZ SS3 ;判断波形是否达到谷值
SJMP EXINT ;产生下一个周期
SERV3: MOV A, #00H ;初始化
MOV DPTR,#7FFFH ;取入口地址
MOVX @DPTR,A ;送转换
LCALL LOOP1 ;调用子程序
MOV A, #0FFH
MOVX @DPTR,A ;送转换
LCALL LOOP2 ;调用子程序
SJMP EXINT ;产生下个周期波形
SERV4:MOV R5, #0FEH ;置偏移量
SIN: MOV A, R5
MOV DPTR, #500H ;从表格中取数
MOVC A,@A+DPTR ;送入寄存器中
MOV DPTR,#7FFFH ;取入口地址
MOVX @DPTR,A ;送转换
LCALL LOOP2
INC R5 ;偏移量加一
CJNE A, #0D9H,SIN
SJMP EXINT 展开
展开全部
帮助你改变
#包括
无符号字符型吨= 0;
SBIT P3_7 = P3 ^ 7;
无效的主要()
{
TMOD = 0X01 ;/ /设置T0定时1
TH0 =值0x3c ;/ /设置初始值的计时器100ms的
TL0 = 0XB0; /> EA = 1 ;/ / CPU开中断
ET0 = 1 ;/ /定时器0中断使能
P3 = 0X00 ;/ /设置正常状态P3口
P1 = 0X00 ;/ / VD1VD6发红外光
{(1)
(P3! = 0X00)/ /显示器,如果有人闯入
{
TR0 = 1 ;/ /启动T0定时
}
}
}
无效定时器0()中断1 / /定时器0中断子程序
{
TH0 =值0x3c ;/ /重新设置初始值
TL0 = 0XB0;
+ +;
(== 10)/ / 1S,1S尚未返回
{
T = 0 ;/ /重置计数器的初始值
P3_7 =! P3_7 ;/ / P3.7端口否定}
}
#包括
无符号字符型吨= 0;
SBIT P3_7 = P3 ^ 7;
无效的主要()
{
TMOD = 0X01 ;/ /设置T0定时1
TH0 =值0x3c ;/ /设置初始值的计时器100ms的
TL0 = 0XB0; /> EA = 1 ;/ / CPU开中断
ET0 = 1 ;/ /定时器0中断使能
P3 = 0X00 ;/ /设置正常状态P3口
P1 = 0X00 ;/ / VD1VD6发红外光
{(1)
(P3! = 0X00)/ /显示器,如果有人闯入
{
TR0 = 1 ;/ /启动T0定时
}
}
}
无效定时器0()中断1 / /定时器0中断子程序
{
TH0 =值0x3c ;/ /重新设置初始值
TL0 = 0XB0;
+ +;
(== 10)/ / 1S,1S尚未返回
{
T = 0 ;/ /重置计数器的初始值
P3_7 =! P3_7 ;/ / P3.7端口否定}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询