资源描述:
《单片机作业五.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机原理作业——串口控制两个数码管探测一班15xxxxxx09xxx串口控制两个数码管一、系统设计要求设计晶振频率为12MHZ,将拔码开关数据串行输入到74LS164,并行输到2个LED数码管进行相应的数码显示。二、系统设计分析此次的设计是单片机串行口在方式0下发送数据,把串行端口设置成“串入并出”的输出口。将它设置为“串入并出”的输出口时,需要接一片8位串行输入和并行输出的同步位移芯片--74LS164。当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当A、
2、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当A、B有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用下决定Q0的状态。引出端符号:CLOCK时钟输入端,CLEAR同步清除输入端(低电平有效),A,B串行数据输入端,QA-QH输出端极限值.74LS164是八位并出串行移位寄存器.功能是将数据串行移入,并行输出.P!4=VCC,P7=GND.P1=A,P2=B,两脚是数据串行移入口.P8=时钟。P9=清除.P3=QA,P4=QB,P5=QC,P6=QD,P1
3、0=QE,P11=QF,P12=QG,P13=QH是并行输出口三、系统原理图设计系统所需元器件有:按钮BUTTON、瓷片电容CAP30pf、单片机AT89C51、电解电容CAP-ELEC、电阻RES、晶振CRYSTAL12MHz、2个共阴极LED数码管7SEG-COM-CAT-GRN、74LS164、DIPSW8。四、程序流程图设计五、源程序设计1.汇编语言程序:ORG0000HAJMPMAINORG0100HMAIN:MOVSCON,#00HMOVDPTR,#TABLELP:MOVA,P1CJNEA,30H,LP
4、1AJMPLPLP1:MOV30H,AANLA,#00FHMOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIMOVA,30HSWAPAANLA,#00FHMOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIAJMPLPTABLE:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FHEND2.C语言程序:#include"reg51.h"unsigned char m;unsigned char n;unsigned char i=0;const un
5、signed char tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};void main(){SCON=0x00;while(1){while(i!=P1){i=P1;m=i/16;n=i%16;SBUF=tab[m];while(TI==1){TI=0;}SBUF=tab[n];while(TI==1){TI=0;}}}}六、系统调试与仿真及调试结果分析七、对本课程学习的感想与收获单片机的课程马上就要结束了,说实话,之前的作业做得着实不够用心,
6、学习也并没有太下功夫,第四次作业答辩时老师对我进行了批评,所以这一次作业我认认真真从头到尾地做了一遍。我发现当我认真地进行仿真的时候,单片机真的蛮有意思的,只是在汇编语言上还是有些吃力,而且最后也没能得到理想的实验结果,第二个数码管始终没有亮起来,参考了书,也请教了同学,但是依然有些语句并不能够理解,最后也没能找出错误出在哪里。不过还有最后一次大作业,我会努力的。说到底,我的单片机学得不够那些单片机学得很好的同学那样轻车熟路游刃有余,问题还是出现在汇编上,一串一串的代码总会让我觉得有些繁琐麻烦,每个代码对应的功能和
7、含义总给我一种背英语单词的感觉,可能因为我对英语的兴趣不高,所以当看见代码时也会产生类似的厌倦感,时间长便在学习编程的过程中产生了许多困难,而编程的困难渐渐消磨了我对单片机的兴趣。但是我不会放弃,毕竟以后的课程甚至以后的工作中都会用到这些东西,我会努力克服这些在编程中遇到的困难,可能过程会比较慢,但是我想只要我不放弃,终究能把汇编语言学明白。经过张老师的教导和批评,再从这单片机门课再联系到其他课程,我意识到了偏科的严重危害,任何一门课的偏科都会影响到其他相关相近的科目以及后续的科目,我不能完全由着自己的兴趣和性子来
8、选择性地学习,要把所有我应该掌握的都尽力学好。所以我会尽力改变我对我弱势的科目的态度,并努力把落下的知识补回来。谢谢张老师