单片机实习总结报告

时间:2024.4.21

单片机实习总结报告

专业综合实习总结

专业班级: 电子信息工程0801

学生学号: ***

指导教师:

实习时间:20XX.6.20—20XX.7.15

机 电 工 程 学 院

一、实习目的和意义

1、实习目的:

(1)利用单片机小系统实习板,掌握电路原理图;

(2)通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;

(3)通过单片机系统的调试、程序编制及运行,掌握单片机系统的工作原理、开发方法和操作方法。

2、实习意义:

通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目的。

二、实习内容

1.熟悉“单片机课程实习”电路板,领会、掌握该电路板的设计原理及硬件布局。

2.掌握单片机技术应用平台keil软件的学习。

3.借助平台软件,学习开发板的使用,按照要求编制、调试出正确的汇编语言程序。

4.学习适合本开发平台软件STC-ISP的在线单片机烧录。

5.针对实习电路板的功能,编制、调试、编译汇编语言程序,下载烧录并在实验板上运行,或利用软件ISIS 7 Professional进行软件仿真。

实现的功能:

1.led显示模块:单向循环流水led显示、双向循环流水led显示、花样流水灯的显示,使用查表方法编制任意点亮历程的实现,使用软件延时;

2.数码管显示模块:一位静态数码管显示0到9和0到F、二位静态数码管显示0到99、三位静态数码管显示0到999、四位静态数码管显示0到9999;阴极和阳极四位动态数码管显示;74LS驱动4位静态数码管显示;利用74HC595四位静态数码管显示;使用串行静态显示和动态扫描显示两种方式;

3.键盘模块:利用4×4矩阵键盘按键对应置数显示“0~F”;使用键盘的行列扫描方式;

三、硬件介绍

(一)LED显示模块:

图1 流水灯显示

图2 键盘控制循环灯

(二)数码管显示模块:

图3 1位静态数码管显示

图4 4位静态数码管显示

图5 4位动态数码管显示

图6 独立键盘加减清零数码管显示

图7 4位74LS驱动静态数码管显示

图8 4位74HC595静态显示

图9 0到F矩阵键盘

四、软件程序流程图

1、流水灯循环左移右移程序框图:

单片机实习总结报告

2、0到F一位静态显示程序框图:

单片机实习总结报告

3、0到9一位静态显示程序框图:

单片机实习总结报告

4、动态数码显示程序框图:

单片机实习总结报告

5、4×4矩阵矩阵键盘数码显示程序框图:

主程序图:

单片机实习总结报告

判别是否有键按下程序:

单片机实习总结报告

五、实习的心得体会

回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解,尤其是在学习使用proteus软件片编程和仿真时收获良多。通过这次单片机课程设计,还使我懂得了实践的重要性。同时在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。

本次单片机实习我们一共完成了三个模块的程序设计,包括:led显示模块、数码管显示模块和键盘模块。分别实现了流水灯的循环点亮控制、数码管的静态和动态计数显示,还有矩阵键盘按键控制数码管显示的程序设计。然后我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!

附录:程序清单

P1口闪亮:ORG 0000H

LOOP:MOV P1,#01H

ACALL DELAY

MOV P1,#00H

ACALL DELAY

SJMP LOOP

DELAY:MOV R7,#250

DEL1:MOV R6,#250

DJNZ R6,$

DJNZ R7,DEL1

RET

END

流水灯循环左移右移:

方法一:ORG 0000H

MOV A,#01H

LOOP: MOV P1,A

MOV R5,#10

LOOP1:ACALL DELAY

DJNZ R5,LOOP1

RL A

JB ACC.7, LOOP2

SJMP LOOP

LOOP2:MOV P1,A

MOV R5,#10

LOOP3:ACALL DELAY

DJNZ R5,LOOP3

RR A

JB ACC.0,LOOP

SJMP LOOP2

DELAY:MOV R7,#250

DEL1:MOV R6,#250

DJNZ R6,$

DJNZ R7,DEL1

RET

END

方法二:ORG 0000H

MOV A,#80H

LOOP:RL A

MOV P1,A

ACALL DELAY

CJNE A,#80H,LOOP

LOOP1:RR A

MOV P1,A

ACALL DELAY

CJNE A,#01H,LOOP1

SJMP LOOP

DELAY:MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

方法三:ORG 0000H

MOV A,#80H

MOV R0,#08H

LOOP:RL A

MOV P1,A

ACALL DELAY

DJNZ R0,LOOP

MOV R0,#07H

LOOP1:RR A

MOV P1,A

ACALL DELAY

DJNZ R0,LOOP1

MOV R0,#07H

SJMP LOOP

DELAY:MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

方法四:ORG 0000H

MOV A,#00H

SETB CY

LOOP:RLC A

JC LOOP1

MOV P1,A

ACALL DELAY

SJMP LOOP

LOOP1:RRC A

JC LOOP

MOV P1,A

ACALL DELAY

SJMP LOOP1

DELAY:MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

从中间向两边,再从两边向中间循环点亮: ORG 0000H

STAR:MOV R0,#00H

MOV R1,#07

MOV A,R0

MOV DPTR,#TAB

LOOP: MOVC A,@A+DPTR

MOV P1,A

MOV R5,#10

LOOP1:ACALL DEL

DJNZ R5,LOOP1

INC R0

MOV A,R0

DJNZ R1,LOOP

SJMP STAR

DEL:MOV R7,#200

DEL1:MOV R6,#250

DJNZ R6,$

DJNZ R7,DEL1

RET

TAB:DB 18H,24H,42H,81H,42H,24H,18H

END

键盘控制流水灯循环点亮:

ORG 0000H

AJMP MAIN

ORG 0003H

AJMP ET

ORG 0030H

MAIN:MOV SP,#60H

SETB EA

SETB IT0

SETB EX0

CLR C

MOV A,#0FFH

MOV P2,A

LCALL DEL

LOOP:JNB 21H.1,L ;检测标志

RRC A ;右移动

MOV P2,A

AJMP DEE

L: RLC A ;左移动

MOV P2,A

DEE: LCALL DEL

AJMP LOOP

ET: CLR EA

PUSH ACC

PUSH PSW

LCALL DELAY

MOV A,#0FFH

MOV P1,A

NOP

NOP

MOV A,P1 ;读键值

ANL A,#0F0H

CJNE A,#0F0H,NEXT1

AJMP NEXT

NEXT1:JB ACC.5,NEXT2

CLR 21H.1 ;按键后产生标志

AJMP NEXT

NEXT2:JB ACC.6,NEXT

SETB 21H.1 ;按键后产生标志

NEXT: SETB EA

POP PSW

POP ACC

HHH: RETI

DEL:MOV R6,#250

DEL11:MOV R5,#250

DJNZ R5,$

DJNZ R6,DEL11

RET

DELAY:MOV R6,#10

DEL1: MOV R5,#200

DEL2: DJNZ R5,$

DJNZ R6,DEL1

RET

END

花样流水灯:

ORG 0000H

START:MOV R0,#00H

MOV P1,#00H

LOOP:MOV A,R0

ADD A,#0CH

MOVC A,@A+PC

CJNE A,#01H,XSH

SJMP START

XSH:MOV P1,A

ACALL DELAY

INC R0

SJMP LOOP

DB0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0FH

DB0F0H,0FH,0F0H,0AAH,55H,0AAH,55H,0AAH,55H,0AAH,55H,0AAH,55H,81H,42H

DB24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H

DB42H,24H,18H,24H,42H,81H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH

DB06H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,01H

DELAY:MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

1位静态数码显示:

ORG 0000H

MOV R0,#0FFH

DISPLY: INC R0

CJNE R0,#0AH,DISPLY1

MOV R0,#0FFH

SJMP DISPLY

DISPLY1:MOV A,R0

ADD A,#06H

MOVC A,@A+PC

MOV P0,A

ACALL DELAY

SJMP DISPLY

DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

DELAY:MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

2位静态数码显示:

ORG 0000H

MOV R0,#0FFH

MOV R1,#00H

DISPLY: INC R0

CJNE R0,#0AH,DISPLY1

INC R1

CJNE R1,#0AH,DISPLY2

MOV R0,#0FFH

MOV R1,#00H

MOV P0,#0FFH

AJMP DISPLY

DISPLY2:MOV A,R1

ADD A,#10H

MOVC A,@A+PC

MOV P0,A

MOV R0,#0FFH

AJMP DISPLY

DISPLY1:MOV A,R0

ADD A,#06H

MOVC A,@A+PC

MOV P2,A

ACALL DELAY

AJMP DISPLY

DTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

DELAY:MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

3位静态数码显示:

ORG 0000H

START: MOV R0,#0FFH

MOV R1,#00H

MOV R2,#00H

MOV P3,#0FFH

MOV P2,#0FFH

MOV P0,#0FFH

DISPLY: INC R0

CJNE R0,#0AH,DISPLY1

MOV R0,#0FFH

INC R1

CJNE R1,#0AH,DISPLY2

MOV R1,#00H

MOV P2,#0C0H

INC R2

CJNE R2,#0AH,DISPLY3

SJMP START

DISPLY3:MOV A,R2

ADD A,#16H

MOVC A,@A+PC

MOV P0,A

SJMP DISPLY

DISPLY2:MOV A,R1

ADD A,#0EH

MOVC A,@A+PC

MOV P2,A

SJMP DISPLY

DISPLY1:MOV A,R0

ADD A,#06H

MOVC A,@A+PC

MOV P3,A

ACALL DELAY

SJMP DISPLY

DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

DELAY: MOV R7,#0FFH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

4位静态数码显示:

ORG 0000H

START: MOV R0,#0FFH

MOV R1,#00H

MOV R2,#00H

MOV R3,#00H

MOV P1,#0FFH

MOV P3,#0FFH

MOV P2,#0FFH

MOV P0,#0FFH

DISPLY: INC R0

CJNE R0,#0AH,DISPLY1

MOV R0,#0FFH

INC R1

CJNE R1,#0AH,DISPLY2

MOV R1,#00H

MOV P3,#0C0H

INC R2

CJNE R2,#0AH,DISPLY3

MOV R2,#00H

MOV P2,#0C0H

INC R3

CJNE R3,#0AH,DISPLY4

SJMP START

DISPLY4:MOV A,R3

ADD A,#1EH

MOVC A,@A+PC

MOV P0,A

SJMP DISPLY

DISPLY3:MOV A,R2

ADD A,#16H

MOVC A,@A+PC

MOV P2,A

SJMP DISPLY

DISPLY2:MOV A,R1

ADD A,#0EH

MOVC A,@A+PC

MOV P3,A

SJMP DISPLY

DISPLY1:MOV A,R0

ADD A,#06H

MOVC A,@A+PC

MOV P1,A

ACALL DELAY

SJMP DISPLY

DTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

DELAY: MOV R7,#0AH

DELAY1:MOV R6,#0FFH

DELAY2:MOV R5,#03H

DELAY3:DJNZ R5,DELAY3

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

74HC595四位稳定显示:

1)最大数为9999的计数器

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP CRT0

ORG 0020H

MAIN:MOV R1,#33H

MOV R2,#04H

CLEAR:MOV @R1,#33H

DEC R1

DJNZ R2,CLEAR

MOV SP,#60H

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV R7,#1

MOV DPTR,#DTAB

LOOP: MOV R1,#33H

MOV R2,#04H

MOV R3,#08H

MOV R4,#01H

LOOP1:MOV A,R3

MOV P2,A

RR A

MOV R3,A

MOV A,@R1

CJNE R4,#00H,MODE

XSH: LCALL DIS

LCALL DEL

DEC R1

DJNZ R2,LOOP1

AJMP LOOP

MODE: CJNE A,#00H,FH

MOV R4,#01H

MOV A,#0AH

SJMP XSH

FH: MOV R4,#00H

SJMP XSH

CRT0: DJNZ R7,RRR

MOV R7,#1

INC 30H

MOV R0,30H

CJNE R0,#0AH,RRR

MOV 30H,#00H

INC 31H

MOV R0,31H

CJNE R0,#0AH,RRR

MOV 31H,#00H

INC 32H

MOV R0,32H

CJNE R0,#0AH,RRR

MOV 32H,#00H

INC 33H

MOV R0,33H

CJNE R0,#0AH,RRR

MOV 33H,#00H

RRR: MOV TH0,#3CH

MOV TL0,#0B0H

RETI

DIS: MOVC A,@A+DPTR

MOV P0,A

RET

DEL: MOV R6,#20

DEL1: MOV R5,#150

DEL2: DJNZ R5,$

DJNZ R6,DEL1

RET

DTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

END

2)最高位为零时,最高位不显示

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP CRT0

ORG 0020H

MAIN: MOV R1,#33H

MOV R2,#04H

CLEAR: MOV @R1,#00H

DEC R1

DJNZ R2,CLEAR

MOV SP,#60H

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV R7,#1

MOV DPTR,#DTAB

LOOP: MOV R1,#33H

MOV R2,#04H

MOV R3,#08H

LOOP1: MOV A,R3

MOV P2,A

RR A

MOV R3,A

MOV A,@R1

LCALL DIS

LCALL DEL

DEC R1

DJNZ R2,LOOP1

AJMP LOOP

CRT0: DJNZ R7, RRR

MOV R7,#1

MOV R0,#30H

MOV R4,04H

CON: INC @R0

CJNE @R0,#0AH,RRR

MOV @R0,#00H

INC R0

DJNZ R4,CON

RRR: MOV TH0,#3CH

MOV TL0,#0B0H

RETI

DIS: MOVC A,@A+DPTR

MOV P0,A

RET

DEL: MOV R6,#20

DEL1: MOV R5,#150

DEL2: DJNZ R5,$

DJNZ R6,DEL1

RET

DTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

END

3)最大数为256的计数器

DAT DATA 30H

BW DATA 31H

SHW DATA 32H

GW DATA 33H

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP COUNT

ORG 0030H

MAIN: MOV SP,#60H

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV R7,#2

MOV DAT,#00H

LOOP: LCALL CHANGE

MOV P2,#01H

MOV A,GW

LCALL DIS

LCALL DEL

MOV P2,#02H

MOV A,SHW

LCALL DIS

LCALL DEL

MOV P2,#04H

MOV A,BW

LCALL DIS

LCALL DEL

MOV P2,#08H

MOV A ,#0AH

LCALL DIS

LCALL DEL

AJMP LOOP

COUNT: DJNZ R7,RRR

MOV R7,#2

INC DAT

RRR: MOV TH0,#3CH

MOV TL0,#0B0H

RETI

CHANGE: MOV A,DAT

MOV B,#100

DIV AB

MOV BW,A

MOV A,#10

XCH A,B

DIV AB

MOV SHW,A

MOV GW,B

RET

DIS: MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P0,A

RET

DEL: MOV R6,#20

DEL1: MOV R5,#150

DEL2: DJNZ R5,$

DJNZ R6,DEL1

RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

END

74LS4位静态数码显示:

方法一:ORG 0000H

MOV R3,#04H

MOV R0,#20H

START:LCALL DISPLAY

LCALL COUNT

LCALL DELAY

SJMP START

COUNT:INC @R0

CJNE @R0,#0AH,DON

MOV @R0,#00H

SHW: INC R0

INC @R0

CJNE @R0,#0AH,DE1

MOV @R0,#00HBW: INC R0

INC @R0

CJNE @R0,#0AH,DE2

MOV @R0,#00H

QW: INC R0

INC @R0

CJNE @R0,#0AH,DE3

MOV @R0,#00H

DE3: DEC R0

DE2: DEC R0

DE1: DEC R0

DON: RET

DISPLAY:MOV SCON,#00H

LOOP:MOV A,@R0

ADD A,#0FH

MOVC A,@A+PC

MOV SBUF,A

JNB TI,$

CLR TI

INC R0

DJNZ R3,LOOP

MOV R3,#04H

MOV R0,#20H

DON1:RET

DTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40H

DELAY:MOV R7,#50

DELAY1:MOV R6,#100

DELAY2:MOV R5,#20

DJNZ R5,$

DJNZ R6,DELAY2

DJNZ R7,DELAY1

RET

END

方法二:ORG 0000H

AJMP MAIN

ORG 000BH

AJMP COUNT

ORG 0020H

MAIN: MOV R1,#30H

MOV R2,#04H

CLEAR:MOV @R1,#00H

INC R1

DJNZ R2,CLEAR

MOV SP,#60H

MOV TMOD,#01H

MOV TH0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV R3,#3

MOV DPTR,#DTAB

MOV SCON,#00H

DISPLY:MOV R1,#30H

MOV R2,#04H

LOOP:MOV A,@R1

MOVC A,@A+DPTR

MOV SBUF,A

JNB TI,$

CLR TI

INC R1

DJNZ R2,LOOP

ACALL DEL

SJMP LOOP

COUNT:DJNZ R3,RRR

MOV R3,#3

MOV R0,#30H

MOV R4,#04H

CON:INC @R0

CJNE @R0,#0AH,RRR

MOV @R0,#00H

INC R0

DJNZ R4,CON

RRR:MOV TH0,#3CH

MOV TL0,#0B0H

RETI

DEL:MOV R6,#250

DEL1:MOV R5,#250

DEL2:DJNZ R5,$

DJNZ R6,DEL1

RET

DTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40H

END

动态数码显示:ORG 0000H

ACALL START

START1: MOV @R0,#00H

INC R0

DJNZ R2,START1

ACALL START2

COUNT: CJNE @R0,#0AH,ACALLDIS

MOV @R0,#00H

INC R0

INC @R0

CJNE R0,#34H,COUNT

ACALL START

AJMP START1

ACALLDIS:ACALL DISPLAY

INC @R0

AJMP COUNT

DISPLAY: ACALL START

MOV R4,#01H

DISPLAY1:MOV A,@R0

MOV DPTR,#DTAB

MOVC A,@A+DPTR

MOV P0,A

INC R0

MOV A,R3

MOV P2,A

RL A

MOV R3,A

ACALL DELAY

DJNZ R2,DISPLAY1

ACALL START

DJNZ R4,DISPLAY1

RET

DTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40H

START:MOV R3,#0FEH

START2:MOV R0,#34H

MOV R2,#04H

RET

DELAY:MOV R7,#088H

DEL1:MOV R6,#88H

DEL2:MOV R5,#01H

DEL3:DJNZ R5,DEL3

DJNZ R6,DEL2

DJNZ R7,DEL1

RET

END

独立键盘加减清零数码显示:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit key1=P3^4;

sbit key2=P3^5;

sbit key3=P3^6;

sbit key4=P3^7;

sbit dula=P2^6;

sbit wela=P2^7;

uchar code table[]=

{0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

void delayms(uint);

uchar numt0,num;

void display(numdis)

{uchar shi,ge;

shi=numdis/10;

ge=numdis%10;

wela=1;

P0=0xfe;

wela=0;

dula=1;

P0=table[shi];

dula=0;

P0=0xff;

delayms(5);

wela=1;

P0=0xfd;

wela=0;

dula=1;

P0=table[ge];

dula=0;

P0=0xff;

delayms(5);}

void delayms(uint x)

{uint i,j;

for(i=x;i>0;i--)

for(j=110;j>0;j--);}

void init()

{TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;}

void keyscan()

{if(key1==0)

{delayms(10);

if(key1==0)

{num++;

if(num==60)

num=0;

while(!key1);}}

if(key2==0)

{delayms(10);

if(key2==0)

{ if(num==0)

num=60;

num--;

while(!key2); }}

if(key3==0)

{delayms(10);

if(key3==0)

{num=0;

while(!key2);}}

if(key4==0)

{delayms(10);

if(key4==0)

{ while(!key4);

TR0=~TR0;}}}

void main()

{init();

while(1)

{keyscan();

display(num);}}

void T0_time() interrupt 1

{TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

numt0++;

if(numt0==20)

{numt0=0;

num++;

if(num==60)

num=0;}}

矩阵键盘0到F显示:

KEY_DATA DATA 30H

ORG 0000H

MOV KEY_DATA,#10H

AJMP MAIN

ORG 0030H

MAIN:MOV SP,#60H

LOOP:LCALL SCAN

MOV A,KEY_DATA

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P0,A

LCALL DEL

AJMP LOOP

SCAN:MOV A,#0FH

MOV P1,A

MOV A,P1

CJNE A,#0FH,KEYSCAN

RET

KEYSCAN:LCALL DEL

MOV R2,#7FH

MOV R3,#4

MOV R0,#00H

KEYSM1:MOV A,R2

MOV P1,A

RR A

MOV R2,A

MOV A,P1

ANL A,#0FH

CJNE A,#0FH,JSADD

INC R0

DJNZ R3,KEYSM1

RET

JSADD: JB ACC.0,JSADD1

MOV A,#0

AJMP JSADD4

JSADD1:JB ACC.1,JSADD2

MOV A,#4

AJMP JSADD4

JSADD2:JB ACC.2,JSADD3

MOV A,#8

AJMP JSADD4

JSADD3:JB ACC.3,JSADD4

MOV A,#12

JSADD4:ADD A,R0

MOV KEY_DATA,A

DEL: MOV R6,#50

DEL1: MOV R5,#200

DJNZ R5,$

DJNZ R6,DEL1

RET

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

END

更多相关推荐:
单片机实习报告总结

这次实习我们使用控制电路的单片机是at89s51型号的。通过它实现对八盏双色灯发光二极管的控制p0和p2口控制四盏灯。在at89s51的9引脚接复位电路,对电路实现复位控制。在电路中接入74s164译码器和共阴…

单片机实训报告心得

广东轻工职业技术学院实训报告实训项目单片机实训系别:电子通信工程系专业:应用电子技术班级:嵌入式091班姓名:**学号:***指导老师:***实训地点:第三实训楼C309实训时间:20**年1月10日至1月14…

单片机实习报告

电子与信息工程学院程设计报(20##20##学年第2学期)课程名称:创新课题课程设计班级:电子0801学号:15姓名:指导教师:20xx年03月课告实习报告

单片机实习报告

温度控制系统设计目名院业级号导教师基于51单片机的温度控制系统设计王金辉王涌工学院自动化自动化919xxxxxxxxxxxx9104刘瑛樱吕成绪职称辅导员讲师20xx年6月7日南京农业大学教务处制1题姓学专班...

单片机实习报告

单片机实习报告单片机gt实习报告一这次实习我们使用控制电路的单片机是AT89S51型号的通过它实现对八盏双色灯发光二极管的控制P0和单片机实习报告总结正文开始这次实习我们使用控制电路的单片机是AT89S51型号...

51单片机实训报告

51单片机精简开发板的组装及调试实训报告为期一周的单片机实习已经结束了通过此次实训让我们掌握了单片机基本原理的基础单片机的编程知识以及初步掌握单片机应用系统开发实用技术了解51单片机精简开发板的焊接方法同时培养...

单片机实训报告

单片机实训报告姓名学号班级指导老师实训时间前言一周的单片机实训很快就结束咯在这一周的时间里我学到了很多关于单片机各方面的知识老师在实训课中也教会咯我们很多关于单片机软件编程与硬件设施的知识一周的实训中我们一共实...

单片机实训报告

单片机实训报告学院专业姓名指导老师20xx年12月29日一实训目的1熟悉单片机应用系统的开发研制过程2能运用MCS51单片机进行简单的单片机应用系统的硬件设计3能采用MCS51单片机汇编语言进行简单的单片机应用...

单片机实训报告

目录一概述11设计制作产品的背景目的意义12设计制作产品的设计要求13分工情况工作计划及本人所总结工作14本课题的基本内容重点及难点二正文21实验原理22实验流程图23硬件设计24软件设计25C语言程序26简易...

单片机实训报告

基于51单片机的多模式彩灯控制器程序设计多模式彩灯控制器课程设计报告设计题目基于80C51单片机制作的彩灯控制器系别电气工程学院专业应用电子技术作者学号指导老师黄京老师日期20xx01222基于51单片机的多模...

单片机实训报告

旋转电子时钟设计与制作实训报告学生姓名吴军新卢裕达杜秋燕学号121323410212132341341213234141专业班级应用电子121班指导教师徐操喜香永辉20xx年6月30日单单片片机机实实训训1目录...

单片机实训报告

湖南电子科技职业学院单片机原理及应用综合实训报告分院机械与电子信息工程分院专业汽车电子技术班级姓名时间20xx年11月日至20xx年12月日一实验器材1单片机开发板2编程软件3下载软件4计算机二器材图片下载软件...

单片机实习报告总结(32篇)