1、 MOV R5,#30 JMP DE1DE05S: MOV R5,#05DE1: MOV R6,#200DE2: MOV R7,#126DE3: DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1 RET END2、单灯闪烁程序: ORG 0000H CLR P0.63、流水灯程序: SETB P0.6 SETB P1.7 CLR P0.7 CLR P0.6 SETB P0.7 CLR P1.7 SETB P0.6 DJNZ R7,DE3 DJNZ R6,DE2 END 4、花样灯程序:ORG 0000HSJMP MAINORG 0030H MOV A,#000H MOV
2、P0,A LCALL DE3S MOV A,#0FFH LCALL DE3S MOV A ,#0FEH MOV R1,#0008LOOP1: RL A LCALL DE05S DJNZ R1,LOOP1 MOV A,#07EH MOV A,#0BDH MOV A,#0DBH MOV A,#0E7H MOV A,#0FEHLOOP2: RR A DJNZ R1,LOOP2 AJMP MAIN JMP DE1 MOV R5,#05 DJNZ R7,DE3 DJNZ R6,DE2 DJNZ R5,DE1感受: 通过对这次单片机的实践,我对单片机有了更深的理解。虽然只是一些比较简单的设计,但是我们还是
3、把书翻了好几遍,对上学期的学习还是忘了一些,可能是放假的缘故吧! 不管怎么样,51单片机的设计,给我们的学习更进了一步,使我们的基础业更牢固了,这一点我很庆幸。项目二:定时器和计数器系统的制作实验目的:掌握定时器和计数器的使用方法,深入理解定时器和计数器的工作过程,学会用正确的语言编写定时器和计数器程序的方法。实验设备:最小系统一套,PC机一台,KEIL软件一套,烧录软件一套。实验说明:L0-L7顺序接到P0.0-P0.7引脚上。实验内容:1.单灯闪烁。用查询方式和中断方式点亮P0.0口的灯,要求亮50ms,熄50ms。 2.两灯互闪。用查询方式使P0.0和P0.1两灯按1s互相闪动。 3.用
4、定时计数器0产生秒钟、分针、时钟,并分别用三只灯的亮与熄表示(闪烁)。2011年10月14日程序如下:(1)、单灯闪烁: 1、查询方式:ORG 0000H SJMP MAIN ORG 0030H MOV TMOD,#01H MOV TH0,#9EH MOV TL0,#58H CLR P0.0 LCALL DELAY SETB P0.0DELAY:SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET END 2、中断方式: ORG 0000H ORG 000BH AJMP SER_T0 MOV TMOD,#01H SETB EA SETB ET0 SETB TR0 AJM
5、P $SER_T0: MOV TH0,#9EH CPL P0.0 RETI(2)、两灯互闪: MOV TH0,#63H MOV TL0,#18H MOV 30H,#200SETB P0.0 CLR P0.1 SETB P0.1 SETB TR0 DJNZ 30H,DELAY(3)、时间显示: MOV TMOD,#00H MOV TH1,#63H MOV TL1,#18H MOV 30H,#200 MOV R0,#0030 MOV R1,#0001 MOV R3,#0030LOOP: SETB P0.1 SETB P0.2 CLR P0.0 LCALL DELAY SETB P0.0 DJNZ
6、R0,LOOP CLR P0.1 SETB P0.1 DJNZ R1,LOOP1 DJNZ R3,MAIN CLR P0.2 DJNZ R1,LOOP2 SETB TR1 JNB TF1,$ CLR TR1 CLR TF1 DJNZ 30H,DELAY实训心得:通过上学期对单片机的学习经验,对于这次关于单片机的实训,我又从中学到了一些知识! 经上次的学习实践,通过老师的讲解和查阅资料,我了解到了单片机是一个很有难度的课程。本次又在上次的基础上给我们的任务是关于一些中断方面和定时计数方面的课题,在编程序的时候感觉到有些困难,这些是我在以前的学习中没有掌握牢固的,所有我们一直在翻阅书本,使自己能够
7、更好的运用。通过这次实训,在单片机的认识和学习上,我感觉又有了新的提升!同时也对单片机更浓厚的兴趣!在今后的学习中,我会再接再厉!项目三 44矩阵式键盘识别技术 设计者:徐升 学号:09050312032011-11-041 实验任务 如图2所示,用AT89S51的并行口P1接44矩阵键盘,以P1.0P1.3作输入线,以P1.4P1.7作输出线;在数码管上显示每个按键的“0F”序号。对应的按键的序号排列如图1所示 图.1 2 硬件电路原理图 图23 系统板上硬件连线 (1 把“单片机系统“区域中的P3.0P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1C4 R1R4端口上;(2 把
8、“单片机系统”区域中的P0.0/AD0P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个ah端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,P0.7/AD7对应着h。4 程序设计内容 (1 44矩阵键盘识别处理 (2 每个按键有它的行值和列值 ,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;5程序框图:COUNT EQU
9、30H ORG 0000H LJMP START ORG 0003H RETI ORG 000BH ORG 0013H ORG 001BH ORG 0023H ORG 002BH ORG 0100H START: LCALL CHUSHIHUA LCALL PANDUAN LCALL XIANSHI LJMP START CHUSHIHUA: MOV COUNT,#00H RET PANDUAN: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ SW1 LCALL DELAY10MS MOV A,P3 CJNE A,#0EH,K1
10、 MOV COUNT,#0 LJMP DK K1: CJNE A,#0DH,K2 MOV COUNT,#4 LJMP DK K2: CJNE A,#0BH,K3 MOV COUNT,#8 K3: CJNE A,#07H,K4 MOV COUNT,#12 K4: NOP SW1: MOV P3,#0FFH CLR P3.5 ANL A,#0FH XRL A,#0FH JZ SW2 LCALL DELAY10MS JZ SW2 MOV A,P3 CJNE A,#0EH,K5 MOV COUNT,#1 LJMP DK K5: CJNE A,#0DH,K6 MOV COUNT,#5 K6: CJNE
11、A,#0BH,K7 MOV COUNT,#9 K7: CJNE A,#07H,K8 MOV COUNT,#13 K8:SW2: CLR P3.6 XRL A,#0FH JZ SW3 CJNE A,#0EH,K9 MOV COUNT,#2 K9: CJNE A,#0DH,KA MOV COUNT,#6 KA: CJNE A,#0BH,KB MOV COUNT,#10 KB: CJNE A,#07H,KC MOV COUNT,#14 KC:SW3: CLR P3.7 JZ SW4 LCALL DELAY10MS CJNE A,#0EH,KD MOV COUNT,#3 KD: CJNE A,#0DH
12、,KE MOV COUNT,#7 KE: CJNE A,#0BH,KF MOV COUNT,#11 KF: CJNE A,#07H,KG MOV COUNT,#15 KG:SW4: LJMP PANDUAN DK: RET XIANSHI: MOV A,COUNT MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A LCALL DELAY SK: ANL A,#0FH XRL A,#0FH JNZ SK DELAY10MS: MOV R6,#20 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 MOV R5,#20 DJNZ R5,LOOP
13、TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H END 心得体会:经过本周的单片机实习课,我个人有不少收获,本周的项目课程是44矩阵式键盘识别技术。使我从硬件软件的结合上理论联系实际,提高动手能力,从而更全面掌握单片机的应用。通过单片机实验的编制和调试使我对硬件设计及调试更生科的了解。使我更进一步掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法。在今后的学习中,我会更加努力的学习相关知识,以使自己的专业水平有一个提高。项目四 报警产生器 (设计者:徐 升 0
14、9电仪2班 0905031203)(设计时间:2011-11-06)用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开关合上响报警信号,当开关断开告警信号停止,编出程序。2 电路原理图 图4.6.1 (1 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;(2 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧的或者是16欧的喇叭;(3 把“单片机系统”区域中的P1.7/RD端口用导线连接到“四路拨动开关”区域中的K1端口上;(1
15、 信号产生的方法 500Hz信号周期为2ms,信号电平为每1ms变反1次,1KHz的信号周期为1ms,信号电平每500us变反1次;5 程序框图 (此程序采用的是单片机自带开关(P3.3)不是外接开关,蜂鸣器也为自带(P1.7)。故与上面描述有出入)MAIN BIT 00H SJMP START ORG 0030H JB P3.3,START JNB MAIN,NEXT MOV R2,#200 DV: CPL P1.7 LCALL DELY500 DJNZ R2,DV CPL MAIN NEXT:DV1: DJNZ R2,DV1 SJMP START DELY500: MOV R7,#250 DJNZ R7,LOOP 1、万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口。2、知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。3、程序不要光看不写,一定要自己写一次。最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距。当你自己能写出来的时候,说明你就真的懂了。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1