① 设单片机系统如何编写一个完整的C51程序使P1.6和P1
设单片机系统编写一个完整的C51程序使P1.6和P1,可以使用正确编码加上解压即可。
② 求51单片机蜂鸣器音乐汇编语言,两只老虎的
ORG
0000H
AJMP
MAIN
ORG
000BH
AJMP
T0INT
ORG
0050H
MAIN:
MOV
TMOD,#01H
MOV
IE,#82H
Again:
MOV
DPTR,#TAB;表首地址
LOOP:
CLR
A
MOVC
A,@A+DPTR
MOV
R2,A
;时间高位
INC
DPTR
CLR
A
MOVC
A,@A+DPTR
MOV
R3,A;时间低位
2
ORL
A,R2
JZ
STOP
MOV
A,R2
ANL
A,R3
CJNE
A,#0FFH,NEXT
AJMP
Again
NEXT:
MOV
TH0,R2
MOV
TL0,R3
SETB
TR0
NEXT1:
CLR
A
INC
DPTR
MOVC
A,@A+DPTR
MOV
P1,A;字形码显示
3
CLR
A
INC
DPTR
MOVC
A,@A+DPTR;
延时常数
4
DEL:
MOV
R5,
2
DEL0:
MOV
R6
,#250
DEL1:
MOV
R7,
#248
NOP
DEL2:
DJNZ
R7,
DEL2
DJNZ
R6,DEL1
DJNZ
R5,DEL0
CLR
TR0
INC
DPTR;下一个音节
LJMP
LOOP
STOP:
AJMP
NEXT1
T0INT:
PUSH
A
PUSH
PSW
PUSH
DPH
PUSH
DPL
CPL
P3.0;音频取反
MOV
TH0,R2
MOV
TL0,R3
SETB
TR0
POP
DPL
POP
DPH
POP
PSW
POP
A
RETI
TAB:
DB
在TAB后把简谱打上
③ 编写一个完整的单片机C51程序
#include<reg51.h>
sbit led=P1^0; //单片机管脚位声明
void main()
{
TMOD=0x01; //定时器TO工作在方式1
TH0=(65536-5000)/256; //装初值,12M晶振 1为1us; 5000为5000us=5ms;
TL0=(65536-5000)%256;
EA =1; //开总中断
ET0=1; //开定时器TO中断
TR0=1; //启动定时器
P1=0; //初始化P1口
while(1) ; //程序在这里等待中断发生
}
void T0_time() interrupt 1
{
unsigned char num;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
num++;
if(num==100) //0.5S (1s闪烁1次==0.5S亮0.5S灭)
{
num=0;
led=~led; //led状态取反
}
}
④ 用C51单片机如何编程出两只老虎这首歌曲(要用C语言编程)
用T0/T1,一个用于频率控制(音调),一个控制时长(节奏)