我有高分,好的答案我会追加很多!求研究性学习课程 专题小组方案设计的例文
这个还是自己搞哦,锻炼锻炼自己的能力吧。。。。
呵呵,给你一点建议吧。。。。
可以先找一个你自己喜欢的方面进行入手,可以对事先给定的研究对象进行提问~然后试试翻些参考书或上网进行自己先找答案、如问题还是不能解决可以问老师或专家。还可以进行调查,制作问卷或直接采访相关老师同学或其他人。开始建议从身边小事研究起来,比如“为什么晚上会有露珠?”从班级里的近视眼看中学生用眼卫生”“现代广告文化内涵初探”“废电池的危害初探究”等等。。。
还有就是最重要的那篇结题报告,要不留任何别人产生疑问的地方,注意科学和实事求是,
祝你研究得成功!!!。。。
我的单片机课程设计
我做的课程设计是3*3的键盘,要求与你的基本一样,你可以看看修改一下
org 0000h
ajmp main
org 0030h
main:
MOV P1,#0FFH
MOV R1,#50H
MOV 50H,#0
MOV 51H,#0
MOV 52H,#0
MOV 53H,#0
MOV 54H,#0
mov dptr,#tab ;将表头放入DPTR
SCAN:
lcall key ;调用键盘扫描程序
CJNE A,#9,CHECK
MOV A,50H
CJNE A,#1,ERROR
MOV A,51H
CJNE A,#2,ERROR
MOV A,52H
CJNE A,#3,ERROR
MOV A,53H
CJNE A,#4,ERROR
MOV A,54H
CJNE A,#5,ERROR
CLR P1.2 ;绿灯亮
MOV A,#0AH ;送值(显A值)
LJMP DISPLAY
ERROR:
MOV 50H,#0
MOV 51H,#0
MOV 52H,#0
MOV 53H,#0
MOV 54H,#0
MOV R1,#50H
CLR P1.0
MOV A,#0EH
LJMP DISPLAY
CHECK:
MOV @R1,A
INC R1
DISPLAY:
movc a,@a+dptr ;查表后将键值送入ACC
mov p0,a ;将Acc值送入P0口
CLR P2.7 ;开显示
LJMP SCAN
KEY: LCALL KS ;调用检测按键子程序
JNZ K1 ;有键按下K1
LCALL DELAY2 ;无键按调用延时去抖
AJMP KEY ;返回继续检测按键
K1: LCALL DELAY2
LCALL DELAY2 ;有键按下延时去抖动
LCALL KS ;再调用检测按键程序
JNZ K2 ;确认有按下进行下一步
AJMP KEY ;无键按下返回继续检测
K2: MOV R2,#0DFH ;将扫描值送入 R2暂存
MOV R4,#00H ;将第一列值送入R4暂存
K3: MOV P3,R2 ;将R2的值送入P2口
L6: JB P3.4,L1 ;P3.4等于1跳转到L1
MOV A,#07H ;将第一行值送入ACC
AJMP LK ;跳转到键值处理程序
L1: JB P3.3,L2 ;P3.3等于1跳转到L2
MOV A,#04H ;将第二行的行值送入ACC
AJMP LK ;跳转到键值理程序进行键值处理
L2: JB P3.2,NEXT ;P3.2等于1跳转到NEXT
MOV A,#01H ;将第三行的行值送入ACC
AJMP LK ;跳转到键值处理程序
LK: ADD A,R4;行值与列值相加再加1后的键值送入A
;ADD A,#01H
PUSH ACC ;将A中的值送入堆栈暂存
K4: LCALL DELAY2 ;调用延时去抖动程序
LCALL KS ;调用按键检测程序
JNZ K4 ;按键没有松开继续返回检测
POP ACC ;将堆栈的值送入ACC
RET
NEXT:INC R4 ;将列值加一
MOV A,R2 ;将R2的值送入A
JNB ACC.7,KEY ;扫描完至KEY处进行下一扫描
RL A ;扫描未完将A中的值右移一位进行下一列的扫描
MOV R2,A ;将ACC的值送入R2暂存
AJMP K3 ;跳转到K3继续
KS: MOV P3,#1FH ;将P3口P3.7-P3.5位置0,P3.4-P3.2位置1
MOV A,P3 ;读P3口
XRL A,#1FH ;将A中的值与A中的值相异或
RET ;子程序返回
DELAY2: ;40ms延时去抖动子程序
MOV R5,#08H
L7: MOV R6,#0FAH
L8: DJNZ R6,L8
DJNZ R5,L7
RET
tab:
db 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,77h,7Ch,39h,5Eh,79h,71h
end
原创文章,作者:晴空,如若转载,请注明出处:http://www.dlgrdx.com/shenghuo/21272.html