单片机课程设计.docx
- 文档编号:15975896
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:15
- 大小:197.78KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(15页珍藏版)》请在冰点文库上搜索。
单片机课程设计
单片机课程设计报告书
课题名称
频率发生器
姓名
学号
院、系、部
电气工程系
专业
自动化
指导教师
频率发生器
一、设计目的
本次课题设计应用单片机的知识,完成频率发生器的设计,以达到理论与实践更好的结合、进一步提高综合运用能力,达到与实践相结合,更让我们对于所学知识的深一层理解。
通过这次设计的训练,可以使我在基本思路和基本方法上对于基于MCS-51单片机的设计有一个比较感性的认识,并具备一定程度的设计能力。
二、设计要求
在本次要求中主要完成以下功能:
1.通过按键设定频率(默认占空比1:
1)并显示
2.通过按键输入占空比并显示
3.输出此频率(本机地址为08H,当接到上位机发的08H时,则回发08H
当接到上位机发的AAH时,则将设定发给上位机
当收到上位机发的55H时,则修改设定频率)
三、硬件电路设计
3.1系统结构框图
图3-1系统框图
频率发生器主要由单片机,LED灯,8段数码管,电源以及复位电路五部分组成。
系统结构框图如图3-1所示。
3.2STC89C52单片机介绍
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
1主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
2外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin20):
片内振荡电路的输出端
3控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
4可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
STC89C52主要功能如表一所示。
表一STC89C52主要功能
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功
3.3按键扫描电路
单片机系统键盘原理
行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。
但是,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图3-2所示
图3-2键盘扫描原理图
扫描法是在判定有键按下后逐列果行(或列)的状态出现非全1状态,如果(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。
确定矩阵式键盘上哪个键被按下时运用扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,过程如下。
判断键盘中有无键按下,将全部行线Y0~Y3置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
判断闭合键所在的位置,在确认有键按下后,即可进入确定具体闭合键的过程。
其方法是:
依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按键。
3.4数码管显示电路
LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。
这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。
动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。
其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。
而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。
图3-3数码管显示原理图
3.5实物图
图3-4实物图
3.6系统电路原理图
接线图
图3-5原理接线图
元件清单
元件名称
数量
元件名称
数量
按键
17个
电源口
1个
电源指示灯
1个
电源开关
1个
89C52芯片
1个
通讯口
1个
晶振
1个
LED灯
8个
22pf电容
2个
1000uf电容
1个
0.1uf电容
1个
蜂鸣器
1个
数码管
1个
74HC573芯片
2个
四、使用说明
因为我们的程序主要是H51开发板进行设计的,所以我们用到了实验箱上四行六列的键盘中的S17,S18,S20三个键。
开发板开机以后按下S17可以增加占空比高电平的值,按下S18可以增加占空比低电平的数值,按下S20可以增加频率的值。
频率范围为100Hz--900Hz,
此时已经修改过频率,程序进入第一次键盘扫描的阶段,然后将各个数值显示,最后经过单片机软件运算由P0.7口输出频率,将蜂鸣器接在P0.7口上,蜂鸣器发出声音的大小代表频率的大小。
按下复位键可以将单片机复位,然后重新输入。
五、程序流程图设计
中断程序流程图如图5-1所示:
图5-1中断程序流程图
主程序流程图如图5-2所示:
图5-2主程序流程图
六、程序设计
ORG0000H
SJMPMAIN
ORG000BH;T0中断入口地址
AJMPTIME
ORG0030H
MAIN:
MOVTMOD,#01H;初始化
MOVTH0,#0FFH
MOVTL0,#0CEH
SETBTR0
SETBET0
SETBEA
SETBP0.7
MOV70H,#01H
MOV71H,#0BH
MOV72H,#0BH
MOV73H,#0BH
MOV74H,#0BH
MOV75H,#01H
MOV76H,#0AH
MOV77H,#01H
CLR11H;标志位清零
CLR12H
CLR14H
MAIN0:
JBP3.3,LL0;键盘扫描
INC77H
SETB12H
LL0:
JBP3.2,LL1
INC75H
SETB12H
LL1:
JBP3.0,LL2
INC70H
SETB11H
LL2:
MOVA,70H
CJNEA,#10,NEXT0;70H等于10则清零,70H不等于10则跳转
MOV70H,#01H
NEXT0:
MOVA,77H
CJNEA,#10,NEXT1;77H等于10则清零,77H不等于10则跳转
MOV77H,#01H
NEXT1:
MOVA,75H
CJNEA,#0AH,XIAN;70H等于10则清零,70H不等于10则跳转
MOV75H,#01H
XIAN:
MOV60H,#7FH;设置位码初值
MOVR1,#70H
BB:
MOVA,60H
SETBP2.1
MOVP1,A
CLRP2.1
SETBP2.0
MOVA,@R1
MOVDPTR,#TAB1
MOVCA,@A+DPTR
MOVP1,A
CLRP2.0
MOVA,60H
RRA;位选通信号移位
MOV60H,A
MOVR6,#15
LP131:
;延时子程序
MOVR7,#15
DJNZR7,$
DJNZR6,LP131
INCR1
MOVA,R1
CJNEA,#78H,BB
JNB11H,WORK0
MOVA,70H
MOVDPTR,#TAB2
MOVCA,@A+DPTR;查表得到对应频率含50μs的个数
MOV50H,A
SJMPWORK1
WORK0:
JNB12H,MAIN0
WORK1:
MOVA,77H
ADDA,75H
MOVB,A
MOVA,50H
DIVAB
MOV30H,A
MOVA,77H
MOVB,30H
MULAB
MOV31H,A
MOVR0,31H;高电平所含50μs的个数存入R0
MOVA,75H
MOVB,30H
MULAB
MOV32H,A
MOVR1,32H;低电平所含50μs的个数存入R1
AJMPMAIN0
TIME:
;中断程序
MOVTH0,#0FFH;重置T0初值
MOVTL0,#0CEH
JB14H,PP1
PP0:
CLRP0.7
CLR11H
DJNZR0,PPP;R0不等于0则跳转到PPP
MOVR0,31H
SETB14H
PP1:
SETBP0.7
CLR12H
DJNZR1,PPP
MOVR1,32H
CLR14H
PPP:
RETI
TAB1:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,48H,00H
TAB2:
DB00H,0C8H,64H,42H,32H,28H,20H,1CH
DB18H,16H
END
七、设计总结:
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
通过这次课程设计,我深深懂得要不断的把所学知识学以致用,还需通过自身不断的努力,不断提高自己分析问题,解决问题和编程技术终结报告的能力!
更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。
由于平时对单片机知识学习得不够扎实,理解得不够透彻、一知半解,致使在运用是不能贯通,导致在设计过程中困难重重,往往无从下手,但是通过和同组的同学一起探讨,最后把所有的问题一步一步解决。
在这次设计过程中,我对word、绘图软件以及protel等软件有了更进一步的了解,这使我在以后的学习中更加熟练。
总之,本次单片机课程设计让我悟出了许多东西:
第一,理论和实践之间是有差别的,我们在掌握理论的同时,要把理论放大实际中去.试验中遇到了很多困难,理论上正确但在实际中运行不起来.认识到单掌握理论是不够的,应该全方位了解问题.第二,我们要学会坚持不懈,不轻易言弃,这对于我们非常的重要。
如果我们没有这种精神,一旦我们遇到一点挫折,我们也许就会被打败,以后进入社会就会没有我们的立足之地。
因此,我们要珍惜大学时光,循序渐进的培养这些能力,这样才不会被瞬息万变的时代所淘汰。
最后更应该感谢指导老师的细心指导.正是由于老师的辛勤培养,谆谆教导,才使此次课程设计得以圆满完成!
八、参考文献:
[1]高峰.单片微型计算机原理与接口技术.科学出版社
[2]马丽焦咏梅.单片机仿真试验系统使用说明书.石家庄铁道大学四方学院
[3]李学海.经典80C51单片机轻松入门与上手.清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计