资源描述:
《单片机电子实训报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电子实训报告电了实训单片机系统设计课程名称:项目名称:专业:班级:学号:姓名:成绩:单片机最小系统设计(单片机最小系统原理)1432/Vcc3f4...56.....■■lOu1L•……78910114.7K1211314—/15、16F17••••••••、18/1911.0592IW12Mco1234cn-n-n-n-n-VppppppV-GND20RST/VPDP3.0/RXDP3.1/TXDP3.2/iNT0P3.3/INT1P3.4/T0P3.5/T1_P3.6歷P3.7/RDXTAL2XTAL1■^PO.7EWVPPALJPSENP2.7P2.6P2
2、.5P2.4P2.3P2.2P2.1P2.0i〔〕51最丕系统]」<邮开雲1-0-^-8-7-63一3一"?一2一2一224U-硬件调试总结(列出焊接、调试过程中出现的问题及解决方案)问题:数码管程序不显示原因:排阻焊反了解决:将排阻取下來重新安装三、软件调试(1)按键流水灯程序调试耍求:可实现流水灯循环点亮代码:#include//简单延时voiddelay(unsignedintent)while(-cnt)//主函数voidmain(){unsignedchartmp;tmp=OxFE;〃赋初值:二进制11111110Pl=tmp;while(l
3、){delay(50000);tmp«=1;〃左移一位tmp1=0x01;〃最后一位置1if(tmp==OxFF)〃检测是否移到最左端,重新赋值,因为C程序没有循环移位指令tmp=OxFE;Pl=tmp;//Pl口赋值}}(总结):8个LED灯分别接入P1.0〜P1.7,低电平有效本程序通过对P1口赋值來控制LED灯的亮灭,使其出现流水灯现象.(2)数码管程序调试要求:可实现8位数码管显示代码:voiddelay(unsignedintent){while(—ent);}//主函数voidmain()unsignedchari,j;i=j=O;while(l){PO=D
4、isplay[i];//取显示数据P2=Seg[j];〃取段码delay(DELAY_COUNT);j++;〃只有两个数码管,故段码仅可在0〜7之间循环if(8==j)j=0;〃j二j&0x07;〃本指令也可完成以上判断语句的功能冃•效率更高.思考为什么?if(DELAY_COUNT>=20000)〃延时较氏时,8个数码管循环显示0~9这十个数字{i++;i%=10;}else//延时较短时,因视觉残留问题,对同定的数码管显示同定的值.{••1二J;}}}(总结):P0.0〜P0.7接锁存器74HC573的D0~D7;74HC573的Q0〜Q7接4位共阴极数码管的显示引
5、脚A〜G及DP;跳线J3控制74HC573的工作方式:锁存方式下,P3.7接74HC573的LE;直通模式下,74HC573的LE接VCCP2.0~P2.2接3-8译码器74LS138的A〜C;74LS138的Y0〜Y3及Y4〜Y7分别接接数码管1及数码管2的DIG1〜DIG4本程序演示如何在数码管中显示指定的数字及小数点测试中可以通过调整delay函数的延时氏短来控制数码管显示模式:#defineDELAY.COUNTxxxx*当延时比较小时(<500),因为人眼视觉残留的原因会感觉是同时显示*当延时比较人时(>5000),会看到循环显示的现象(3)综合设计程序调试要
6、求:读取独立按键或矩阵键盘按键数值,实现数码管数值显示代码:ttincludesbitkcyl二P3"0;//定义按键位置sbitkey2=P31;sbitkey3=P32;sbitkey4=P33;unsignedcharcodeDisplay[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6F};unsignedcharcodeSeg[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮//简单延时voiddelay(unsignedintent){while(一ent);}//
7、主函数voidmain(){unsignedinti,j;i二0;j二0;P2=0x04;//段码设置:固定第一个数码管显示while(1)if(!keyl)〃按下相应的按键,数码管显示相应的码值delay(100);//去抖if(!keyl){P0=Display[i++];//取显示数据P2二Seg[j++];delay(20000);if(i==10)1=0;//取段码if(j二二4)j=0;}}if(!kcy2)1delay(100);//去抖if(!key2)Pl=0xAA;//2}if(!key3){delay(100);//