第一篇:单片机总结报告
单片机总结报告
——IC卡
小组成员:刘绍凯
06291043
刘永欢
06291044
一、实验设备
………..二、实验原理
刘中芳
06291045
如硬件连接图所示,本系统可分为如下几个模块:
单片机80C196模块(复位、晶振电路,电源电路)显示模块
键位模块
IC卡(24C01)模块
80C196单片机的外围电路:复位P22 80196内部的振荡电路是一个单级非门电路,它与石英晶体配合时,可以组成一个振荡器,构成单片机所需要的时钟。
显示见预习
键位见预习
IC卡见预习及资料
三、设计框图
四、程序
五、调试过程
虽然最后还是做出来了,但做的过程还是挺复杂的。
(1)将wave6000仿真软件复位后有如下没注意到的语法错误.:
1.AX
EQU
20H 错误提示:“行:1,错误334:重复定义:AX
错误原因是AX寄存器在仿真软件里的设置汇编预定义符号里已经定义过了。解决办法一是去掉相对应的伟福预定义寄存器,二是将源程序里的寄存器定义去掉。
2.LDB
AX,OEH 错误原因将寄存器地址单元0E写成了OEH,应将大写字母O改为0(2)分步调试单步执行,断点
3.首先检查程序运行后4个显示数码管是否都有显示,再看其显示是否合乎要求。
按地址键时,发现低两位数据每次在加1,说明控制四个字位的寄存器的顺序不对,控制数码管从高到低依次应是HSO.0~HSO.3; 4.源程序运行后,发现数码管的高两位数据一直在加1。
错误原因:当任意一个按键按下去后,给P0口送的是低电平,而我们编的程序恰恰相反,应该是让P0.0~P0.3检测到低电平时跳转到相应的子程序。
5.每按下一次地址键或数据键时,有时要跳好几个数,不能连续地变化。
源程序如下:DATA:
LCALL
DL1
JBS
0EH,0,SCAN DL1:
LDB
25H,#80 H1:
NOP
NOP H2:
LDB
AX,#200
NOP
NOP
DJNZ
AX,H2
DJNZ
25H,H1
RET
错误原因是设置按键的延时时间不够长,而且当一次长时间按时,会出现数据一直往前跳的情况。要消除此种现象,我们运用了如下的程序:DAT: LCALL DL1
JBC 0EH,0,DAT 6.当按下数据键后,显示的数据会往下加,但当按下写键后,数据又变为写之前的数据。说明WR子程序,改变了DATABUF里面的数据。经过我们的仔细检查后发现在写子程序里有如下两句语句: LCALL
READ LD
DATABUF,READDATA 它们的作用是将IC卡当前地址中的数据读到数码管中,但此时更改后的数据还没被写入到IC卡中。应该将它们去掉或放在调用写子程序的后面。6.每次读出来的数据都是FF。而且将更改后的数据写入当前的地址时,当程序复位后再找到该地址时,没有显示之前写入的数据,而仍然是FF。说明无法对IC卡进行读/写操作。此时我们耐心地从每个与读和写有关的子程序查起,发现数据子程序,地址子程序,写子程序,还有发送起始信号,结束信号,SDA及SCK信号均无异常。
此时我们想到了先单步执行,然后到写和读子程序时跟踪执行,注意到了当前更改后的数据确实是存到了DATABUF,而当前的数据却没有进入到READDATA,说明数据没能够进入到IC卡中,也没有从IC卡中读出来。而读时序和写时序我们也都检查了几遍了,也都符合24C01的规定。此时,我们只有找到指导老师,老师帮我们看了一下程序后,发现也没什么地方有问题,就觉得应该是IC卡有问题。所以给我们换了一张卡,然后我们试了一下,发现果然能对IC卡进行读写了,而且每次读出来的数据都是随机的。
到此,已能对IC进行正常地读/写了,调试完毕了!
六、设计心得
俗话说“好的开始是成功的一半”。我认为最重要的就是做好设计的预习,我们首先搜索到了IC卡的相关资料,弄清楚了单片机对该IC卡进行读和写的工作过程。明白了读写器件寻址地址、起始信号和结束信号在读和写的过程中所发挥的作用。然后通过编写程序,知道了硬件的接口是如何进行连接的,进而使我加深了对整个系统工作原理的理解。
其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去调试,到头来所做的工作都是白费。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
另外,我也学到了一些调试程序的小技巧。比如,如何设置断点进行调试程序。还有在“单步运行”、“跟踪执行”时观察单片机内各寄存器内容和状态用以检验目标程序是否正确、以及硬件系统的连线及功能是否正确。
软件的编程要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求工作起来。
当然,这其中也有很多问题,第一、不够细心比如对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,是知识学得比较死,不会灵活地运用,不会举一反三。第四,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
实践证明,通过该课程设计,不仅提高了学生学习的兴趣,加深了对专业知识的理解,开阔了视野,也为以后毕业设计打下良好的基础。单片机课程设计这一实践教学环节的有效开展,有助于学生有效地掌握所学知识,缩短从理论知识到实际应用的过程,很好地培养了我们对专业的兴趣,增强了学生的创新意识,提高了学生的动手能力和实际应用能力。
我认为,学编程读别人的程序非常重要,每个人都有不同的思维,相同的任务却有很多不同的方法,在每个程序里都能找到些经典的段子,让人回味。从中可以学到很多的方法,并且有些可以直接的引用。一个出色的程序员在编程时,并不是从零开始,而应该是先找出类似的例子进行分析,参考,看看有没有值得引用和借鉴的地方,加以修改,为自己所用。实践证明,这样做是对的。
当然,努力归努力,方法也很重要。在这里,我总结一下,与大家共勉:
1、基本功要杂实,要有一定的数模电基础。学单片机首先要搞清楚它的基本结构和存储单元的分配。
4、多读有代表性的程序,读得多了自然就会学到很多的好方法。可买本单片机子程序集看看,也可网上下载程序分析。
5、多泡泡单片机相关的论坛,与大家多交流交流,单片机完全可以自学的。
我觉得以上几点相当重要,因为它对我帮助很大,算是将我领进了单片机的大门,以至于我学起来不那么吃力,没有感觉到像大家说的那样的难。我看过很多的程序,也调试过很多的程序,每一次收获都不小。我的实验室就是KEIL和PROTEUS。这使我做实验很方便。虽是虚拟的,但调试程序还是可以的,省去了很多的时间提高了效率。最近我在学CX51,因为学单片机掌握C语言是非常重要的,C语言的通用性对学习其它类型的单片机有很大的帮助。今后,我想做嵌入式系统工程师,想学ARM,想搞操作系统。所以我现在必须打好基础,这样才能进步。
通过这种途径的实践教学活动,我们将前几年所学的知识综合起来了,将所学的知识应用于实践中去了。这样,到了社会上我们就更
有竞争力了。
实践证明,通过该课程设计,不仅提高了学生学习的兴趣,加深了对专业知识的理解,开阔了视野,也为以后毕业设计打下良好的基础。单片机课程设计这一实践教学环节的有效开展,有助于学生有效地掌握所学知识,缩短从理论知识到实际应用的过程,很好地培养了学生的专业兴趣,增强了学生的创新意识,提高了学生的动手能力和实际应用能力。
第二篇:单片机课程学习总结报告
单片机课程学习总结
班级 09微电子学号姓名
这学期我们选择了单片机这门课,从第一节课开始,我们就感觉到了这门课与其他的课有一些不同。单片机课程不仅是学习书本的内容,也需要从实验中掌握知识。这门课程确实让我们受到了很多的启发,并学到了很多的知识。学习单片机,要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使我们从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。
熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,不可能一蹴而就。万事开头难、要勇敢迈出第一步知识点用到才学,不用的暂时丢一边。想把厚厚的一本书看完在做实验,估计是不太可能的。看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看。我们在焊接具体电路之前,最好做个仿真,这样实验的成功率会大大提高。我们都学习过C语言,相信的大家的基础都不错,在编写程序千万不要光看不写,一定要自己写一次。刚开始我们可以模仿别人的程序,然后慢慢的学会自己编写,这是一个完全自主学习的过程,需要恒心和信心。
在学习这门课程时,我遇到过许多困难,这并不可怕,因为只要我们敢于面对,团结合作,就没有解决不了的问题。在焊接电路过程中,我们需要互相学习焊接技巧,互相帮助、互相鼓励。在编写程序的时候,要善于把自己好的算法给大家分享,不会的时候要虚心向同学和老师请教。当然更要利用当今社
会为我们提供的网络资源,学会在网络上搜索资料,自主学习。切忌拿别人做好的实验和编写好的程序去蒙混过关,这样对自己百害无一利。
在学习单片机的时候,让我学会了思考生活中的点点滴滴。比如说,当我看到交通灯的时候会想到它的程序是怎样实现的?为什么它的led灯会有如此的高亮度?而我的led灯亮度很低,如果电流稍过大,就会烧毁。在家乡的公家车上看到远程led信息远程发布测试的时候,我便会想到它应有通信模块和显示模块两部分组成,也许我想的过于简单,但是让我学会了思考。
总之,学习单片机这门课程,不仅学会了这门专业课的知识,还提高了我的自主学习能力,更让我的世界观、方法论有了深层的提高,谢谢老师对我的教诲,让我受益匪浅。
第三篇:1单片机实训总结报告
单片机实训总结 为了锻炼学生的动手能力及激发学生的创新能力,我们班于第十五周在单片机实验室迚行了单片机实训。在实训过程中首先我们要明确实训目的:
1熟悉单片机应用系统的开发、研制过程。
2、能运用MCS-51单片机迚行简单的单片机应用系统的硬件设计。
3、能采用MCS-51单片机汇编语言迚行简单的单片机应用系统的软件设计。
4、掌握单片机应用系统的硬件、软件调试方法。
5、熟悉单片机仿真开发系统的作用,基本掌握运用单片机仿真开发系统迚行在线仿真、调试和目标程序固化的方法。
6、为今后从事单片机应用系统的开发、生产和维护工作奠定基础。
在实训的第一天我们经过指导老师,XX老师和xx老师详细的为我们讲解了实训指导书,让我们了解实训当中所学的内容与一些元器件和我们要实验的课题。在实验中主要有三个课题。第一是十字路口交通信号灯的设计与制作。课题
2、比赛用秒表的设计与制作。课题
3、模拟霓虹灯控制系统的设计与制作。为了能让我们更好的掌握知识我们把全班31人分成10组,我们在小组里也分工合作,也可以培养我们同
学之间的合作能力。在此有做硬件的,有做软件的,这样能够更好的加强自己的动手操作能力。第一个课题是我们必须做的,在做完的第一个的基础下才能选择第二个或底三个,第一个课题在同学们的认真操作下很快就完成了,几乎在第二天大部分小组都可以完成。这也证明同学们是很认真的投入到实训当中和知识的牢固性。
在第三天,正是实训的高潮,每个同学都投入到这种氛围当中,在实训操作中把不懂的记下,然后问指导老师,在老师的细心指导及时的解决问题。看到我们的不足之处。理论与实践相结合是最好的效果。时光飞逝,一转眼,一个周又迚尾声了,实训就这样过去了,但真正的实训还未开始,我将要继续努力,继续奋斗。
俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是如果作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
第四篇:单片机课程设计总结报告参考22
湖州师范学院
课程设计总结报告
课程名称电子系统综合设计设计题目基于STC89C52的电子号码锁的设计
专业 班级 姓名学号指导教师报告成绩
信息与工程学院(求真学院信息与工程系,两选一)
二〇〇九年十月十九日
《电子系统综合设计》课程设计任务书
一、课题名称
《基于STC89C52的电子号码锁的设计》
二、设计任务
1.采用STC单片机和键盘,设置4位密码用于模拟门锁、保险箱的开门密码,设置的密码存
储在I2C AT24X存储器芯片中;
2.上电时初始化密码为“0000”,数码管显示为“0000”;
3.密码设置与更改:输入“*XXXX#YYYY#”,其中“XXXX”为原先4位密码,第一次设置
为初始密码,“YYYY”为欲设置的4位密码,如设置成功,则绿色LED灯亮,蜂鸣器长鸣一声,之后LED灭;否则红色LED闪烁三次。
4.模拟开门:输入“#YYYY#”,如输入密码与存储的密码相符,则绿色LED灯亮,蜂鸣器
发出“滴-滴-滴”三声,之后LED灭;否则红色LED闪烁三次。
三、设计报告撰写规范
单片微机应用系统设计总结报告正文,主要含以下内容(硬件、软件各部分内容也可组合起来进行撰写说明):
1.系统总体设计方案(画出系统原理框图、方案的论证与比较等内容);
2.硬件系统分析与设计(各模块或单元电路的设计、工作原理阐述、参数计算、元器件选择、完整的系统电路图、系统所需的元器件清单。等内容);
3.软件系统分析与设计(各功能模块的程序设计流程图与说明、软件系统设计、软件抗干扰
措施、完整的程序等内容);
4.系统仿真调试与参数测量(使用仪器仪表、故障排除、电路硬件和软件调试的方法和技巧、指标测试的参数和波形、测量误差分析);
5.总结(本课题核心内容及使用价值、电路设计、软件设计的特点和选择方案的优缺点、改
进方向和意见等);
6.按统一格式列出主要参考文献。
《基于STC89C52的电子号码锁的设计》
课程设计总结报告
一、系统总体方案
(以下各小节可以根据内容分1.XXX2.XXX3.XXX分别进行撰写)
(画出系统原理框图、方案工作过程的论述、整体设计电路图、单片机的选型);
二、单片机概述
用到的单片机的选型及主要特点,设计时需要注意的问题„
三、键盘电路
键盘扫描概述、此次用到的键盘电路图、工作原理、硬件电路注意的问题、程序流程、编程注意点„
四、显示电路
一般显示电路概述、用到的电路图、用到动态扫描工作原理、硬件电路注意的问题、程序流程、编程注意点„
四、单片机扩展I2C总线器件的接口与通信
I2C总线器件概述、工作原理、与单片机的接口电路、模拟通信、程序流程、编程注意点„
五、系统调试
调试的软硬件环境和使用说明(参考901U--USB全自动在线编程单片机实验板实验指导书)、调试技巧与方法、调试过程中遇到的问题及解决方法„
六、总结
心得体会、课程设计中遇到的问题及解决方法„
附录:
(完整的程序,字号可小一二号,分两栏排版以节省纸张)
主要参考文献:
例:
[1] 周立功.ARM&WinCE实践与实验:基于S3C2410[M]北京:北京航空航天大学出版社,2007.[2] 李朝青.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版社,2000
[3] 马春华,于莉莉.SMS方式远程监控软件的设计与实现[J].广东通信技术,2003,23
(4):39-41.[4] 肖冬荣,殷传军.鲁棒GMC 控制及其工程应用[J]微计算机信息2007,30(3):21-23
第五篇:单片机实验四总结报告 2
单片机实验四报告
直流电机实验实验
一. 实验目的利用 PWM 控制直流电机的转动速度。
二. 实验设备及器件
IBM PC 机 一台
DP-51PRO 单片机综合仿真实验仪 一台
三. 实验内容
学习如何控制直流电机。PWM
功率驱动电路如下:
原理图如图 3.34,只要ZDJ_A 的电压比ZDJ_B 的电压高,电机正转。如果ZDJ_B 的电压比ZDJ_A 高,电机反转。
四. 实验要求
利用实验六的程序,用D1 区的按键KEY2 与KEY3 改变PWM 的占空比来控制直 流电机的转速。
五. 实验步骤
1.用导线连接 A2 区的P11 与D1 区J53 接口的KEY1。
2.用导线连接 A2 区的P12 与D1 区J53 接口的KEY2。
3.用导线连接 A2 区的P10 与B8 区的J78 接口ZDJ_A。
4.B8 区J78 接口的ZDJ_B 连接到C1 区的GND。
5.短接 B8 区JP18 的电机电源跳线。
六. 实验参考程序
#include “reg52.h”
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
unsigned char PWMH;//高电平脉冲的个数
//总脉冲个数 unsigned char PWM;
unsigned char COUNTER;
void K1CHECK();
void K2CHECK();
void INTTO()interrupt 1//定时器0中断服务程序,在这里控制P1_0口的输出电平,驱动电机
{
COUNTER++;//计数值加1 if((COUNTER!=PWMH)&&(COUNTER==PWM))//如果脉冲计数个数达到了预定的总脉冲个数
{
COUNTER=1;
} P1_0=1;//计数器复位 //P1.0变为高电平1,开始新的下一周期
else if(COUNTER==PWMH)//如果脉冲计数个数达到了预定的高电平脉冲数
P1_0=0;//P1.0输出为高电平1的脉冲个数已经达到,开始变为低电平0
}
main()
{
PWMH=0x02;//预定高电平脉冲个数
COUNTER=0x01;PWM=0x15;//预定总脉冲个数 TMOD=0x02;TL0=0x38;TH0=0x38;ET0=1;EA=1;TR0=1;while(1){if(P1_1==0)K1CHECK();//扫描按键KEY1,如果符合,进入电机转速加速处理函数 if(P1_2==0)//定时器0在模式2下工作 //定时器每200us产生一次溢出,设定自动重装的值。//使能定时器0中断 //使能总中断 //定时器0开始计时
K2CHECK();//扫描按键KEY2,如果符合,进入电机转速减速处理函数
}
}
void K1CHECK()
{
while(P1_1==0);if(PWMH!=PWM){PWMH++;//高电平脉冲个数加1,增加占空比 if(PWMH==PWM)//如果高电平脉冲个数等于总的脉冲个数,{} TR0=0;//关闭定时器,P1_0=1;//P1_0恒输出1,达到最大转速 else {} if(PWMH==0x02)//高电平脉冲个数增加到2时候,开启定时器 {TR0=1;}
}
}
void K2CHECK()
{
unsigned char TEMP;
while(P1_2==0);
if(PWMH!=0x01){PWMH--;//高电平脉冲个数减1,减少占空比TEMP=PWM;TEMP--;if(PWMH==0x01)//如果高电平脉冲个数减少到1,{} else {} if(PWMH==TEMP){} TR0=1;TR0=0;//关闭定时器,P1_0=0;//P1_0恒输出0,电机停止转动
} }
步进电机控制实验
一.实验目的了解步进电机的工作原理,掌握它的转动控制方式和调速方法。
二. 实验设备及器件
IBM PC 机 一台
DP-51PRO 单片机综合仿真实验仪 一台
三. 实验内容
1.编写程序,通过单片机的 P1 口控制步进电机的控制端,使其按一定的控制方式进 行转动。
2.分别采用双四拍(AB→BC→CD→DA→AB)方式、单四拍(A→B→C→D→A)方
式和单双八拍(A→AB→B→BC→C→CD→D→DA→A)方式编程,控制步进电机 的转动方向和转速。
3.观察不同控制方式下,步进电机转动时的振动情况和步进角的大小,比较这几种控 制方式的优缺点。
四. 实验要求
学会步进电机的工作原理和控制方法,掌握一些简单的控制电路和基本的电机基础
知识。
五. 实验步骤
1.安装C10区JP6接口上的短路帽,将C10区J41接口与A2区J61接口的P10~P13 对应相连。
2.打开程序调试软件,下载运行编写好的软件程序,观察步进电机的转动情况。
3.修改步进电机的控制程序,再次运行程序,比较它们的不同控制效果。
六. 实验程序代码
#include “reg51.h”
void DELAY();
main()
{
while(1){
P1=0x08;DELAY();P1=0x0C;DELAY();P1=0x04;DELAY();P1=0x06;DELAY();P1=0x02;DELAY();P1=0x03;DELAY();P1=0x01;DELAY();P1=0x09;DELAY();//A //AB //B //BC //C //CD //D //DA
}
}
void DELAY()
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<100;j++);
}
总结:
通过是要进一步熟悉了之前对于51单片机的开发环境,巩固掌握了单片机开发语言的使用以及循环结构的设置及调用。通过上机,将书本上学习到的知识运用到实际中,实际操作的过程中通过修改代码达到改变控制的效果。