




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机硬件技术基础(2011)综合性实验考试报告一、题目:作息时间控制系统(13)二、问题的提出一般机关、部队、企业等部门尤其是学校,对作息时间有严格的控制,可以采用MCS-51单片机设计一个控制作息时间的系统。作业时间控制系统,由8051内部的定时器,设计一个电子时钟,当电子时钟达到作息时间的点钟时,用实验开发系统中的输入输出设备模拟早晨喇叭在唱歌,提醒晨练,模拟上课下课的打铃,模拟晚上熄灯等。三、总体设计1、分析问题的功能设计一个电子时钟实现定时报时2、系统总体结构设计硬件设计:用导线连接D5区和A2区的P16SCL,P17SDA,P10RST_L,INT_KEYINT0,将P1.2与蜂鸣
2、器BUZZ,P1.4与SW1,P1.5与SW2连接软件设计:编程由8051内部的定时器,设计一个电子时钟,实现定点报时四、详细设计:1、硬件详细设计:画出电路图;P1.0-RST_LP1.2-BUZZP1.4-SW1P1.5-SW2P1.6-SCLP1.7-SDAINT0-INT_KEYA2区J61-D1区J52进行硬件资源分配(包括I/O口地址、所用各存储单元的用途)。所需设备:6位LED显示器,蜂鸣器,开关sw1, sw2,定时器0连线方式:占用P1口的P1.0,P1.2,P1.4,P1.5,P1.0,P1.6,P1.7,以及8位LED显示器中的6位,蜂鸣器开关sw1,sw2。中断INT0
3、以及INT_KEY和排线连接A2区J61和D1区J52将P1.2与蜂鸣器,P1.4与sw1,P1.5与sw2连接,P1.6与scl,P1.7与sda,P1.6与rst_l。INT0与INT_KEY,A2区J61与D1区J52资源分配:将P1口合理的分配给LED显示器,蜂鸣器,以及开关来完成软件中对硬件的操作。将地址38H,39H,4AH,4BH,4CH,4DH提出使用用于存储时钟的分位,秒位以及时钟的时位,并且使用了第二组的工作寄存器组的R2作为计数器使用,使用了计时器0做定时使用。2、软件详细设计:实验的设计可以分为4个部分:在LED显示器显示时间,定时报时系统,以及报时声响中断系统,紧报警
4、系统。1) 时间的在LED显示器显示:通过编写程序代码,实现时间在LED显示器上的显示。2) 定时报时:在时间的在LED显示器显示模块中加入编写好的定时报时系统,报时装置为蜂鸣器。3) 报时声响中断系统:通过软件查询方式,来实现此功能,放置在时间的在LED显示器显示模块。4) 紧报警系统:通过软件查询方式,来实现此功能,放置在时间的在LED显示器显示模块。3、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。困难1:设计时,电子表时、分、秒针的显示。 解决:把时、分、秒分别放在两个存储单元内。困难2:在调试程序时,与外部连接出现问题,显示不出来解决:通过询问同学以及查询书籍
5、,修改程序以及外部硬件的连接三、程序清单SDA BITP1.7 ;I2C总线定义 串行数据存取位 SCL BITP1.6 ;I2C总线定义 串行时钟位 RST BITP1.0 ;MCU复位输出信号,低电平复位ZLG7290INT_KEYBITP3.2 ;MCU中断信号输入,有效的按键动作使该引脚信号变为低电平 MTDEQU40H;I2C总线发送数据缓冲区(8字节) MRDEQU48H;I2C总线接收数据缓冲区(8字节) DisBuf EQU38H ;显示缓冲区(8字节,可对应8位数码管显示) ;定义ZLG7290器件地址及子地址 ZLG7290 EQU70H;ZLG7290的器件地址 ACKB
6、IT10H;应答标志位 SLA DATA 50H;器件的从地址 SUBA DATA51H;器件的子地址 NUMBYTEDATA52H;读/写的字节数变量 Key DATA53H ;返回用户按键值 SystemReg EQU00H ;系统寄存器地址,保存 ZLG7290系统状态 KeyReg EQU01H ;键值寄存器,表示被压按键的键值 CmdBuf0 EQU07H ;命令缓冲区0 CmdBuf1 EQU08H ;命令缓冲区1 DpRam EQU10H ;显示缓存寄存器mz1 equ 38H;定义秒针位mz2 equ 39H;定义秒针位2fz1 equ 4AH;定义分针位fz2 equ 4BH
7、;定义分针位2sz1 equ 4CH;定义时针位sz2 equ 4DH;定义时针位2 ORG8000H LJMPMAINorg 800bhajmp tos;定时计数器0的中断程序的入口 ORG8100H ;-主程序如下: MAIN:MOV SP,#70H;堆栈区从70H开始 CLRRST ;复位ZLG7290 LCALL DELAY ;等待复位完成,ZLG7290复位周期比较长,必须等待 SETBRST ;结束复位 LCALL DELAY lcall ClsDisp;清除显示 MainLoop:mov DisBuf+0,#0;上电运行时,8位数码管显示01234567 mov DisBuf+1
8、,#1;给显示缓冲区赋值,01234567 mov DisBuf+2,#FFH mov DisBuf+3,#3 mov DisBuf+4,#4 mov DisBuf+5,#FFH mov DisBuf+6,#6 mov DisBuf+7,#7 lcall Display;调用显示子程序,显示内容 mov mz1,#00h; ; 为时钟的各位处清零 mov mz2,#05h mov fz1,#09hmov fz2,#05h mov sz1,#07h mov sz2,#00h mov tmod,#01hmov th0,#0f1h;开启4ms中断mov tl0,#99h; setb rs1;切换工作
9、组2 clr rs0mov r2,#00h;计数器设置 clr rs1;切换工作组0 clr rs0mov IE,#10000010B;开启中断系统setb tr0;开始计时 sjmp $;程序原地执行,等待中断的产生tos:;响应中断 mov th0,#0f1h mov tl0,#99h setb rs1;切换工作组2 clr rs0inc r2cjne r2,#250,jc lcall dzz mov r2,#00hjc:jb p1.5,bj mov a,sz1 cjne a,#08h,next1mov a,fz1cjne a,#00h,next1mov a,fz2cjne a,#00h,
10、next1mov a,mz2cjne a,#00h,next1jb p1.4, BJ ;此段程序完成中断程序,8点时报警 next1: reti bj: cpl p1.2 ;紧急情况下报警 sjmp next1 ;电子钟程序 dzz: clr rs0;开启电子钟的显示子程序 clr rs0 inc mz1 mov a,mz1cjne a,#10,A0 ;判断秒针个位是否为10mov mz1,#00hmov DisBuf+0,mz1inc mz2 mov a,mz2cjne a,#6,A1 ;判断秒针十位是否为6mov mz2,#00hmov DisBuf+1,mz2inc fz1 mov a,
11、fz1cjne a,#10,A2 ;判断分针个位是否为10mov fz1,#00hmov DisBuf+2,fz1inc fz2 mov a,fz2cjne a,#6,A3 ;判断分针十位是否为6mov fz2,#00hmov DisBuf+3,Fz2inc sz1 mov a,sz1cjne a,#10,A4mov sz1,#00hmov DisBuf+4,sz1inc sz2 mov a,sz2cjne a,#03,A5A0: mov DisBuf+0,mz1A1:mov DisBuf+1,mz2A2:mov DisBuf+3,fz1A3:mov DisBuf+4,fz2A4:mov Di
12、sBuf+6,sz1A5:mov DisBuf+7,sz2mov a,sz1cjne a,#04h,xs mov a,sz2cjne a,#02h,xs mov mz1,#00h mov mz2,#00h mov fz1,#00h mov fz2,#00h mov sz1,#00h mov sz2,#00h mov DisBuf+0,mz1;进行显示mov DisBuf+1,mz2mov DisBuf+3,fz1mov DisBuf+4,fz2mov DisBuf+6,sz1mov DisBuf+7,sz2xs:lcall Displayret;WaitKey: JBINT_KEY,WaitK
13、ey ;查询按键 ;lcall GetKey;获取键值 ;mov A,Key ;jz WaitKey ;Key=0无键按下,继续查询 ;mov DisBuf+7,DisBuf+6 ;显示内容左移 ;mov DisBuf+6,DisBuf+5 ;mov DisBuf+5,DisBuf+4 ;mov DisBuf+4,DisBuf+3 ;mov DisBuf+3,DisBuf+2 ;mov DisBuf+2,DisBuf+1 ;mov DisBuf+1,DisBuf+0 ;mov DisBuf+0,Key ;lcall Display ;ljmp WaitKey ;子程序名:ClsDisp ;功能
14、:清除显示内容 ;调用:VI2C_ASM.INC ;入口参数:无 ;出口参数:无 ;占用资源: R0,R1,R2,R3(工作寄存器组1),ACC,Cy,R5(当前工作寄存器组) ClsDisp: mov R5,#8;循环计数器初值,8位数码管 mov A,#01100000B;按位下载数据且译码指令 01100 A2A1A0 ;A2A0:对应显示位置 18位数码管 Cls1:MOVSLA,#ZLG7290;指定器件地址 MOVSUBA,#CmdBuf0;指定子地址 MOVMTD,A; 命令送I2C总线发送数据缓冲区 mov MTD+1,#1FH;命令参数,1FH:无显示 MOVNUMBYTE,
15、#02H;待发送数据2字节 push ACC;保护ACC push PSW;保护PSW setb RS0 ;切换工作寄存器,I2C通信软件使用工作寄存器组1clr RS1 LCALLIWRNBYTE;调用写2字节数据程序(VI2C_ASM.INC,I2C模拟软件包) pop PSW;恢复PSW pop ACC;恢复ACC inc A;按位下载数据且译码指令地址部分1 LCALL DELAY;延时,等待ZLG7290执行上述命令 djnz R5,Cls1;没有达到8次,继续循环 ret;子程序返回 ;子程序名:Display ;功能:在8段LED数码管显示 ;调用:VI2C_ASM.INC ;入
16、口参数: Disbuf+0 Disbuf+7,8字节显示缓冲区 ;出口参数:无 ;占用资源: R0,R1,R2,R3(工作寄存器组1),ACC,Cy,R0,R5(当前工作寄存器组) Display: mov R5,#8;循环计数器初值,8位数码管 mov A,#01100000B;按位下载数据且译码指令 01100 A2A1A0 ;A2A0:对应显示位置 18位数码管 mov R0,# Disbuf;R0-> Disbuf Disp1:MOVSLA,#ZLG7290;指定器件地址 MOVSUBA,#CmdBuf0;指定子地址 MOVMTD,A;命令送I2C总线发送数据缓冲区 mov MT
17、D+1,R0;命令参数,待显示数据送I2C总线发送数据缓冲区 MOVNUMBYTE,#02H;待发送数据2字节 push ACC;保护ACC push PSW;保护PSW setb RS0 ;切换工作寄存器,I2C通信软件使用工作寄存器组1clr RS1 LCALLIWRNBYTE;调用写2字节数据程序(VI2C_ASM.INC,I2C模拟软件包) pop PSW;恢复PSW pop ACC;恢复ACC inc A;按位下载数据且译码指令地址部分1 inc R0;R0+1,指向下一个待显示数据 LCALL DELAY;延时,等待ZLG7290执行上述命令 djnz R5,Disp1;没有达到8
18、次,继续循环 ret;子程序返回 ;子程序名:GetKey ;功能:获取用户按键值(Key) ;调用:VI2C_ASM.INC ;入口参数:无 ;出口参数:Key ;占用资源: R0,R1,R2,R3(工作寄存器组1),ACC,Cy GetKey:MOVSLA,#ZLG7290;指定器件地址 MOVSUBA,#01H;指定子地址 MOVNUMBYTE,#01H;读1字节数据 push ACC;保护ACC push PSW;保护PSW setb RS0 ;切换工作寄存器,I2C通信软件使用工作寄存器组clr RS1 LCALLIRDNBYTE;调用读1字节数据程序 pop PSW;恢复PSW p
19、op ACC;恢复ACC mov Key,MRD;读取的数据送Key ret;子程序返回 ;子程序名: DELAY ;功能:延时约36.5 ms(11.0592MHz时钟) ;调用:YS500US ;入口参数:无 ;出口参数:无 ;占用资源: R7,R6 DELAY:MOV R7,#80H MIN:LCALL YS500US DJNZ R7,MIN RET ;子程序名: YS500US ;功能:延时约279us(11.0592MHz时钟) ;调用:无 ;入口参数:无 ;出口参数:无 ;占用资源: R6 YS500US:MOV R6,#80H DJNZ R6,$ ;延时128×2T256T (T=1/1159200) RET $INCLUDE(VI2C_ASM.INC);将VIIC软件包加入到本段代码后 END四、调试程序的方法硬件调试方法连线之后,观察程序运行是否正常,如不正常,一定要先断电再连线软件调试方法1)按上述接线方法接线2)开启硬件,开启计算机,打开KEIL新建立工程选择单片机NXP-P89C52X23)进行项目设置设置时钟频
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生宿舍楼供电系统设计与安装
- 2025年废弃矿井资源再利用技术路径与产业技术创新政策评估与优化研究报告
- 船舶制造备品备件长期供应计划
- 茶饮品牌品牌战略与核心竞争力研究报告
- 2025年新能源技术创新投入产出产业融合分析报告
- 电力工程公司财务管理优化研究
- 员工试用期的工作总结
- 2025九年级物理学生学习指导计划
- 2025年小学一年级班主任信息化教学计划
- 茶叶店经营方案
- 百师联盟2026届高三上学期开学摸底联考数学试题
- 医疗机构睡眠门诊建设和管理专家共识(2025版)解读 3
- 2025年南阳唐河县国有企业公开招聘工作人员8名笔试备考题库及答案解析
- 中山市好小区好房子建设指引(试行)
- 2025年六年级数学培优辅潜工作计划及措施
- 2025年八年级生物秋季开学第一课课件(人教版)
- 宠物行业宠物服务连锁经营与管理方案
- 辽宁省抚顺县2025年上半年公开招聘辅警试题含答案分析
- 养老院安全培训课件
- LYTZW-GW-001《公司文件编号管理规定》
- 企业内训师考核与激励制度
评论
0/150
提交评论