凌阳61单片机c语言秒表设计

凌阳61单片机c语言秒表设计

ID:12395069

大小:97.00 KB

页数:6页

时间:2018-07-16

凌阳61单片机c语言秒表设计_第1页
凌阳61单片机c语言秒表设计_第2页
凌阳61单片机c语言秒表设计_第3页
凌阳61单片机c语言秒表设计_第4页
凌阳61单片机c语言秒表设计_第5页
资源描述:

《凌阳61单片机c语言秒表设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、辽宁工业大学汽车学院微机原理结课论文课程名称:微机原理题目名称:单片机秒表设计专业班级:2010级研究生学生姓名:张洋刘钊宾朱孟恒指导教师:石晶一、系统功能方案1.本设计功能概述秒表系统设计——用凌阳SPCE061单片机设计一个3位LED数码显示“秒表”,显示时间为00.0~59.9秒,每毫秒自动加一,每十毫秒自动加一秒。同时增加按键功能:一个“复位00.0”按键KEY3(即清零),一个“暂停”按键KEY2(停止计数)和“开始”按键KEY1(开始计数)。2.本设计难点单片机电子秒表需要解决三个主要问题,一是有关单片机定时器;二是如何实现LED的动态扫描

2、显示及掌握数码管的段选、位选;三是如何对键盘输入进行编程。二、系统电路设计1.硬件电路图1数码管显示原理图21*8键盘电路图图3电源指示灯、睡眠指示灯图4电源电路原理图2.软件流程开始设置IOA0~IOA7为带同相的低电平输出设置IOA8~IOA10为带上拉的低电平输入设置IOB0~IOB2为同相的低电平输出数码管显示选择while按键的扫描三.系统软件设计1.源程序及注释#include#defineKEY_ALL0xff00staticintAddress[10]={0x00bf,0x0086,0x00db,0x00cf,0

3、x00e6,0x00ed,0x00fd,0x0087,0x00ff,0x00ef};staticintb[10]={0x003f,0x0006,0x005b,0x004f,0x0066,0x006d,0x007d,0x0007,0x007f,0x006f};inttemp,bai,shi,ge,key;unsignedintGetKey(void);voiddisplay(intbai,intshi,intge);voiddelay(intz);voidkeyscan(void);main(){*P_IOA_Attrib=0x00ff;//设置A口低8

4、位为同向低输出,控制数码管的显示状态*P_IOA_Dir=0x00ff;//设置A口高8位为同向高输入,获取按键的状态值*P_IOA_Data=0xff00;*P_IOB_Attrib=0x00ff;//初始化IOB0~IOB2端口为同向低输出,控制数码管的位选*P_IOB_Dir=0x00ff;*P_IOB_Data=0x0000;*P_TimerA_Ctrl=C_SourceA_8192Hz+C_SourceB_1;//设置定时器TimerA:8192Hz*P_TimerA_Data=0xfccc;//定时时间为0.1s*P_INT_Ctrl=C_

5、IRQ1_TMA;temp=0;while(1){if(GetKey()==0x0100)//获取键盘值{delay(10);if(GetKey()==0x0100)__asm("INTIRQ");//安装定时}elseif(GetKey()==0x0200)asm("INTOFF");//关闭定时器elseif(GetKey()==0x0400)temp=0;bai=temp/100;//给三位数码管赋值shi=temp%100/10;ge=temp%10;if(temp==600)//累加到600后清零temp=0;display(bai,shi,

6、ge);//显示三位数值*P_Watchdog_Clear=C_WDTCLR;}}voiddisplay(bai,shi,ge)//三数码管的位选,片选状态{*P_IOA_Data=b[bai];*P_IOB_Data=0x0001;delay(5);*P_IOA_Data=Address[shi];*P_IOB_Data=0x0002;delay(5);*P_IOA_Data=b[ge];*P_IOB_Data=0x0004;delay(1);}voiddelay(z)//延时函数{intx,y;for(x=z;x>0;x--)for(y=10;y>

7、0;y--);}#include"SPCE061A.H"voidIRQ1(void)__attribute__((ISR));//中断函数voidIRQ1(void){temp++;*P_INT_Clear=C_IRQ1_TMA;//清除中断标志控制单元}unsignedintGetKey(void)//使用IOA8~IOA15作为键盘输入口{unsignedintkeyvalue;unsignedinti=0;unsignedintk=0;*P_IOA_Dir&=~KEY_ALL;//初始化IOA的相应端口为上拉输入*P_IOA_Attrib&=~K

8、EY_ALL;*P_IOA_Data

9、=KEY_ALL;i=(*P_IOA_Data&KEY_

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

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

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