课程设计目
单片机原理应课程设计项重实践性教育环节学生校期间必须接受项工程训练课程设计程中教师指导运工程方法通简单课题设计练学生初步体验单片机应系统设计程设计求完成工作容具体设计方法解必须提交项工程文件达巩固充实综合运学知识解决实际问题目
通课程设计应加强学生力培训:
(1) 独立工作力创造力
(2) 查阅图书资料产品手册种工具书力
(3) 工程绘图力
(4) 编写技术报告编制技术资料力
(5) 综合运专业基础知识解决实际工程技术问题力
二设计求
21总体求
(1) 独立完成设计务
(2) 绘制系统硬件总框图
(3) 绘制系统原理电路图
(4) 制定编写设计方案编制软件框图完成详细完整程序清单注释
(5) 制定编写调试方案编写户操作说明书
(6) 写出设计工作结完成文件程进行关步骤设计思想指标证方案确定参数计算元器件选择原理分析等作出说明完成设计作出评价整设计工作中验教训总结收获研修方
22 具体求
次工程实践校部分单片机基础进行单片机软件编程目提高学生软件编程系统设计力整设计系统包括两部分硬件软件部分硬件部分已制作成功学生需掌握原理焊接相应元器件掌握元器件辨元器件作应场外焊接电路需进行仔细检查判断否焊接错误方者短路方出现异常情况够根现象判原具备解决问题力切实提高学生硬件电子电路分析判断力
软件编程次工程实践重环节期两周工程实践中占时间学生完成软件编程务包括点:
1)熟悉Keil C51编程台相关编程软件
2)编写调试蜂鸣器继电器动作方波程序进行软硬件联调
3)编写调试LED流水灯(循环显示)程序进行软硬件联调
4)编写调试键盘扫描子程序进行软硬件联调
5)编写调试数码动态扫描程序进行软硬件联调
6)电子钟设计(包括键盘时钟显示等)
7)作息时间控制系统设计(包括键盘显示时钟报警等)
8)智交通灯控制系统设计
9)车速里程测量显示设计
三设计容方法
单片机原理应课程设计通常选择般常见常简单应装置象进行微机控制涉系统实际制作实验室模拟具体步骤容:
31设计准备
认真研究设计务书明确设计求条件容步骤通阅读关资料解设计象复课程关容熟悉关单元电路设计方法设计步骤搜集分析消化相关资料软件等掌握微型计算机应系统软件设计方法准备设计需图书资料工具拟定设计计划等
32功设计系统总体设计
求学生创新精神创新意识分析掌握资料解设计象功充分考虑功设计进行总体设计功结构标制定总体方案规划硬软件功分配等初步确定关键元器件选择
四硬件电路总体设计
41 硬件总框图
控电路
键控制扫描模块
DS1302实时时钟模块
数码显示模块
LED显示模块
扬声器模块
原理说明:
电路单片机AT89C52控电路分连接键控制扫描模块时钟模块数码显示模块LED显示模块扬声器模块首先键扫描模块四键分控制数码显示LED显示扬声器工作P0口控制段选显示相应数值P1口控制数码位选显示相应数值位选控制部分采9012型三极求P1口输出低电时位选成功该位选数码亮数码显示时分通键1控制P2口作输出口控制LED亮灭亮需P20P27口保持低电 8灯亮起时通P34端控制蜂鸣器发生P34输出低电时候蜂鸣器发出声音键3时蜂鸣器发声通键4实现作息时间控制功
411 控电路
次课程设计中设计作息时间控制功控制系统该设计中控电路部分采单片机AT89C52芯片实现功AT89C52低电压高性CMOS8位单片机片含8KB反复擦写Flash读程序存储器256B机存取数存储器(RAM)引脚图示:
图1AT89C52引脚图
VCC:供电电压
GND:接
P0口(P00P07):P0口控制数码段选显示相应数值
P1口 (P10P17):P1口控制数码位选达动态显示效果
P2口 (P20P27):P2口控制LED亮灭
P3口 (P30P37):P30RXD(串行输入口)P31TXD(串行输出口)P32INT0(外部中断0)P33INT1(外部中断1)P34T0(记时器0外部输入)
P35T1(记时器1外部输入)P36WR(外部数存储器写选通)P37RD(外部数存储器读选通)
XTAL1(19 脚)XTAL2(18 脚)振荡器输入输出端口外接12MHz 晶振RSTVpd(9 脚)复位输入端口外接电阻电容组成复位电路VCC(40 脚)VSS(20 脚)供电端口分接+5V电源正负端P0~P3 编程通IO 脚功途软件定义
412 键控制扫描模块
键控制数码显示LED显示扬声器等模块工作通扫描键否设定模块工作情况模块键控制序进行工作设计中单键实现单功属较简单控制方式
图2键输入电路
功系统设计实验中中四键分单片机P14P15P16P17相连键1控制数码显示键2控制LED流水灯键3控制蜂鸣器发声键4控制作息时间通相应键处理相应程序
413 DS1302实时时钟模块
图3DS1302模块电路图
DS1302 美国DALLAS公司推出种高性低功耗带RAM实时时钟电路年月日周日时分秒进行计时具闰年补偿功工作电压25V~55V采三线接口CPU进行步通信采突发方式次传送字节时钟信号RAM数DS1302部31×8时性存放数RAM寄存器DS1302DS1202升级产品DS1202兼容增加电源背电源双电源引脚时提供背电源进行涓细电流充电力
DS1302CPU连接 :实际调试程序时加电容器加32768kHz 晶振选择晶振时晶振误差较
图4 Ds1302引脚图
中Vcc1备电源VCC2电源电源关闭情况保持时钟连续运行DS1302Vcc1Vcc2两者中较者供电Vcc2Vcc1+02V时Vcc2DS1302供电Vcc2Vcc1时DS1302Vcc1供电X1X2振荡源外接32768kHz晶振RST复位片选线通RST输入驱动置高电启动数传送RST输入两种功:首先RST接通控制逻辑允许址命令序列送入移位寄存器次RST提供终止单字节字节数传送手段RST高电时数传送初始化允许DS1302进行操作果传送程中RST置低电会终止次数传送IO引脚变高阻态电运行时Vcc≥25V前RST必须保持低电SCLK低电时RST置高电IO串行数输入输出端(双)SCLK始终输入端
图2示DS1302 控制字节高效位(位7)必须逻辑1果0数写入DS1302中位6果0表示存取日历时钟数1表示存取RAM数位5位1指示操作单元址低效位(位0)0表示进行写操作1表示进行读操作控制字节总低位开始输出控制字指令输入SCLK时钟升时数写入DS1302数输入低位(0位)开始样紧8位控制字指令SCLK脉降读出DS1302数利单片机外部中断处理中断系统通数码显示出时间
414 数码显示模块
设计中采四位阳极数码阳极指公端接正极通单片机AT89C52P1口控制位选达动态显示效果通P0口控制段选显示相应数值位选控制部分采9012型三极求P1口输出低电时位选成功
图5数码显示电路
硬件电路中数码显示时分时通键2控制分通键3控制
数码正常显示驱动电路驱动数码段码显示出数字根数码驱动方式分静态式动态式两类
① 静态显示驱动:静态驱动称直流驱动静态驱动指数码段码单片机IO端口进行驱动者BCD码二十进制译码器译码进行驱动静态驱动优点编程简单显示亮度高缺点占IO端口驱动5数码静态显示需5×8=40根IO端口驱动知道89S51单片机IO端口32呢:)实际应时必须增加译码驱动器进行驱动增加硬件电路复杂性
② 动态显示驱动:数码动态显示接口单片机中应广泛种显示方式动态驱动数码8显示笔划abcdefgdp名端连起外数码公极COM增加位选通控制电路位选通独立IO线控制单片机输出字形码时数码接收相字形码究竟数码会显示出字形取决单片机位选通COM端电路控制需显示数码选通控制开该位显示出字形没选通数码会亮通分时轮流控制数码COM端数码轮流受控显示动态驱动轮流显示程中位数码点亮时间1~2ms视觉暂留现象发光二极余辉效应实际位数码非时点亮扫描速度足够快印象组稳定显示数会闪烁感动态显示效果静态显示样够节省量IO端口功耗更低
415 LED显示模块
LED(Light Emitting Diode)发光二极种固态半导体器件直接电转化光LED心脏半导体晶片晶片端附支架端负极端连接电源正极整晶片环氧树脂封装起半导体晶片两部分组成部分P型半导体里面空穴占导位端N型半导体边电子两种半导体连接起时候间形成PN结电流通导线作晶片时候电子会推P区P区里电子空穴复合然会光子形式发出量LED发光原理光波长光颜色形成PN结材料决定
图6 LED显示电路
次设计中通键2控制流水显示开电源键2流水灯模块效电路中LED阳极控制流水灯显示P2口应低电时效
原理图中出果接P20口LED1亮起P20口电变低电相反果接P20口LED1熄灭P20口电变高电理接P21~P27口7LED点亮熄灭方法LED1实现流水灯功发光二极LED1~LED8次点亮熄灭8LED灯便会亮暗做流水灯
首先显示流水花样数建TAB标号数表中然通查表指令MOVC A@A+DPTR数取累加器A中然送P1口进行显示应注意点眼视觉暂留效应单片机执行条指令时间短控制二极亮灭时候应该延时段时间否流水效果
416 扬声器模块
扬声器模块通键3实现求扬声器够发出连续断续声音音乐选择蜂鸣器实现功
图7 扬声器电路
蜂鸣器种体化结构电子讯响器采直流电压供电广泛应计算机印机复印机报警器电子玩具汽车电子设备电话机定时器等电子产品中作发声器件蜂鸣器分压电式蜂鸣器电磁式蜂鸣器两种类型面电磁式蜂鸣器例说明工作原理:电磁式蜂鸣器振荡器电磁线圈磁铁振动膜片外壳等组成接通电源振荡器产生音频信号电流通电磁线圈电磁线圈产生磁场振动膜片电磁线圈磁铁相互作周期性振动发声输出高电时三极截止蜂鸣器两引脚间直流电压接0V没电流流线圈蜂鸣器发声输出低电时三极导通蜂鸣器两引脚间获接+5V直流电压样蜂鸣器电流形成回路发出声音通程序控制IO口输出电控制蜂鸣器否发出声音实现种音响产生
设计中通P34口控制发声P34ds1302连起P34口输出低电时蜂鸣器发出声响ds1302工作设定扬声器发出声音
42 硬件原理图
五 软件流程框图
51流程框图
511 程序流程图
Y
Y
Y
Y
P1口置初值0F0H
调数码显示程序
调LED显示子程序
调作息时间控制程序
KEYa?
KEYb?
KEYc?
KEYd?
调蜂鸣器发声程序
开始
N
512 蜂鸣器流程图
N
Y
开始
循环时间初值设置
P34端口输出设置
延时02s
P34端口取反
延时02s
循环结束?
返回程序
513 流水灯程序流程图
Y
Y
开 始
循环初始化
表头首指送址指针
寄存器A清零
N
N
返回程序
表中花样送A
显示延时
花样否结束?
花样结束标志?
514 时间显示流程图
515 作息时间控制流程图
Y
开始
扬声器预响时间设置
DS1302实时时间读取
两时间否
相?
扬声器发声
N
延时关闭扬声器
作息时间控制设计较简单基思路设置扬声器预响时间然通DS1302实时时间读取预响时间做较果两者相扬声器发声果两者相返回DS1302实时时间继续读取直扬声器预响时间相扬声器发声然通延时关闭扬声器
52 完整程序清单注释
程序清单:
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN
MOV SP#60H
JNB P14K1CHECK
JNB P15K2CHECK
JNB P16K3CHECK
JNB P17K4CHECK
SJMP MAIN
K1CHECK 抖动KEYA跳转KEYA子程序
JB P10KEYA
SJMP KEYA
KEYA
MOV SP#70H 堆栈指针赋初值
MOV R2#08H 蜂鸣器响声计数
START0
SETB P34 P34口置高电
LCALL DELAY 调延时子程序
CLR P34 P34口取反
LCALL DELAY
DJNZ R2START0 判断计数否结束否跳START0处
SJMP MAIN 返回程序
DELAY 延时子程序
MOV R7#02
DELAY0
MOV R6#200
DELAY1
MOV R5#248
DJNZ R5
DJNZ R6DELAY1
DJNZ R7DELAY0
RET
K3CHECK
JB P16KEYC
SJMP KEYC
K4CHECK
JB P17KEYD
SJMP KEYD
END
蜂鸣器
K3CHECK 抖动KEYA跳转KEYA子程序
JB P14KEYA
SJMP KEYA
KEYA
MOV SP#70H 堆栈指针赋初值
MOV R2#0FFFFH 蜂鸣器响声计数
START0
SETB P34 P34口置高电
LCALL DELAY 调延时子程序
CLR P34 P34口取反
LCALL DELAY
DJNZ R2START0 判断计数否结束否跳START0处
SJMP MAIN 返回程序
DELAY 延时子程序
MOV R7#02
DELAY0
MOV R6#12
DELAY1
MOV R5#75
DJNZ R5
DJNZ R6DELAY1
DJNZ R7DELAY0
RET
流水灯
K2CHECK 抖动KEYB跳转KEYB子程序
JB P15KEYB
SJMP KEYB
KEYB
MOV SP#80H
MOV R2#18H LED循环闪亮三次
MOV A#0FEH A中赋初始值
LOOP
MOV P2A 流水灯闪亮
LCALL DELAY3
RL A A中初值左移
DJNZ R2LOOP
MOV A#0FFH 三次结束熄灭LED灯
MOV P2A
SJMP MAIN 返回程序
DELAY3 延时子程序
MOV R7#20
DELAY4
MOV R6#125
DELAY5
MOV R5#255
DJNZ R5
DJNZ R6DELAY5
DJNZ R7DELAY4
RET
数码显示
数码显示子程序
DISPLAY
MOV DPTR#DIG_CODE
显示分钟
MOV P1#11110111b
MOV AMIN
ANL A#0FH
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
MOV P1#11111011b
MOV A MIN
SWAP A
ANL A#07H
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
显示时
MOV P1#11111101b
MOV AH
ANL A#0FH
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
MOV P1#11111110b
MOV AH
SWAP A
ANL A#03H
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
RET
***************作息时间控制****************************
KEY4
MOV SP#60H
MOV TMOD#10H 初始化定时器中断
SETB ET1 开定时器1中断
SETB EA
SETB TR1 启动定时器1
T1INT
JNB TF1T1INT
SJMP K
LJMP START0
LCALL SETDS1302
LCALL GET1302
LCALL DISPLAY
MOV R3#25
MOV TMOD#01H
MOV TH0#70H 置定时器初值(7000H28672)
MOV TL0#00H 定时(216-28672)*1211059240000us40ms
SETB TR0 启动定时器0
LP1 JBC TF0LP2 查询计数溢出
SJMP LP1 未40 ms继续计数
LP2 MOV TH0#0B8H 重新置定时器初值
MOV TL0#00H
LCALL DISPLAY 显示
DJNZ R3LP1 未1 S继续循环
LCALL GET1302 1sDS1302读取次时间
Mov r3#25
SJMP lp1
数码显示子程序
DISPLAY
MOV DPTR#DIG_CODE
显示时
MOV P1#11111101b
MOV AH
ANL A#0FH
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
MOV P1#11111110b
MOV AH
SWAP A
ANL A#03H
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
RET
显示分
MOV P1#11111101b
MOV Aminute
ANL A#0FH
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
MOV P1#11111110b
MOV Aminute
SWAP A
ANL A#03H
MOVC A@A+DPTR
MOV P0A
LCALL DIS_DELAY
RET
六调试情况结
61 硬件调试
硬件调试分静态调试动态调试硬件调试言认真焊接硬件般会出现什问题没出现什问题调试程序调试结果模块正常工作
静态调试般采工具万表户系统未工作时种硬件检测
动态调试户系统工作情况发现排查错误种硬件检测调试步骤:首先电路分成干模块调式程中该模块关元件加考虑样障限定定范围障清模块合起进行联调完成整硬件调试工作
62 软件调试
软件调试通程序汇编连接执行发现程序中存语法错误逻辑错误加排纠正程
63 软硬件调试
软硬件联调指调试误软件程序烧制进单片机芯片部通电源检查硬件工作否预期效果果没需检测软件否实现功欠缺错误通改写软件调试直达预期效果设计圆满成功
七设计总结
两周课程设计单片机系统更深认识更加锻炼学知识认知应力老师悉心指导认识课程重性时感受理实践间差距单片机系统应更加深刻认识
通次课程设计进步巩固KEIL软件方法学会似简单定会东西例烧程序芯片做出硬件进行硬件软件调试等软件设计程中通查阅资料学会许指令适范围:AJMPLJMPACALLLCALLNopDJNECJNE等外解扫描键优先级判断等问题
次课程设计程中出现少问题说编制程序未实现温度控制编制通键扫描控制单片机工作达流水灯显示音乐播放实时显示时间日期等功硬件调试程中出现问题显示明显等遇问题应该检查电路身否问题短路断路
通次课程设计明白次整程序设计反复修改断改进程序设计必路养成注释程序惯程序完美否仅仅实现功应该明白思路样资料保存交流提供方便设计课程程中遇问题正常应该次遇问题记录分析清楚免次碰样问题
次单片机课程设计重点理实际相结合单单书条条分离指令通次设计更系统解指令单片机扩展容次期末考试进步准备时获笔巨知识财富
八参考文献
单片机实验应设计教程 冶金工业出版社 邓 红 张 越
单片机原理接口技术 清华学出版社 胡汉
MCS51系列单片机原理接口技术民邮电出版社 李玉峰 倪虹霞
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档