电子价格牌课程设计doc.docx
- 文档编号:24209702
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:36
- 大小:1.41MB
电子价格牌课程设计doc.docx
《电子价格牌课程设计doc.docx》由会员分享,可在线阅读,更多相关《电子价格牌课程设计doc.docx(36页珍藏版)》请在冰豆网上搜索。
电子价格牌课程设计doc
《单片机技术》课程设计说明书
电子价格牌
学院:
学生姓名:
指导教师:
职称讲师
专业:
班级:
学号:
完成时间:
湖南工学院《单片机技术》课程设计课题任务书
指导教师
学生姓名
课题名称
电子价格牌
内容及任务
一、设计任务
设计一个应用于酒店具有特定功能的电子价格牌。
二、设计内容
1、电子价格牌硬件部分
(1)、单片机最小系统模块
(2)、供电模块
(3)、数码管显示模块
(4)、键盘模块
2、电子价格牌软件部分
(1)、系统监控程序模块
(2)、显示程序模块
(3)、键盘程序模块
三、设计要求
1、上电或按键复位后自动显示“P.”,进入准备阶段。
2、利用数码管显示四种不同房型的价格,价格均为四位整数。
3、能利用按键修改价格。
主要参考资料
[1]李广弟.单片机基础[M].第3版.北京:
北京航空航天大学出版社,2003.6.
[2]李全利.单片机原理及应用(C51编程)[M].北京:
高等教育出版社,2012.12.
[3]李光飞.单片机C程序设计指导[M].北京:
北京航空航天大学出版社,2003.01.
[4]李光飞.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004.9.
教研室意见
教研室主任:
(签字)
年月日
学院:
电气与信息工程学院专业:
摘要
电子价格是一种利用数码管来显示价格信息的设备,与传统的纸张相比电子价格牌具有易修改、节约纸张、能在黑暗的环境下显示等优势。
该设计是利用AT89C52单片机和74LS573芯片还有4个4位一体的数码管实现。
电子价格牌在通电或复位的状态下显示“P.”,第一次按电子的价格表的启动/清零键,电子价格表所有位数显示为0,可以用四个调整按键进行价格的修改。
首先使用Keil软件设计出电子价格牌汇编程序,借助Proteus仿真软件进行实验仿真,最后利用AltiumDesigner9生成电路PCB图并制作实物。
经检验设计符合课程设计任务书任务要求,能够利用数码管显示四种不同房型的价格,价格均为四位整数,可应用于酒店具有特定功能的电子价格牌。
关键词:
电子价格表;AT89C52;74LS573;数码管
1绪论
1.1设计课程任务
设计一个应用于酒店具有特定功能的电子价格牌。
1.2功能要求说明
1:
上电或按键复位后自动显示“P.”,进入准备阶段。
2:
利用数码管显示四种不同房型的价格,价格均为四位整数。
3:
能利用按键修改价格。
1.3设计方案及原理介绍
设计主要由电源电路、振荡电路、下载电路、复位电路、驱动电路、显示电路和键盘构成。
设计框图如图1所示:
图1电子价格牌设计框图
在单片机I/O口并行键盘和数码管。
设计利用P0口作为4个4位数码管的段控口使用,再利用P2口和P3口分别作为2个4位数码管的位控口使用,合计4个4位数码管。
利用74LS573驱动数码管,通过控制按键调按键子程序控制寄存器来控制缓冲地址的内容来控制每位数码管内显示的数字,以实现键盘控制显示器内容来表示价格。
2硬件系统的设计
2.1硬件系统各模块功能介绍
设计所用到的系统模块有:
单片机AT89C52模块,单片机最小系统功能模块,数码管显示模块,键盘功能模块,下载电路模块。
以下内容就是将各模块单独详细讲解。
2.1.1单片机AT89C52
AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。
有32个可编程I/O口线,三个16位定时器/计数器,6个中断源,看门狗定时器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
AT89C52芯片及管脚图。
如图2所示:
图2AT89C52管脚图
2.1.2电源模块
采用+5V的直流稳压电源供电。
通过整流、滤波、稳压,给系统提供稳定的直流电压+5V。
整流桥选择2W10型号,承受电流的能力为2A,最大耐压能力为1000V,根据模电知识可知,滤波电容的取值与耐压水平有关,+5V的输出耐压值应大于1.4倍变压器副边电压值,通过计算,滤波电容取标称值470μf,减小纹波系数电容取0.1μf,稳压芯片选取LM7805,才能输出稳定的+5V电压,电源电路如图3所示。
因为民用工频交流电电压为220V,而LM7805的输入电压为12V左右,所以图中电压器T的变比选取为18:
1K为六角自锁开关,控制整个后续电路的电源。
单相整流桥的作用是将交流输入整合成不稳定的直流输出,再由2200μf的电容减弱它的不稳定性。
通过LM7805整合为稳定的+5V直流电。
最后经0.1μf的小电容减少它的纹波系数。
图3电源原理图
2.1.3振荡模块
单片机只有满足相应的时钟信号才能进行工作,时钟信号由时钟电路产生,通过在AT89C52的XT1、XT2引脚上接入12MHz的石英晶振外加两个电容器(电容器根据经验一般取33pF)组成的电路为单片机提供时钟信号。
采用12MHz的晶振更能实现对计算机进行通信的波特率,使用12MHz的晶体晶振为系统单片机提供必要的时钟信号时钟电路如图4所示。
图4振荡电路
2.1.4复位模块
单片机的复位有上电复位和对其进行按键复位,当出现死机和运行错误的时候一般采用按键方式对单片机进行复位操作。
因为硬件系统中采用的是AT89C52单片机,需要在复位管脚RST上产生两个周期的高电平才能使单片机复位。
设计中单片机复位信号的产生采用按键来实现的。
其中按键电平复位是通过使复位端经电阻与VCC(+5V)电源接通而实现的。
系统复位如图5所示。
因为设计采用的是51单片机,所以在使用的时候要用跳线帽将C51与RET短接。
图5复位电路
2.1.5下载模块
下载口的1脚接P1.5口,2脚悬空,3脚接单片机的复位口,4脚接P1.7口,5脚接P1.6口,10脚电源,6、7、8、9、脚接地。
如图6所示。
图6下载模块
2.1.6显示模块
设计采用数码管动态显示,通过单片机的P0和P2和P3口来进行控制,通过编程来达到数码管的动态显示。
其电路如图7和图8所示。
图7数码管显示电路
图8数码管显示电路
由于74LS573输出电流在5V时可以达到20mA,通常用来作为数码管的驱动电路,数码管显示时所需要的电流一般只有5mA~10mA,所以为了让数码管正常工作而不被烧毁采用R1~R88个470欧的限流电阻作为过流保护。
2.1.7按键模块
按键电路的设计就是在一端公共接地,另一端通过上拉电阻接到P1口,如图9所示,当有按键按下,相应的口就会变成低电平,产生一个下降沿各键功能单一,互不影响,操作起来十分的清晰与方便。
设计中使用了五个按键,S4键是价格牌的开始和清零;S5键的功能是输入左移;S6键的功能是改变当前位数数值;S7键的功能是输入右移;S8键的功能是连续改变当前位数数值。
键盘功能模块如图10所示。
图9键盘上拉排阻图10键盘功能模块
2.2设计课题原理图、实物图
设计课题电路原理图,见附录B;
设计课题实物图,见附录C。
2.3设计课题元件清单
设计课题元件清单,见附录A
3软件系统的设计
3.1单片机资源使用情况
设计除了了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET)外,还使用了P0.0-P0.7作为数码管显示器的段控。
P2.0-P2.7和P3.0-P3.7分别控制数码管LED0-LED15的位控码驱动。
P1.0-P1.3作为独立式键盘的输入端。
3.2各模块功能介绍
主程序:
系统初始化及主要功能。
显示P.子程序:
启动时显示P.。
按键扫描子程序:
扫描按键状态。
系统监控子程序:
不断扫描哪些按键按下并跳转至键功能子程序。
键功能子程序:
通过按键实现不通过按键的加减和移位功能。
显示子程序:
处理价格信息显示在数码管上。
3.3课程设计程序流程图
3.3.1主程序流程图
主程序设置了栈底和PSW的状态并且将RAM清零,之后调显示P.的程序等待P1.0为0也就是按键1按下时之后显示初始价格,再进行按键扫描。
流程图如图11所示。
图11主程序流程图
3.3.2系统监控子程序流程图
在键扫描程序的中添加显示子程序的调用,保持数码管在键扫描程序循环时时刻显示。
并且不断查询按键1到8是否按下,如果按下则调用按键的子程序,在程序执行完成后返回键扫描程序。
若无按键按下键扫描程序循环扫描。
流程图如图12所示。
图12系统监控子程序流程图
3.3.3按键扫描子程序
在开始时调用显示子程序确定数码管持续显示。
确定按键确定按下时运行按键消抖程序,确认按键是否按下。
如果按键按下则执行子程序功能然后返回键扫描程序。
如果按键没有按下则直接返回键扫描程序。
如图13所示。
图13按键扫描子程序流程图
3.3.4显示子程序流程图
图14显示子程序流程图
如图14显示子程序流程框图,设计采用连续调用两次显示子程序,分别将位控码送P2和P3口。
首先保护现场,开辟第三组寄存器,地址指针R0和位控寄存器R2初始化。
然后查表取段控码,段控码送P0口,位控码送P2口和P3口并延时1秒,同时位控码左移,显示缓冲区地址加一。
判断8位LED灯是否显示完,如果没有就返回重新查表取段控码,如果有就恢复现场,子程序返回。
3.3.5键功能子程序流程图
(1)按键1执行的键功能程序流程框图如图15所示,给缓冲地址赋初值显示初始价格。
图15键功能子程序流程图
(2)按键2执行的键功能程序流程框图如图16所示,位移缓冲地址选择修改位。
图16键功能子程序流程图
(3)按键3执行的键功能程序流程框图如图17所示,修改缓冲地址内容。
图17键功能子程序流程图
(4)按键4执行的键功能程序流程框图如图18所示,位移缓冲地址选择修改位。
图18键功能子程序流程图
(5)按键5,6,7,8执行的键功能程序流程框图如图19所示,位移缓冲地址选择修改位。
图19键功能子程序流程图
3.4程序清单
程序清单见附录D。
4设计测试和使用说明及心得
4.1使用说明
电子价格牌在通电和按下复位按钮的时候显示P.,按下按钮1电子价格牌开始工作并且将所有位清零。
按钮2按下后第一位显示P.并可以进行修改,再按一次再前进一位并且显示P.。
按钮3可以进行数字修改,按一下当前数字减一(P.)加一为9。
按钮4按下后,后一位显示P.,并且可以修改。
按钮5按下并不松手可以连续修改数字持续减一。
4.2测试过程
电子价格牌在待机状态如图20所示,在通电和复位时显示“P.”。
除了按按键1/启动键和按其他键均无反应。
图20实物待机状态
在按钮1按下时如预期功能,价格表开始工作,并且清零所有位数如图21所示。
图21按钮1测试图
在按钮2按下的时候第一位显示为“P.”并可以修改价格,按一下按钮3就可以进行价格修改,如图22和图23所示。
图22按钮2测试图
图23按钮3测试图
在按钮4按下后,当前位的后一位显示“P.”并且能利用按键三来进行修改,如图24和25所示。
图24按钮4测试图
图25按钮3测试图
4.3误差分析
在设计中存在一定误差。
误差为数码管显示不够明亮,产生误差的原因可能是电源供电不足或者线路焊接不稳定等原因导致
4.4设计总结与心得
设计是采用keil进行汇编编程,在编程中不断学习单片机的控制方法和汇编程序的编写方法,过程中对单片机的I/O口控制和功能的了解不断加深,并在不断失败中修改编程方法。
而且对数码管的控制、内部结构、接线方式也有了深入的了解。
在设计中遇到的最大问题就是两位数码管出现了重影,而且迟迟无法解决。
初期通过改变编程方法不断修改程序无果,后来使用了Proteus进行仿真发现在连续调用两次显示程序后P2.7和P3.7口的一直处于有效状态,后来通过用CLR指令清零P2.7和P3.7的状态让设计成功。
结束语
通过此次单片机课程设计,我学到了很多知识,对AT89C52芯片以及单片机各模块功能有了进一步的理解。
从开始对单片机系统以及汇编程序的陌生,到渐渐熟悉,经历了一个相当漫长的过程。
课程设计让我有了将理论运用于实践的机会,通过不断的去图书馆和网上查找电子价格牌的相关知识,课程设计一步一步的进行着。
后来开始用AltiumDesigner软件画图,通过不断的修改,最终完成了电子价格表的原理图和PCB图。
接下来进行Keil程序的汇编,经过长达一星期的奋斗,汇编程序终于完成。
由于课程设计是电子价格牌的设计,需要用到的模块与之前做过的三合一单片机系统板几乎相同,所以课程设计没有再重新制作电路板,降低了课程设计的难度。
参考文献
[1]李广弟.单片机基础[M].第3版.北京:
北京航空航天大学出版社,2003.6.
[2]李全利.单片机原理及应用(C51编程)[M].北京:
高等教育出版社,2012.12.
[3]李光飞.单片机C程序设计指导[M].北京:
北京航空航天大学出版社,2003.01.
[4]李光飞.单片机课程设计实例指导[M].北京:
北京航空航天大学出版社,2004.9.
致谢
本次单片机课程设计能画上圆满的句号,首先要感谢我的指导老师吴乐,老师不仅在学术上予以指导,同时也给予了我极大的鼓励和支持,使我能一直有饱满的热情来完成我的课程设计,在设计过程中遇到很多问题,吴老师总是引导我去寻找引发问题的原因,并提出解决问题的方法。
我向老师表示诚挚的感谢。
其次,我还要感谢我的同学,他们给我讲解了很多我不懂的地方,没有他们的帮忙,我很难顺利完成此次单片机课程设计。
附录
附录A元器件清单
序号名称型号数量(个)
1AT89C52单片机芯片锁紧座40P1
2AT89C52单片机40P1
3四位一体共阳数码管插座1
4四位一体共阳数码管40P4
574LS573芯片插座20P5
674LS57320P2
7晶振12MHz2
8发光二极管1
9单排插针40P2
10三极管90123
11蜂鸣器3
12小按键3
13下载口座子3
14六脚按键电源开关3
15USB电源线3
16USB电源线插座3
17电阻47016
18电阻2003
19电阻1K3
20电解电容22uF3
21瓷片电容33pF3
22排阻10K3
23排阻4703
24短路冒3
25杜邦线8P3
26PCB板子3
27固定螺钉螺帽3mm3
28USB下载线3
附录B电路原理图
附录C实物图
附录D程序清单
/*项目名称:
电子价格牌*/
/*设计者:
董国栋*/
/*时间:
2016年12月*/
/*项目功能:
设计一个能显示四种不同房型价格的电子价格表。
*/
/*项目所以单片机资源:
P0口接输出数码管段控信号;
P2口接输出数码管位控信号;
P1口接按键;
P3口接输出数码管位控信号;
晶振12MHz;
按键1:
P1.0,启动/清零;
按键2:
P1.1,输入控制左移一位;
按键3:
P1.2,修改数字;
按键4:
P1.3,输入控制右移一位;
按键5:
P1.4,连续修改数字;
60H到70H用于显示器缓冲地址;
堆栈栈底:
30H。
*/
/*项目所用的显示模块:
四个四位一体数码管;*/
/************************主程序******************************/
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#30H
MOVPSW,#00H
MOVR0,#20H
MOVR7,#95
QINGLING:
MOV@R0,#00H;将00H赋给R0
INCR0;将RAM清零
DJNZR7,QINGLING
LCALLXIANP;跳转到显示P.的程序
/*****************************键扫描程序****************************/
LOOP:
LCALLDIR
CLRP2.7
LCALLDIR2
CLRP3.7
JNBP1.0,KEY1
JNBP1.1,KEY2
JNBP1.2,KEY3
JNBP1.3,KEY4
JNBP1.4,KEY5
LJMPLOOP
/**********************开启电子价格牌并清零每位********************/
KEY1:
MOVR1,#5FH;将R1赋值5FH位数值的修改做准备
MOVR0,#60H
HUILAI:
MOVA,#00H
MOV@R0,A;将60H到70H的值赋00H,所有位
INCR0显示0
CJNER0,#70H,HUILAI
LJMPLOOP
/*******************控制位左移显示P.********************************/
KEY2:
LCALLXIAODOU2;消抖过程中R1加一
MOV@R1,#0AH;将P.段控码送给缓冲地址
MOVA,#0AH
CJNER1,#70H,FANHUI2;确保修改位不超过缓冲范围
MOVR1,#60H
MOV@R1,#0AH
/********************消抖程序**************************/
XIAODOU2:
LCALLDELAY1
JBP1.1,WUXIAO2
LCALLDANJI1;使按键单击有效
JNBP1.1,WUXIAO2
INCR1
WUXIAO2:
RET
FANHUI2:
LJMPLOOP
/********************修改数字*************************/
KEY3:
LCALLXIAODOU3;消抖过程中A加一
MOV@R1,A;给缓冲地址赋值改变数字
CJNEA,#00H,FANHUI;确保不超过段码表范围
MOVA,#0AH
/*********************消抖程序**************************/
XIAODOU3:
LCALLDELAY1
JBP1.2,WUXIAO3
LCALLDANJI2;使按键单击有效
JNBP1.2,WUXIAO3
DECA
WUXIAO3:
RET
FANHUI:
LJMPLOOP
/********************控制位右移并显示P.**************************/
KEY4:
LCALLXIAODOU4;消抖时R1减一
MOV@R1,#0AH;将P.的值赋给R1
MOVA,#0AH
CJNER1,#5FH,FANHUI4;确保不超过缓冲地址范围
MOVR1,#6FH
MOV@R1,#0AH
FANHUI4:
LJMPLOOP
CJNER1,#5EH,FANHUI5;确保不超过缓冲地址范围
MOVR1,#6FH
MOV@R1,#0AH
/************************消抖程序*************************/
XIAODOU4:
LCALLDELAY1
JBP1.3,WUXIAO4
LCALLDANJI4;确保按键单击有效
JNBP1.3,WUXIAO4
DECR1
WUXIAO4:
RET
FANHUI5:
LJMPLOOP
/************************连续修改数字*************************/
KEY5:
LCALLXIAODOU5;不加单击有效使R1持续减一
MOV@R1,A
CJNEA,#00H,FANHUI2
MOVA,#0AH
/************************消抖程序*************************/
XIAODOU5:
MOVR7,#00H
FANHUI7:
LCALLDELAY1
INCR7
CJNER7,#05H,FANHUI7
JBP1.4,WUXIAO5
DECA
WUXIAO5:
RET
FANHUI6:
LJMPLOOP
/************************显示程序一*****************************/
DIR:
PUSHDPH;保护现场
PUSHDPL
PUSHACC
PUSHPSW
SETBRS0
CLRRS1
CLRA
MOVR0,#60H;选取缓冲首地址
MOVR3,#01H
MOVA,R3
LD0:
MOVP2,A;实现位控
MOVDPTR,#BIAO
MOVA,@R0
MOVCA,@A+DPTR
MOVP0,A;实现段控
LCALLDELAY
INCR0
MOVA,R3
JBACC.7,LD1
RLA
MOVR3,A
LJMPLD0
LD1:
CLRRS0
CLRRS1
POPPSW
POPACC
POPDPL
POPDPH
RET
/***************************显示程序二*************************/
DIR2:
PUSHDPH
PUSHDPL
PUSHACC
PUSHPSW
SETBRS0
SETBRS1
CLRA
MOVR0,#68H
MOVR3,#01H
MOVA,R3
LD2:
MOVP3,A
MOVDPTR,#BIAO
MOVA,@R0
MOVCA,@A+DPTR
MOVP0,A
LCALLDELAY
INCR0
MOVA,R3
JBACC.7,LD3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 价格 课程设计 doc