资源描述:
《单片机原理及其应用课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机原理及应用课程设计报告单片机课程设计报告一、设计任务1.1外部脉冲自动计数,自动显示。(PROTEUS仿真)●设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。●设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。1.2设计一个出租车计费系统:(开发板硬件验证)起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)二、设计内容1、(1)255计数器设计思路由于25
2、5刚好能用八位二进制数表示,所以本设计可直接采用重装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的十六进制转换十进制,首先TL1的内容除以64H,所得的商就是十进制的百位,然后用余数除以OAH,所得的商就是十进制的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码并在数码管上显示出来。每来一个脉冲其显示的结果加一,直至加到255然后T1重新开始计数。(2)主程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSP,#60H;初始化系统MOVTMOD,#60H;设置计数器1的工作方式2MOVTH1,#0FFH;
3、给高位赋值MOVTL1,#0FFH;给地位赋值SETBTR1;启动计数器1进行加计数SETBET1;开计数器T1溢出中断SETBEA;开CPU总中断MOVDPTR,#TAB;建表MAIN:MOVA,TL1MOVB,#64HDIVAB;A为百位,商存在A,余数存放在B中MOV30H,AMOVA,BMOVB,#0AH;0AH=10DIVABMOV31H,A;A为十位,B为个位MOV32H,BLCALLDISPLAYJNBTF1,MAINSJMPMAINDISPLAY:SETBP2.6;百位的段选CLRP2.7MOVA,32HMOVCA,@A+DPTRMOVP0
4、,#02HMOVP0,A;输到P0中LCALLL1SETBP2.7;百位的位选CLRP2.6MOVP0,#0FFHSETBP2.6;十位的段选CLRP2.7MOVA,31HMOVCA,@A+DPTRMOVP0,#01HMOVP0,A;输到P0中LCALLL1MOVP0,#0FFHSETBP2.7;十位的位选CLRP2.6MOVP0,#0FFHSETBP2.6;个位的段选CLRP2.7MOVA,30HMOVCA,@A+DPTRMOVP0,#00HMOVP0,A;输到P0中LCALLL1SETBP2.7;个位的位选CLRP2.6MOVP0,#0FFHRETL1
5、:MOVR7,#01H;延时程序,延时1msDEL:MOVR6,#248DJNZR6,$DJNZR7,DELRETTAB:DB3FH,06H,5BH,4FH,66H;0到9的共阴极数码管的段码表DB6DH,7DH,07H,7FH,6FH(3)仿真图1、2、(1)50000计数器的设计思路50000的计数器可以重新设置初值,用定时器0的工作方式1时把其设计为一个脉冲溢出一次,然后进行加一运算,先看个位,为10进1,十百千也是一样。到最高位的值大于10时,清零重新开始。(2)主程序如下:#include//包含头文件,一般情况不需要改动,头文
6、件包含特殊功能寄存器的定义#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换sbitLATCH1=P2^6;//定义锁存使能端口段锁存sbitLATCH2=P2^7;//位锁存unsignedcharcodeDuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9unsignedcharcodeWeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码u
7、nsignedcharTempData[8];//存储显示值的全局变量voidDelay(unsignedintt);//函数声明voidDisplay(unsignedcharFirstBit,unsignedcharNum);/*------------------------------------------------主函数------------------------------------------------*/main(){unsignedintnum=0;unsignedintj;while(1){j++;if(j==10)//检测
8、当前数值显示了一小段时间后,需要显示的数值-1,实现数据显示的变化