汉扬编程 编程大纲 (单片机c语言必背代码)谁有现成的单片机曲谱代码,不是C语言的

(单片机c语言必背代码)谁有现成的单片机曲谱代码,不是C语言的

  ;用定时器T1方式1来产生歌谱中各音符对应频率的方波,由P1。0输出驱动喇叭。
;节拍控制可通过调用延时子程序次数来实现。
ORG 0000H
AJMP START
ORG 001BH
AJMP TIME
;
;***************************************************************
; /*主程序*/ *
;***************************************************************
;
ORG 0030H
START: MOV TMOD,#10H ;定时器1方式1
MOV IE,#88H ;允许中断
MOV DPTR,#TAB
LOOP: CLR A
MOVC A,@A DPTR ;取节拍
MOV R1,A
INC DPTR
CLR A
MOVC A,@A DPTR
MOV R0,A
ORL A,R1
JZ NEXT0 ;是休止符转停止发音
MOV A,R0
ANL A,R1
CJNE A,#0FFH,NEXT ;没有结束转下一拍
AJMP START
NEXT: MOV TH1,R1
MOV TL1,R0
SETB TR1
SJMP NEXT1
NEXT0: CLR TR1 ;是休止符关闭定时器,停止发音
NEXT1: CLR A
INC DPTR
MOVC A,@A DPTR ;取延时常数
MOV R2,A
LOOP1: CALL DELAY200MS
DJNZ R2,LOOP1
INC DPTR
AJMP LOOP
;
;***************************************************************
; /*延时子程序*/ *
;***************************************************************
;
DELAY200MS: MOV R4,#81H
DEL1: MOV R3,#0FFH
DJNZ R3,$
DJNZ R4,DEL1
RET
TIME: MOV TH1,R1
MOV TL1,R0
CPL P1。
  0
RETI
TAB: DB 0FCH,4AH,04H,0FCH,4AH,04H
DB 0FCH,4AH,08H,0FBH,00H,08H
DB 0FDH,08H,04H,0FDH,08H,04H
DB 0FDH,08H,08H,0FCH,4AH,08H
DB 0FCH,4AH,04H,0FDH,08H,04H
DB 0FDH,80H,08H,0FDH,80H,08H
DB 0FDH,30H,04H,0FDH,08H,04H
DB 0FCH,0AEH,08H,00H,00H,08H
DB 0FFH,0FFH
END。
  

用数组实现栈的功能的C语言代码?

  栈在处理数组上面真的很方便,这是栈的基础方法函数//顺序栈的实现stack。cpp#include \”stack。
  h\”Status SqStack::InitStack(SqStack **S){ (*S)=(SqStack *) malloc(sizeof(SqStack)); (*S)->base=(SElemType *)malloc(STACKSIZE *sizeof(SElemType)); if(!(*S)->base) exit(OVERFLOW); (*S)->top=(*S)->base; (*S)->stacksize=0; return 1;}Status SqStack::DestroyStack(){free(base);return 1;}Status SqStack::ClearStack(){stacksize=0;return 1;}bool SqStack::StackEmpty(){ if(stacksize==0) return true; else return false;}int SqStack::StackLength(){ return stacksize;}SElemType SqStack::GetTop(){ if(top==base) {cerr<<\”空栈!\\n\”;exit(1);} return *(top-1);}Status SqStack::Push(SElemType e){ *(top++)=e;stacksize++; return 1;}SElemType SqStack::Pop(SElemType *e){ if(top==base) {cerr<<\”空栈!\\n\”;exit(1);} *e=*–top; stacksize–; return *e;}void SqStack::StackTraverse(void (*visit)(SElemType *)){while(top!=base){ stacksize–;visit(–top);}}。

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/7089.html

(韩语初学者基础知识)「高分收藏」初学者必看的C语言基础知识体系

若a=2,c=4 A=30,则三角形ABC面积是?

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部