中南民族大学。
计算机科学学院。
单片机课程设计报告。
课程。设计题目。
年级专业 09自动化
学号。学生姓名。
指导教师。2023年 12 月 11 日。
课程设计量化评分标准。
指导老师评语:
设计题目: 中断控制的节日彩灯控制器。
一、 要求。
用单片机的中断功能控制节日彩灯,要求至少有四种显示方式。
二、 分析。
从题目知,要运用到单片机的中断功能,中断控制,顾名思义,在单片机进入中断后要执行相应的操作从而实现控制的功能;节日彩灯,其实就是流水灯,只要输出不同的流水灯,便可以达到题目要求。
三、 设计。
1、硬件设计(包括设计方案及说明、完整的硬件连接图等)
1).方案及说明。
根据实验室现有资源,实验台只引出p1口作为扩展i/o用,故将实验台上的彩灯接至扩展接口p1上,当作彩灯,模拟现实中的彩灯系统。
2).硬件连接图。
p1接口。中断电路、指示电路。
2、软件编程(包括流程图、完整的汇编源程序及其注释)
1.主程序流程图2.中断函数流程图。
汇编程序清单:
org 0000h
ajmp main上电转向主函数。
org 0003h外部中断0入口地址。
ajmp key_select转向中断函数。
org 0030h主函数。
main:主函数。
setb ex0允许外部中断。
setb it0选择边沿触发。
setb ea开外部中断。
setcount:
mov r1,#0给模式变量赋初值。
while1:
j0: cjne r1,#0,j1 ;判断是否为模式0,不是则转移判断是否为模式1
lcall main0是则调用模式0函数。
j1: cjne r1,#1,j2 ;判断是否为模式1,不是则转移判断是否为模式2
lcall main1是则调用模式1函数。
j2: cjne r1,#2,j3 ;判断是否为模式2,不是则转移判断是否为模式3
lcall main2是则调用模式2函数。
j3: cjne r1,#3,j4 ;判断是否为模式3,不是则转移判断是否为模式4
lcall main3是则调用模式3函数。
j4: cjne r1,#4,j5 ;判断是否为模式4,不是则转移判断是否为模式5
lcall main4是则调用模式4函数。
j5: cjne r1,#5,while1 ;判断是否为模式5,不是则转移判断是否为模式1
sjmp setcount ;是则对计数寄存器r1重新赋初值。
花样一。main0:
mov p1,#0ffh
mov p3,#0f7h ;初始化io口。
lcall delay
d0_1:mov a,#0ffh
light0_p1:;依次点亮p1
rl aanl a,#0feh累加器的值和1111 1110与运算,即最低位=0
mov p1,ap1口显示。
lcall delay延时。
jz return1判断累加器a内容是否为零,否则往下运行。
sjmp light0_p1
return1:
ret花样二。
main1:
mov p1,#0ffh
mov p3,#0e7h
lcall delay初始化io
d1_021:
mov a,#0ffh;0001 0010
light1_p012:;p1口依次点亮。
rl aanl a,#0feh累加器的值和1111 1110与运算,即最低位=0
mov p1,a
lcall delay
jz down1_p012 ;判断累加器a内容是否为零,否则往下运行。
sjmp light1_p012
down1_p012:;p1依次熄灭。
rr a累加器a右移一位。
orl a,#80h累加器的值和1000 0000或运算,即最高位=1
mov p1,ap1口显示。
lcall delay
cjne a,#0ffh,down1_p012
ret花样三。
main2:
mov p1,#0ffh ;p1口显示。
mov p3,#0c7h
lcall delay初始化io
d2_1_1:
mov a,#7fh
mov r0,#8初始化。
down2_1:;p1口单个流水灯。
mov p1,a
lcall delay
rr adjnz r0,down2_1
d2_2_2:
mov a,#7fh
mov p1,#0ffh ;关闭p1口。
mov r0,#
ret花样四。
main3:
mov p1,#0ffh
mov p3,#87h
lcall delay初始化io
d3_01:
mov a,#0ffh
light3_p01:;p1口同时依次点亮。
rl aanl a,#0feh
mov p1,ap1口显示。
lcall delay
jz d3_02判断累加器a内容是否为零,否则往下运行。
sjmp light3_p01
d3_02:
mov r2,#5装入连续闪动的次数。
light3_p02:
mov p1,#0p1口全亮。
lcall delay延时。
mov p1,#0ffh ;p1全灭。
lcall delay延时。
djnz r2,light3_p02 ;判断r2内内容是否为零,否则跳转
ret花样五。
main4:
mov p1,#0ffh
mov p3,#07hp1同时熄灭
lcall delay ;延时。
mov p1,#
lcall delay ;p1同时点亮。
ret 延时函数。
delay:
mov r6,#
delay2:
mov r7,#
djnz r7,$
djnz r6,delay2
retkey_select:
inc r1
retiend
3、调试说明。
首先用keil软件新建一个工程,将**输入并编译生成单片可执行的hex文件。其次,用stc-isp烧录软件,将hex文件烧录入单片机中。最后按硬件接线图将硬件电路接好,注意将实验台上的外部中断0跳线夹接上,以便接受外部中断请求。
准备工作做好后,接通主板电源,单片机会自动从第一种显示方式开始显示,按下外部中断请求,看彩灯显示方式是否发生变化,否则检查硬件电路是否按要求接好,重新连接后重新进行调试。
4、设计结果及错误分析。
本程序实现的功能是,通过外部中断按键,控制多种节日彩灯之间的变换。本设计功设计了五种彩灯显示模式:1-依次点亮、2-依次点亮依次熄灭、3-单个流水灯、4-依次点亮同时闪灭、5-同时点亮同时熄灭。
通过实际电路的调试,本设计符合课程设计要求。
调试过程中,按原理图接线后**程序,发现有一个灯保持为亮状态,第一次判断为单片机i/o口已损坏,但是换用其他单片机还出现同样的问题,故猜测是硬件电路问题,通过观察实验板,发现是实验板上的跳线夹未移除,移除跳线夹后,电路显示正常,符合程序设计要求,彩灯效果明显,完全达到设计结果。
四、 总结。
本次课程设计的编程设计涉及单片机的中断控制操作,在完成设计过程中让我对单片的中断操作有了进一步的了解,同时也对单片机中断执行过程有了更深的认识,不仅如此,我还掌握了一些汇编语言的编程技巧。除此之外,本次设计过程虽然简单,但是硬件调试方面还存在一些问题,通过自己的观察和动手改正,顺利完成了课程设计要求,这在一定程度上锻炼了自己的动手实践操作能力。
虽然,本设计综合成本较低,编程简单,操作方便,硬件经济,但在实际生活中却有着举足轻重的作用,由于硬件经济,故可大量制作,因其操作方法简单,故可以在生活中推广应用,其编程的轻便性,这可以根据不同用户的不同需求,设计出各种各样的彩灯显示方案。
单片机课程设计报告
单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....
单片机课程设计报告
韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...
单片机课程设计报告
南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...