单片机原理及其应用课程设计报告

单片机原理及其应用课程设计报告

ID:9938102

大小:1.57 MB

页数:16页

时间:2018-05-16

单片机原理及其应用课程设计报告_第1页
单片机原理及其应用课程设计报告_第2页
单片机原理及其应用课程设计报告_第3页
单片机原理及其应用课程设计报告_第4页
单片机原理及其应用课程设计报告_第5页
资源描述:

《单片机原理及其应用课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

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,实现数据显示的变化

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。