




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式实验大作业实验名称:数字时钟任教老师:何菁年级专业:15通信姓名:张非凡学号:172实验产品原理代码及其思想目录嵌入式实验大作业1.实验产品原理代码及其思想目录2.思想流程图2.函数收件.4.函数初始化4.主函数内容4.中断一的内容4.中断零的内容5.按键一中断5.按键二中断6.按键零中断6.头文件函数1.五向键状态计数函数8.总线和屏幕初始化9.星期计算函数10坐标计算函数10按键中断初始化1.1蜂鸣器发声函数1.1秒表函数1.1LED函数12函数开始/思想流程图第2页共12页判断按键以判断按键以判断按键以判断按键以及五向键的及五向键的及五向键的及五向键的IfIt通过扫描实时显示在屏幕
2、上张非凡2015020900172程序的初始化时钟界面判断处于哪一个界面时间界面从EROM中读闹钟界面秒表界面变化变化变化变化改变时间的改变时钟的改变闹钟的改变秒表的数值数值数值数值第3页共12页函数头文件#includefinclude4incluclefinclude#includ.efincludetinclude*includ.efincludestring*hrrLPC17xx,hrrtitboardhIpclTeS2c.hrrLCD16O27hhr,LCD.hnLPCiTeatc.h*my.h*1rrLED.hr,用于测量数组长度的函数包含其中LF匚尸6号CPU的基本参数包含其中
3、宝马开发板的基本参数包含其中工2c总线的基本箜数包含其中 LCD1EQW基本显示的函数包含其中LCD的初始化参数包含其中LFCFS的时间参数包含其中自己定义的函数的头文件包含其中LD灯的基本参数包含其中函数初始化inteatincts?intcouncxs;xntcountHEin;unsignedunsignedunsignedunsigneduifusignedLmsignedintintintint二ntintmysmysec1;;iryminiryminflfl; ;rayhourrayhour r rir.yrrir.yrrjdayjday: ; ;蚂城lOdth1;myyear1J
4、;suatrrcharBLT16;5匚atID二二二口 n:hQ0匚1百uusxiixrdluiiyyjstaticImgup;stiatilondown;stiatilanleft;staticlonin;sr.ati.clangrigJit;staticintL-ime=l;staticintclack=9;staticintclac)cB=::staticintcount=3;定义一个整型用于存储秒表的十分秽“定义一个整型用于存储秒表的秒“定义一个整型用于存储“定义一个一位的整型数组用于存放二哥时钟的秒单位“定义一个一位的整型数组用于存放二号时钟的分单位“定义一个一位的整型数组用于存放二
5、号时钟的时单位“定义一个一位的整篁数组用于存放二号时钟的天单位定义一个一位的整理数蛆用于存放二号时钟的月单位定义一个一位的整型数组用于存放二号时许的年单位“定义一个字符串作为存放需要显示的内容的中间变苣”.定义一个长整型其数遭是五向键中光标显示的K坐标“定义一个长整型其数值是五向键中光标显示的y坐标“定义一个长整型其数值是五向键中光标向上移动的次数定义一个长短型其数值是五向键中光标向下移动的次数定义一个长整型其数值是五向键中光标向左移动的次数定义一个长整型其数值是五向键中光标按下的次数定义一个长整型其数直是五向超于光标向右移弹的次数/t.xmeclockclockbcount所对应的数值表明了
6、当首里整”显示的是哪一页菜单“他们当中经过限定必然是三个为。一个为1 1由于演音机最后没有兼容成功问题很多所以mum界面在这次是作为计时表用主函数内容mainmain(%roxd.(%roxd.speak_Imt()Imt(); ;LEDConf()LEDConf(); ;krep_interrupt();LPCtimerO()LPCtimerO(); ;LFCtinierl()LFCtinierl(); ;LCDI2CiniLCDI2Cinit tialial(; ;SySy31cm31cmImt()Imt(): :RTC_Tnxt;()RTC_Tnxt;(); ;/Ztin-eset);/
7、cloclc3et/cloclc3et( (););()ERTC_Staim();二二D二 Q_二_二十_二_二二_LLi i; ;4 中断一的内容u.pu.p LipnumaLipnuma( ( :1届在界面,TtEihfHTtEihfHcrhtnumcrhtnumCI I:I:I(LFC(LFCTIMl-IRfTIMl-IRfiOxOl-0 xOliOxOl-0 xOlLPCTIMl-MR-OxOl;进入主函数主函数开始噫叭的祈始化/LED/LED灯的初始化按铤中断的初始化/定时器0 0的初始化定时器1 1的初始化/LCIX1E/LCIX1E0=0=屏再和工2 2匚总线的初始化/索铳的初始
8、化时钟的初始化为系统置入时间宾恚要操作一次为系统置入闹钟只需要操作一次/从EHROHEHROH中读取设置的时钟H H保证了断电时钟信息不丢失/系统时钟计数尹始/LCDJ./LCDJ.名 8 的光标打开/初始化元成开蛤执行命令程序命令开始获取五向键向上的次数以期翳融誉口下日数I I的次凝/海薪舁输招醵的次趣开始执行匹配的内容清除中断标志ifif&clocJcOclocJcOG G百clocfcBOcounLO)clocfcBOcounLO)如果显本的是工工HEHE界面“显示与T工ME界面有美的内容中断零的内容将自己定义的二号闹钟的信息存入E2ROM当中*每曜五秒将闹钟二的信息存入2ROM
9、*n*m*m*/if(LFC_TIM0-IR4r3xjl)=2xl)31一inti;for(i-3;i12C1D21J;i+);EPROM_WxzteSeq(1rmysec1);for(i=0;i100000;i+):ESPROMWriteSeq(12,mynij.n,1);fox(i=O;ilOO0OO;i+);E2PROM_WriteSeq(21,myhoijrf1);for(i=0;i100000;i+);E2PROM_WxzteSeq(31,iLyiEday,_;for(i=0;i100000;i+);E2FR0M_WriteSeq(2finynior:thF1);for(i=0;iI
10、R=0 xO1;t1按键一中断负责减去对应五向键对应位置的数值veinEINT1iflQHanditr(veid)p一mti;LPC_5C-EXTINT=0 x02;for7i=0;iFIOPINGPI02-FIOPINKEY1KEY1)=0)(-while(LFCGPIO2-FIOPIN)&KEY1)-);pt_if(tjLme=l)switch(y)寿5?/按潼上产降沿就会激发裁键中断延迟一段时间确定真的按下“确定真地按下了等特按键抬起,去除抖动“如果显示的是炉间界面判胪五向键Y坐标的位置 定时器工每过5秒匹配一次 存储之间要有延迟不要连装存储时钟二的秒信息到E2R0M存储时钟二的
11、分信息到E2REXTINT=2-x34;forf1=3;1FIOPINtKEY2)=?)4-一voidvoidEINTOIRQRandlerEINTOIRQRandlertvoid)tvoid)如果基搔键口作用就是切换菜单,每按一次就会进入光标对对应的菜罩界面int1=3;LPC_SC-EXTINT=LPC_SC-EXTINT=DK;1;for(!=;!FIOPIK4KEYOJ-OJ按键零中断负责改变菜单目录的显示while(LPCGPIC2-FIOPIN)iKEYO)=3;if(&clcelcOLelocJcB-:LtCEuriT:,-口J/如果是在对叵界面/.通过光标的坐标崎定是要
12、进入suntsunt界面还是二locklock界面if(y=lxFI0PIN25)tOxlF)OxlFstate。statel5ace2/charchar匚三 邑rcharckarvoidvoidvoid1TLZintriglit_nuin(void;down_minjjvciid);UpHLUE(VOld):left_num(void);in_.nuiL(void);LCDI2C_inii;ial(void);timeset(void);clockset(vcid);rrath_x(inta,intb);mathy(inca,intb);五向键向右移动的次数五闫握向下移动的次数五向键向上移动
13、的次数五向键向左移动的次数五白裳向里移动的次数总线和屏幕初始化定义系统时间定义闹钟时间五向键光标的横坐标五向键光标的纵坐标一IFimIFimJLta a/凡/ /ririJ、#*押*喳彳青审者*青青弁*青货*1奇才修育看*育肯者*-*青青*吟彳押青甘甘青商青青才/*青/tdefinekey_input(LFC_GFI01-FIOPIN25)&OxlF)tOxlF#definestaceO0# definestatel二tdefinesuateS2unsignedcharreadjoystickright(void(st.Eicunsignedchar3Eace=0j运用状态机的方式判断
14、五向键完成了按下又抬起这样的一个过程unsignedcharkey_return=3;key_press=)cey_input;/KEYPRESS的值不同对应五向键按向了不同的方向switch(state)11returnJceyrecurn;总线和屏幕初始化tincl-.ide*lpcl?z_izcIiinclLJdeLCDISOS.h*ftinclade*LCD.ii,voidLCDI2Cinitial(voidI2C_ImcTypeDef12C_InitSLruct;12匚二工nit3true匕,ModE:I2C_MASTER;laC2InitStruct,ClockRate=10000
15、0;/,特别注意的是这个12c的速率要满足LCD和ERCM两样东西的共同需求12C_InitStruet.InterruprMode-12C_IIJTERRUFTMQDE:I2C0_Init(iI2C_Init5truct);Init-LCD1O2()“LCD和12c总线的初始化、星期计算函数IincludeLPC1763_rtc.hexLernRTCTutert7_clock3;RTCTimelccal_time:RTCTIMclocLiinfi;exterr,unsignedintmysecl;;从主函数二三行夕界变售 exteir.unsignedintmyiniDmyiniD 1;,/
16、用于设定万钟二的信息externunsignedintlaybouj(1);extsrrunsignedinrmTdayl;exteiEunsignedintmTncrtl;1;externunjinedintrvcidvcidtinierettinieret(void)(void)/*设置当前时间 7H.一voidcleckset(void),*设置闰/一一*/一;voidvoidclockBjetclockBjet(void),*从 ERH 巡面读装闹钟二*,H/这一段得到星期几的代谒是参考其他同学的,因为这个代码几乎是已成定式的工具代酉 r 我就出有自己在用究一套新的方法直裁拿来用了In
17、tclyear(intyeai),输人年数若为平年返圄i闰年返回口H,L门、士曰=Qint 口 Ui*kdmy(inthintm,int 山喝入年月日.返回表星期的百的数值IJ_idHek(inEWEekj/JWEekj/J报书再同BE已 Ieda?i函数返回的数值专人后软 H 对正宏呈笠ljunsignedinuicath_x(intb)7淘过五同塞向右曲商左的次数讣算得出五向犍现在的横坐标的位置Lmsigned二irtc;c=a-b;c=ct16;returnc;坐标计算函数unsignedintrrat;h_y(inta,intb)通过五向键向上H向下的次氮计茸的上五向键现在的线位置|u
18、nsignedmtc;c=a-b;c=c2;returnc;按键中断初始化voidkep_interrupt(void定义KEYJ.key2代产。的按犍中断的方式模式|一并启用中断LPC_PINCON-PINSEL4|=::PINSELl=DxFrCFFFFF;LFc2GPIOO-FIODIRI(1UL2;LPc2GPIOa-FIOPIN=(1UL26;)/*蜂鸣黯输出高电平/voidspeakOn(void)LPCGPIOO-FIOSET|=(!ULz6);/*降曲翳输出低电平*/voidspeakOff(void)EH-LPC_GPIOO-FIOCLR|=(1UL26);)CQUTLtJt5=.countis=3;countmin=0;秒表函数externinccountts;externintcountis;externintc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025私人投资合作协议合同样本
- 2025市场营销专员聘用合同
- 图书馆学论文
- 美术与设计专业研究生入学考试题及答案2025年
- 2025年新媒体传播专业研究生入学考试试卷及答案
- 2025年心理健康法治宣传考试试卷及答案
- 2025年现代汉语语法试题及答案
- 函数的求导法则1
- 2025年农作物种植技术考试试卷及答案
- 2025年人机交互设计专业考试题及答案
- 【MOOC】科技英语翻译-南京航空航天大学 中国大学慕课MOOC答案
- 宿舍楼施工组织设计
- 钢结构厂房防腐施工方案
- 自建房盖房子免责协议书范文
- PAS 2050:2011-商品和服务在生命周期内的温室气体排放评价规范(中文)
- 2022版义务教育语文课程标准
- 手术分级目录(2023年修订)
- 湖北省名校2025届高三下学期联考物理试题含解析
- 咖啡厅食品安全管理制度
- DB65-T 4773-2024 生物安全实验室消毒技术指南
- 炸药成型与装药的数字化与智能化
评论
0/150
提交评论