单片机实习彩灯.docx
- 文档编号:6249345
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:82.89KB
单片机实习彩灯.docx
《单片机实习彩灯.docx》由会员分享,可在线阅读,更多相关《单片机实习彩灯.docx(15页珍藏版)》请在冰豆网上搜索。
单片机实习彩灯
单片机原理与接口技术课程设计报告
姓名
所在学院电气与电子工程学院
专业班级
学号
指导教师邸建红
日期2011年7月2日
彩灯控制设计报告
一、实验目的
1、使学生对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
2、使学生增进对单片机的感性认识,加深对单片机理论方面的理解。
3、使学生掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。
4、使学生了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。
5、通过小组内部讨论和合作,培养学生团队合作精神和分析问题、解决问题的能力。
二、设计要求
1.花型种类不少于四种,花型自拟;
2.可用键控制彩灯按预设的花型进行变换;
3.可用键控制分别用快/慢两种节拍实现花型变换。
本机地址为00H,当接到上位机发的00H时,则回发00H
当接到上位机发的AAH时,则将预设花型代号发出
当收到55H时,则后面的数据为新的花型
三、原理图
该原理图中通过P2口来实现彩灯花型的输出,外部中断0实现对彩灯变换的开与关,外部中断1实现对彩灯变换快慢两种节拍的控制。
RXD和TXD实现主机对从机的呼叫以及相互间的数据传送。
本次设计采用AT89S51系列单片机来实现相关的控制。
四、系统流程图
主程序流程图
主从机通信流程图
五、程序
ORG0000H
AJMPMAIN
ORG0003H;外中断0入口地址
LJMPINT0
ORG000BH;定时器中断T0入口地址
LJMPTM0
ORG0013H;外中断1入口地址
LJMPINT1
ORG0023H;串行中断入口地址
LJMPCUK
ORG0100H
MAIN:
MOVTMOD,#21H;定义定时器T0,T1,赋初值
MOVTL1,#0FCH
MOVTH1,#0FCH
MOVTH0,#3CH
MOVTL0,#0B0H
SETBEA;开中断
SETBES
SETBEX0
ETBEX1
SETBIT0
SETBIT1
SETBPX0;设定外中断0,1和定时中断为高优先级
SETBPX1
SETBPT0
MOVPCON,#00H
MOVSCON,#0F0H
SETBTR1
MOVR7,#96
MOVR6,#191
MOVR5,#00H
CLRF0;F0,R0和R3相当于软开关
MOVR0,#00H
MOVR3,#00H
MOVP2,#0FFH;将P2口电位抬高,是灯全灭
SJMP$;等待
INT0:
JBF0,A1;外中断0服务程序
SETBET0;开定时器T0
SETBTR0
SETBF0
SJMPA2
A1:
CLRF0;关定时器T0
CLRET0
CLRTR0
MOVR5,#00H;重新初始化
MOVR3,#00H
MOVR0,#00H
MOVR7,#96
MOVR6,#191
MOVP2,#0FFH
A2:
RETI
INT1:
CJNER0,#00H,A3;外中断1服务程序
INCR0
MOVR3,#01H;R3为定时器中的软开关
CJNER5,#00H,D1;判断彩灯的当前花型,使彩灯从快节拍跳变到慢节拍
MOVR4,A
ADDA,R4
INCA
MOVR6,A
D1:
CJNER5,#01H,D2
MOVR4,A
ADDA,R4
INCA
MOVR6,A
D2:
CJNER5,#02H,D3
MOVR4,A
ADDA,R4
INCA
MOVR6,A
D3:
CJNER5,#03H,D4
MOVR4,A
ADDA,R4
INCA
MOVR6,A
D4:
SJMPD5
D5:
SJMPA4
A3:
MOVR0,#00H
MOVR3,#00H
CJNER5,#00H,E1;判断彩灯的当前花型,使彩灯从慢节拍跳变到快节拍
MOVB,#2
DIVAB
INCA
MOVR7,A
E1:
CJNER5,#01H,E2
MOVB,#2
DIVAB
INCA
MOVR7,A
E2:
CJNER5,#02H,E3
MOVB,#2
DIVAB
INCA
MOVR7,A
E3:
CJNER5,#03H,E4
MOVB,#2
DIVAB
INCA
MOVR7,A
E4:
AJMPA4
A4:
RETI
K:
LJMPM0
TM0:
MOVTH0,#3CH;定时器T0中断服务程序,定时器赋初值
MOVTL0,#0B0H
CJNER3,#00H,K
DECR7;快节拍彩灯
MOVA,R7
CJNER5,#00H,B5;第一种花型入口
CJNEA,#95,B1
MOVP2,#0FCH
B1:
CJNEA,#90,B2
MOVP2,#0F0H
B2:
CJNEA,#85,B3
MOVP2,#0C0H
B3:
CJNEA,#80,B4
MOVP2,#00H
B4:
CJNEA,#75,B5
MOVP2,#0FFH
INCR5
B5:
CJNER5,#01H,B10;第二种花型入口
CJNEA,#70,B6
MOVP2,#0E7H
B6:
CJNEA,#65,B7
MOVP2,#0C3H
B7:
CJNEA,#60,B8
MOVP2,#81H
B8:
CJNEA,#55,B9
MOVP2,#00H
B9:
CJNEA,#50,B10
MOVP2,#0FFH
INCR5
B10:
CJNER5,#02H,B15;第三种花型
CJNEA,#45,B11
MOVP2,#7EH
B11:
CJNEA,#40,B12
MOVP2,#3CH
B12:
CJNEA,#35,B13
MOVP2,#18H
B13:
CJNEA,#30,B14
MOVP2,#00H
B14:
CJNEA,#25,B15
MOVP2,#0FFH
INCR5
B15:
CJNER5,#03H,G0;第四种花型
CJNEA,#20,B16
MOVP2,#0AAH
B16:
CJNEA,#15,B17
MOVP2,#55H
B17:
CJNEA,#10,B18
MOVP2,#00H
B18:
CJNEA,#5,B19
MOVP2,#0FFH
B19:
CJNEA,#0,G0
MOVR5,#00H
MOVR7,#96
G0:
RETI;中断返回
M0:
DECR6;慢节拍
MOVA,R6
CJNER5,#00H,M5;第一种花型
CJNEA,#190,M1
MOVP2,#0FCH
M1:
CJNEA,#180,M2
MOVP2,#0F0H
M2:
CJNEA,#170,M3
MOVP2,#0C0H
M3:
CJNEA,#160,M4
MOVP2,#00H
M4:
CJNEA,#150,M5
MOVP2,#0FFH
INCR5
M5:
CJNER5,#01H,M10;第二种花型
CJNEA,#140,M6
MOVP2,#0E7H
M6:
CJNEA,#130,M7
MOVP2,#0C3H
M7:
CJNEA,#120,M8
MOVP2,#81H
M8:
CJNEA,#110,M9
MOVP2,#00H
M9:
CJNEA,#100,M10
MOVP2,#0FFH
INCR5
M10:
CJNER5,#02H,M15;第三种花型
CJNEA,#90,M11
MOVP2,#7EH
M11:
CJNEA,#80,M12
MOVP2,#3CH
M12:
CJNEA,#70,M13
MOVP2,#18H
M13:
CJNEA,#60,M14
MOVP2,#00H
M14:
CJNEA,#50,M15
MOVP2,#0FFH
INCR5
M15:
CJNER5,#03H,G1;第四种花型
CJNEA,#40,M16
MOVP2,#0AAH
M16:
CJNEA,#30,M17
MOVP2,#55H
M17:
CJNEA,#20,M18
MOVP2,#00H
M18:
CJNEA,#10,M19
MOVP2,#0FFH
M19:
CJNEA,#0,G1
MOVR5,#00H
MOVR6,#191
G1:
RETI;中断返回
CUK:
PUSHA;串行中断服务程序
CLRRI
MOVA,SBUF;接收地址,判断与本从机地址是否一致
XRLA,#00H
JZS1
RETU:
POPA
RETI
S1:
CLRSM2
MOVA,#00H
MOVSBUF,A
JNBRI,$
CLRRI
JNBRB8,S2
SETBSM2
SJMPRETU
S2:
MOVA,SBUF;接收指令,判断是AA还是55
CJNEA,#0AAH,AA1;若是AA,将预设花型发给主机
MOVA,#7FH
SETBACC.1
MOVSBUF,A
JNBTI,$
CLRTI
LCALLDELAY
MOV60H,#5
CDZ:
MOVSBUF,R5
JNBTI,$
CLRTI
LCALLDELAY
DJNZ60H,CDZ
SETBSM2
SJMPRETU
AA1:
CJNEA,#55H,BB1;若是55,接收主机数据
MOVA,#7FH
SETBACC.0
MOVSBUF,A
JNBTI,$
CLRTI
LCALLDELAY
MOVR2,#3
MOVR1,#40H
ZDC:
JNBRI,$
CLRRI
MOV@R1,SBUF
INCR1
DJNZR2,ZDC
SETBSM2
SJMPRETU
BB1:
MOVSBUF,#80H;不识别指令,就回发80H
JNBTI,$
CLRTI
SJMPRETU
DELAY:
MOV30H,#0FFH;延时程序
FF:
MOV31H,#0FFH
DJNZ31H,$
DJNZ30H,FF
RET
END;结束
六、心得体会
做了一周的课程设计,让人感受颇深,我们小组一共3个人,人多,分工就显得很重要,在我们的集体的讨论之下,我得到了设计硬件电路和总体调试的任务,当时让我感到很有压力。
因为我们平时接触的都是纯粹理论的东西,做实验也是雾里看花,对硬件的认识是很缺乏的。
一回我就去图书馆和网上查阅了大量的单片机和数字芯片的资料,由于资料比较分散,所以整理有用的资料就显得很重要,有些东西实在是不懂我就把资料带回来请教同学,让我受益匪浅。
在硬件电路的设计中,由于要涉及软件设计的具体情况,又和组员共同讨论,最终确定了一个大家都可以接受的方案。
当时感觉这下任务该完成了,没有想到的是在实际的调试中更是遇到了太多的麻烦。
在焊接电路过程中由于我们是在电路板后面接得导线,所以有时不仔细的话,就会造成线路短路的情况出现。
幸好我们仔细检查了电路板的接线情况,把挨得较近的焊点都进行了处理,使它们尽量避免接触造成短路。
我们拿着设计好的电路接线图和设计的程序去实验室调试,另人兴奋的是我们第一次就实现了程序。
接下来我们又把主从机通信的部分加到了程序中,虽然失败了很多次,但通过我们不断的修改,终于还是成功了,那时真的是非常高兴。
很感谢学校和老师给我们安排了这次课程设计,让我真正感受到的是合作的重要,许多时候都是组员的讨论,老师的指导中的一句半句启发了我,就出现的让人欣喜的结果;理论知识同样很重要,有些问题都是由于基础知识掌握不好才出现的。
附录1元件清单
AT89C51单片机芯片
1个
1K电阻
8个
LED灯
8个
10uF电解电容
1个
30uF电容
2个
12M晶振
1个
2K电阻
2个
按钮
3个
附录2焊接电路板
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实习 彩灯
![提示](https://static.bdocx.com/images/bang_tan.gif)