单片机原理与接口技术课程设计.docx
- 文档编号:17671272
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:26
- 大小:298.65KB
单片机原理与接口技术课程设计.docx
《单片机原理与接口技术课程设计.docx》由会员分享,可在线阅读,更多相关《单片机原理与接口技术课程设计.docx(26页珍藏版)》请在冰点文库上搜索。
单片机原理与接口技术课程设计
课程设计报告
课程名称:
单片机原理与接口技术课程设计
设计题目:
两位数字计算器
院系:
机电工程学院
班级:
2012级电气工程及其自动化专业
姓名:
王福男
学号:
20123563
指导教师:
史丽萍张扬王冠然
设计时间:
2014年12月8日
出勤
实物
报告
总分
目录
前言1
第一章课程设计目的和要求2
1.1课程设计目的2
1.2课程设计要求2
第二章单片机应用系统的设计步骤3
2.1设计题目3
2.2实现功能3
2.3工作原理3
2.4设计难点3
第三章系统硬件组成4
3.1元件清单4
3.2硬件接线图5
第四章系统软件编程8
4.1按键有效按下与抬起子程序8
4.2算数运算程序15
4.2.1加法子程序16
4.2.2减法子程序17
4.2.3乘法子程序20
4.2.4除法子程序22
4.3蜂鸣器提示子程序8
第五章程序调试与运行11
第六章心得体会11
结论13
参考文献14
备注;程序清单14
前言
课程设计是单片机课程教学的最后一个环节,目的是对学生进行全面系统的训练。
进行课程设计可以让学生把学过的零碎知识系统化,能够开发简单的系统,也进一步激发学生学习的热情,因此课程设计是必不少的,非常必要。
早在公元2世纪的罗马时代,人们就已经使用一种类似算盘的工具进行计算。
就这个意义上说,人类的计数,使用工具的历史可以追溯到几千年以前。
1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是只能做加减计算。
1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。
此后,一直要到20世纪50年代末才有电子计算器的出现。
为了进一步学习《单片机原理及应用》这门课程,我们把它应用到实际生活中,制作了两位数字计算器。
第一章课程设计目的及要求
1.1课程设计题目
两位数字计算器
1.2课程设计目的
1 训练正确地应用单片机,培养解决具体问题的能力。
2 通过所做课题,熟悉单片机应用系统的软、硬件设计的工作方法、工作内容、工作步骤。
进行基本技能训练,例如组成系统、编程、调试、绘图等,培养学生理论联系实际能务,提高动手能力和分析问题,解决问题的能力。
3 通过设计有助于复习、巩固以往所学的知识,达到灵活应用的目的。
1.3课程设计要求
1 设计一个具有完整功能、有一定工作量与一定难度的单片机应用程序。
2 焊接单片机开发板,编制相应的单片机汇编语言。
3 分别在仿真界面和实物板上调试运行正确。
最后用实物进行运行演示,达到脱机运行。
第二章单片机应用系统的设计步骤
2.1设计题目
两位数字计算器
2.2实现功能
通过使用矩阵式4x4键盘进行输入,进行简单的两位正整数加、减、乘、除运算,并且按到加、减、乘、除按键时蜂鸣器有提示音,其他无提示音。
计算器工作时小灯变换颜色闪烁。
2.3工作原理
采用4*4矩阵键盘,本设计行接在RC0-RC3口,列接在RC4-RC7口,通过循环扫描,判断是否有键按下,如果有则调用按键识别程序识别是哪个键,执行相应的操作,按键识别是根据按键时得到的列代码与行代码组合,来判断是哪个键的。
按键识别后,如果是数字键则直接放入数码管显示区,如果再次有数字键按下,则应将缓存区的数字向高位移一位,将刚输入的数放入最低位,并且记录按键次数,每输入一个键值都调用显示程序显示出来,如果是运算符,则执行相应的运算,然后在调用显示程序显示结果。
然后加入运算程序把+、-、*、/分别做成模块,用到时即可调用。
2.4设计难点
本设计的难点主要有三个。
1 两位数码管的显示,一位很容易实现,两位相对比较复杂。
2 两位数的运算,其中涉及到借位与进位的问题,要另外注意。
3 乘法和除法的子程序编写。
第三章系统硬件组成
3.1元件清单
开发板1个
单片机PIC16F8871个
数码管4个
LED3个
按键16个
单片机槽1个
电容若干
电阻若干
保险管1个
保险管槽2个
蜂鸣器1个
USB1个
导线若干
3.2硬件接线图
第4章系统软件编程
4.1按键有效按下与抬起子程序
4.2算数运算程序
4.2.1加法子程序
4.2.2减法子程序
4.2.3乘法子程序
4.2.4除法子程序
4.3蜂鸣器提示子程序
第五章程序调试与运行
第六章心得体会
在这次课程设计中,我学会最多的就是细心与耐心,还学会了怎样更好地与人沟通。
第一节课,老师讲解完毕,电路原理图也发到了我们手中。
我和搭档就对到底是做计算器还是音乐盒展开了讨论。
由于争执不下,我妥协了,我们决定做计算器。
大家相继开始焊电路板。
因为以前接触过电烙铁,我就没有像第一次那样小心。
结果,由于疏忽,手一下子抓到了电烙铁上,立马被烫起了两个大泡。
所以,焊电路板的艰巨任务就落到了我可怜的搭档头上。
我们开始很谨慎小心,每焊一个器件都要再三核对,生怕万一焊错了。
所以,我们的进度被别人落下了,但我也只能干着急。
终于,电路板焊完了,给老师检查了一下没有任何问题,用锡量也不多。
我们立马转战单片机实验分时。
可编程并没有我们想象的那么简单。
我们仅仅学过加减而已,曾经也尝试过编乘法的程序,但是失败了。
这次编程无疑是一个大考验。
于是,我们开始查阅各种资料,希望能找到实例,可是网上关于PIC单片机的讯息太少了,我们又转战课本,询问同学,终于找到了灵感,在同学的帮助下勉强编程成功。
由于浪费了很多时间,代表我们拿不到喝高的分数,于是我们想给它增加点特色。
在特殊按键按下时用蜂鸣器提示。
随即,我们又加了一个定时0.5us的程序。
后来在老师检查时觉得0.5us太长了,又改成了0.2us。
在此次的为期两周的课设过程中,我深深体会到了要将理论联系到实际的重要性。
而且在学习中,我们总是眼高手低,总是以为自己会了,其实只是学了皮毛而已,以后要虚心学习,刻苦钻研。
结论
经过对电路调试及分析之后,很好的完成了本设计要求的内容,即实现普通的加、减、乘、除运算,能够正负数进行加减乘除运算。
本设计在单片机每次初始加电时,首先投入工作的功能部件是复位电路。
即上电复位,此时显示器对应显示0。
复位电路把单片机锁定在复位状态上并且维持一个延时,以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间。
通过按键电路向单片机输入第一个数据,然后输入运算符号,再输入第二个数,最后输入‘=’键,通过单片机进行分析处理,输出到显示器显示运算结果。
通过计算器的设计这个实例,可以很好地了解单片机的使用方法,这主要表现在以下两个方面:
[1]计算器的结构简单,并且具备最小单片机系统的基本构成。
通过计算器的实例,可以明白构成一个最简单,同时也具备实用性的单片机系统需要哪些外围设备的基本电路。
[2]计算器电路中使用了单片机系统中最为常用的输入输出设备。
通过对本设计的说明,可以明确单片机系统的最简单的用途和控制方法。
参考文献
李学海《PIC单片机原理》北京航空大学出版社
刘晓川《计算器组成与工作原理》电子工业出版社
备注;程序清单
listp=16f887;listdirectivetodefineprocessor
#include
__CONFIG_CONFIG1,_LVP_OFF&_IESO_OFF&_BOR_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC
;*****VARIABLEDEFINITIONS
w_tempEQU0x71;variableusedforcontextsaving
status_tempEQU0x72;variableusedforcontextsaving
w_tempEQU0x71;variableusedforcontextsaving
status_tempEQU0x72;variableusedforcontextsaving
NUMEQU0X36
GEEQU0X31
SHANGEQU0X32
SH1EQU0X33
BAIEQU0X34
YUSHUEQU0X35
COUNTEQU0X40
PANEQU0X41
SHUEQU0X42
R1EQU0X43
COUNDEQU0X44
ZONGEQU0X45
ZONG1EQU0X46
ZONG2EQU0X47
LEDBITEQU0X57
TMR0BEQU03DH
COUNTEREQU21H
;**********************************************************************
ORG0x000;processorresetvector
clrfPCLATH;ensurepagebitsarecleared
gotoMAIN;gotobeginningofprogram
ORG0x004;interruptvectorlocation
movwfw_temp;saveoffcurrentWregistercontents
movfSTATUS,w;movestatusregisterintoWregister
movwfstatus_temp;saveoffcontentsofSTATUSregister
;isrcodecangohereorbelocatedasacallsubroutineelsewhere
movfstatus_temp,w;retrievecopyofSTATUSregister
movwfSTATUS;restorepre-isrSTATUSregistercontents
swapfw_temp,f
swapfw_temp,w;restorepre-isrWregistercontents
retfie;returnfrominterrupt
MAIN
BSFSTATUS,RP1
BSFSTATUS,RP0
CLRFANSEL
CLRFANSELH
BCFSTATUS,RP1
BCFSTATUS,RP0
BSFSTATUS,RP0
CLRFTRISB
CLRFTRISD
MOVLW0F0H
MOVWFTRISC
;MOVLW0XF0
;MOVWFTRISC
MOVLW07H
MOVWFOPTION_REG
MOVLW0XF8
MOVWFTRISE
BCFSTATUS,RP0
MOVLW0xFF
MOVWFPORTD
MOVWFPORTB
CLRFNUM
CLRFPAN
CLRFZONG
CLRFZONG1
CLRFZONG2
STCALLJIANPAN
CALLDELAY10MS
CALLLOOP
GOTOST
JIANPANMOVLW0F0H
MOVWFPORTC
MOVLW0F0H
ANDWFPORTC,W
SUBLW0F0H
BTFSCSTATUS,Z
RETURN
CALLDELAY10MS
CALLDELAY10MS
MOVLW0F0H
MOVWFPORTC
MOVLW0F0H
ANDWFPORTC,W
SUBLW0F0H
BTFSCSTATUS,Z
RETURN
MOVLW0FEH
MOVWFPORTC
BTFSSPORTC,4
GOTOJIAN0
BTFSSPORTC,5
GOTOJIAN1
BTFSSPORTC,6
GOTOJIAN2
BTFSSPORTC,7
GOTOJIAN3
MOVLW0FDH
MOVWFPORTC
BTFSSPORTC,4
GOTOJIAN4
BTFSSPORTC,5
GOTOJIAN5
BTFSSPORTC,6
GOTOJIAN6
BTFSSPORTC,7
GOTOJIAN7
MOVLW0FBH
MOVWFPORTC
BTFSSPORTC,4
GOTOJIAN8
BTFSSPORTC,5
GOTOJIAN9
BTFSSPORTC,6
GOTOJIANA
BTFSSPORTC,7
GOTOJIANB
MOVLW0F7H
MOVWFPORTC
BTFSSPORTC,4
GOTOJIANC
BTFSSPORTC,5
GOTOJIAND
BTFSSPORTC,6
GOTOJIANE
BTFSSPORTC,7
GOTOJIANF
RETURN
JIAN1CALLSFANG
CALLCHENG10
MOVLW.0
ADDWFZONG,W
MOVWFNUM
RETURN
JIAN4CALLSFANG
CALLCHENG10
MOVLW.1
ADDWFZONG,W
MOVWFNUM
RETURN
JIAN5CALLSFANG
CALLCHENG10
MOVLW.2
ADDWFZONG,W
MOVWFNUM
RETURN
JIAN6CALLSFANG
CALLCHENG10
MOVLW.3
ADDWFZONG,W
MOVWFNUM
RETURN
JIAN8CALLSFANG
CALLCHENG10
MOVLW.4
ADDWFZONG,W
MOVWFNUM
RETURN
JIAN9CALLSFANG
CALLCHENG10
MOVLW.5
ADDWFZONG,W
MOVWFNUM
RETURN
JIANACALLSFANG
CALLCHENG10
MOVLW.6
ADDWFZONG,W
MOVWFNUM
RETURN
JIANCCALLSFANG
CALLCHENG10
MOVLW.7
ADDWFZONG,W
MOVWFNUM
RETURN
JIANDCALLSFANG
CALLCHENG10
MOVLW.8
ADDWFZONG,W
MOVWFNUM
RETURN
JIANECALLSFANG
CALLCHENG10
MOVLW.9
ADDWFZONG,W
MOVWFNUM
RETURN
JIANFCALLSFANG
BSFPAN,0
MOVFNUM,W
MOVWFSHU
CLRFNUM
CALLXIANG
RETURN
JIANBCALLSFANG
BSFPAN,1
MOVFNUM,W
MOVWFSHU
CLRFNUM
CALLXIANG
RETURN
JIAN7CALLSFANG
BSFPAN,2
MOVFNUM,W
MOVWFSHU
CLRFNUM
CALLXIANG
RETURN
JIAN3CALLSFANG
BSFPAN,3
MOVFNUM,W
MOVWFSHU
CALLXIANG
CLRFNUM
RETURN
JIAN0
CALLSFANG
BTFSCPAN,0
CALLJIA
BTFSCPAN,1
CALLJIAN
BTFSCPAN,2
CALLCHENG
BTFSCPAN,3
CALLCHU
RETURN
JIAN2
CALLSFANG
GOTOMAIN
RETURN
LOOP
CALLCALC
CALLDISPLAY
CALLDELAY10MS
RETURN
CALCMOVFNUM,W
CALLDIV10
MOVWFGE
MOVFSHANG,W
CALLDIV10
MOVWFSH1
MOVFSHANG,W
MOVWFBAI
RETURN
DISPLAYMOVFGE,W
CALLCHABIAO
MOVWFPORTD
BCFPORTB,1
CALLDELAY2
BSFPORTB,1
MOVFSH1,W
CALLCHABIAO
MOVWFPORTD
BCFPORTB,2
CALLDELAY2
BSFPORTB,2
MOVFBAI,W
CALLCHABIAO
MOVWFPORTD
BCFPORTB,3
CALLDELAY2
BSFPORTB,3
RETURN
DIV10MOVWFYUSHU
CLRFSHANG
MOVLW.10
DIVLOOPSUBWFYUSHU,F
INCFSHANG,F
BTFSCSTATUS,C
GOTODIVLOOP
DECFSHANG,F
ADDWFYUSHU,W
RETURN
DELAY2
DECFSZ30H,F
GOTODELAY2
RETURN
CHABIAO
ADDWFPCL,F
RETLW0XC0
RETLW0XF9
RETLW0XA4
RETLW0XB0
RETLW0X99
RETLW0X92
RETLW0X82
RETLW0XF8
RETLW0X80
RETLW0X90
DELAY10MS
MOVLW0DH
MOVWF20H
LOOP1MOVWF0FFH
MOVWF21H
LOOP2DECFSZ21H
GOTOLOOP2
DECFSZ20H
GOTOLOOP1
RETURN
SFANGMOVLW00H
MOVWFPORTC
MOVLW0F0H
ANDWFPORTC,W
SUBLW0F0H
BTFSSSTATUS,Z
GOTOSFANG
CALLDELAY10MS
CALLDELAY10MS
CALLDELAY10MS
MOVLW0F0H
ANDWFPORTC,W
SUBLW0F0H
BTFSSSTATUS,Z
GOTOSFANG
RETURN
JIABCFPAN,0
MOVFSHU,W
ADDWFNUM,F
RETURN
JIANBCFPAN,1
MOVFNUM,W
SUBWFSHU,W
MOVWFNUM
RETURN
CHENGBCFPAN,2
CLRFZONG
CALLYIWEI
LOOP5MOVFSHU,W
MOVWFR1
LOOP6RRFR1
BTFSCSTATUS,C
CALLMPADD
BCFSTATUS,C
RLFNUM
DECFSZCOUND
GOTOLOOP6
MOVFZONG,W
MOVWFNUM
RETLW00H
MPADD
MOVFNUM,W
ADDWFZONG,F
RETLW00H
YIWEIMOVLW.8
MOVWFCOUND
RETURN
CHUCLRFZONG1
BCFPAN,3
CHU1INCFZONG1
MOVFNUM,W
SUBWFSHU,F
BTFSSSTATUS,Z
GOTOCHU1
MOVFZONG1,W
MOVWFNUM
RETURN
CHENG10
BCFSTATUS,C
CLRFZONG
CALLYIWEI10
LOOP510MOVLW.10
MOVWFR1
LOOP610RRFR1
BTFSCSTATUS,C
CALLMPADD10
BCFSTATUS,C
RLFNUM
DECFSZCOUND
GOTOLOOP610
MOVFZONG
BCFSTATUS,C
RETLW00H
MPADD10
MOVFNUM,W
ADDWFZONG,F
RETLW00H
YIWEI10MOVLW.8
MOVWFCOUND
RETURN
;fengmingqi
XIANGBCFPORTB,5
MOVLW.4
MOVWFCOUNTER
JXCALLDELAY50MS
DECFSZCOUNTER
GOTOJX
BSFPORTB,5
RETURN
DELAY50MSBCFINTCON,T0IF
MOVLWTMR0B
MOVWFTMR0
LP1BTFSSINTCON,T0IF
GOTOLP1
RETURN
;XIAODENG
;
LEDMOVFLEDBIT,W
MOVWFPORTE
RLFLEDBIT,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术 课程设计