计算机硬件技术基础综合实验报告

上传人:M****1 文档编号:492082752 上传时间:2023-02-22 格式:DOC 页数:21 大小:112.50KB
返回 下载 相关 举报
计算机硬件技术基础综合实验报告_第1页
第1页 / 共21页
计算机硬件技术基础综合实验报告_第2页
第2页 / 共21页
计算机硬件技术基础综合实验报告_第3页
第3页 / 共21页
计算机硬件技术基础综合实验报告_第4页
第4页 / 共21页
计算机硬件技术基础综合实验报告_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《计算机硬件技术基础综合实验报告》由会员分享,可在线阅读,更多相关《计算机硬件技术基础综合实验报告(21页珍藏版)》请在金锄头文库上搜索。

1、计算机硬件技术基础(2011 )综合性实验考试报告一、题目:作息时间控制系统(13)二、问题的提出用到醒晨练,一般机关、部队、企业等部门尤其是学校,对作息时间有严格的控制,可以采 MCS-51单片机设计一个控制作息时间的系统。作业时间控制系统,由8051内部的定时器,设计一个电子时钟,当电子时钟达 作息时间的点钟时,用实验开发系统中的输入输出设备模拟早晨喇叭在唱歌,提 模拟上课下课的打铃,模拟晚上熄灯等。三、总体设计1、分析问题的功能设计一个电子时钟实现定时报时2、 系统总体结构设计硬件设计:用导线连接 D取和A2E的P1ASCL P17 TSDA P1A RST_LINT_KEYINTO,将

2、 P1.2 与蜂鸣器 BUZZ P1.4 与 SW1,P1.gSW 建接软件设计:编程由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显示器,蜂鸣器,开关swl, sw2,定时器0连线方式:占用 P1 口的 P1.0,P12P14P1.5,P1.0,P1.6,P1.7, 以及 8 位 LED 显 示器中的6位

3、,蜂鸣器开关sw1,sw2。中断INTO以及INT_KEYffi排线连接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,4Drt!出使用用丁存储时钟的分位,秒位以及时钟的时位,并且使用了第二组的工作寄存器组的R2作为计数器使用,使用了计时器0做定时使用。2、软

4、件详细设计:实验的设计可以分为4个部分:在LED显示器显示时间,定时报时 系统,以及报 时声响中断系统,紧报警系统。1) 时间的在LED显示器显示:通过编写程序代码,实现时间在LED显示器上 的显示。2) 定时报时:在时间的在 LED显示器显示模块中加入编写好的定时报时系统, 报时装置为蜂鸣器。3)报时声响中断系统:通过软件查询方式,来实现此功能,放置在时间的在 LED显示器显示模块。4) 紧报警系统:通过软件查询方式,来实现此功能,放置在时间的在LED 显示器显示模块。3、设计中的主要困难及解决方案在这部分论述设计中遇到的主要困难及解决方案。困难1:设计时,电子表时、分、秒针的显示。解决:把

5、时、分、秒分别放在两个存储单元内。困难2:在调试程序时,与外部连接出现问题,显示不出来解决:通过询问同学以及查询书籍,修改程序以及外部硬件的连接三、程序清单SDABITP1.7 ;I2C总线定义申行数据存取位SCLBITP1.6 ;I2C总线定义申行时钟位RSTBITP1.0 ;MCUfi位输出信号,低电平复位 ZLG7290INT_KEY BITP3.2 ;MCU中断信号输入,有效的按键动作使该引脚信号变为低电平MTD EQ140H;I2C总线发送数据缓冲区(8字节)MRD EQ148H;I2C总线接收数据缓冲区(8字节)DisBufEQU38H;显示缓冲区(8 W,可对应8位数码管显示);

6、定义 ZLG7290IS件地址及子地址ZLG7290 EQU70H;ZLG7290的器件地址ACK BIT 10H;应答标志位SLADATA50H;器件的从地址SUBA DATA51H;器件的子地址NUMBYTE DATA52H;读/写的字节数变量KeyDATA53H;返回用户按键值SystemReg EQU00H;系统析器地址,保存ZLG7290系统状态KeyRegEQU01H;键值寄存器,表示被压按键的键值CmdBuf0EQU07H;命令缓冲区0CmdBuf1EQU08H;命令缓冲区1DpRamEQU10H;显小缓存寄存器mz1 equ 38H;定义秒针位mz2 equ 39H;定义秒针位

7、2fz1 equ 4AH;定义分针位fz2 equ 4BH;定义分针位2sz1 equ 4CH;定义时针位sz2 equ 4DH;定义时针位2ORG 8000HLJMP MAINorg 800bhajmp tos;定时计数器0的中断程序的入口ORG 8100H;主程序如下:MAIN:MOV SP,#70H;堆栈区从 70H 开始CLRRST ;复位 ZLG7290LCALL DELAY ;等待复位完成,ZLG7290?位周期比较长,必须等SETB RST ;结束复位LCALL DELAYIcall ClsDisp ;活除显示MainLoop: mov DisBuf+0,#0 ; 上电运行时,

8、8 位数码管显示 01234567mov DisBuf+1,#1 ; 给显示缓冲区赋值, 01234567mov DisBuf+2,#FFHmov DisBuf+3,#3mov DisBuf+4,#4mov DisBuf+5,#FFHmov DisBuf+6,#6mov DisBuf+7,#7lcall Display ;调用显示子程序,显示内容mov mz1,#00h; ; 为时钟的各位处活零mov mz2,#05hmov fz1,#09hmov fz2,#05hmov sz1,#07hmov sz2,#00hmov tl0,#99h;setb rs1;切换工作组 2clr rs0mov r

9、2,#00h; 计数器设置clr rs1; 切换工作组 0clr rs0mov IE,#10000010B; 开启中断系统setb tr0; 开始计时sjmp $;程序原地执行,等待中断的产生tos:; 响应中断mov th0,#0f1hmov tl0,#99hsetb rs1;切换工作组 2clr rs0inc r2cjne r2,#250,jclcall dzzmov r2,#00hjc:jb p1.5,bjcjne a,#08h,next1mov a,fz1cjne a,#00h,next1mov a,fz2cjne a,#00h,next1mov a,mz2cjne a,#00h,ne

10、xt1jb p1.4, BJ ; 此段程序完成中断程序, 8点时报警next1: retibj: cpl p1.2; 紧急情况下报警sjmp next1; 电子钟程序dzz:clr rs0; 开启电子钟的显示子程序clr rs0inc mz1mov a,mz1cjne a,#10,A0; 判断秒针个位是否为 10mov mz1,#00hmov DisBuf+0,mz1 inc mz2mov a,mz2cjne a,#6,A1; 判断秒针十位是否为 6mov mz2,#00h mov DisBuf+1,mz2 inc fz1mov a,fz1cjne a,#10,A2; 判断分针个位是否为 10

11、mov fz1,#00hmov DisBuf+2,fz1inc fz2mov a,fz2cjne a,#6,A3; 判断分针十位是否为 6mov fz2,#00hmov DisBuf+3,Fz2 inc sz1mov a,sz1 cjne a,#10,A4 mov sz1,#00h mov DisBuf+4,sz1 inc sz2 cjne a,#03,A5A1: mov DisBuf+1,mz2A2: mov DisBuf+3,fz1A3: mov DisBuf+4,fz2A4: mov DisBuf+6,sz1;进行显示A5: mov DisBuf+7,sz2 mov a,sz1 cjne

12、 a,#04h,xs mov a,sz2 cjne a,#02h,xs mov mz1,#00h mov mz2,#00h mov fz1,#00h mov fz2,#00h mov sz1,#00h mov sz2,#00h mov DisBuf+0,mz1mov DisBuf+1,mz2 mov DisBuf+3,fz1mov DisBuf+6,sz1 mov DisBuf+7,sz2 xs:lcall Display ret;WaitKey: JB INT_KEY,WaitKey;查询按键;lcall GetKey ; 获取键值;mov A,Key;jz WaitKey ;Key=0 无

13、键按下,继续查询;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; 功能:活除显示内容;调用: VI2C_ASM.INC ; 出口参数 : 无器组);占用资源: RO, R1, R2, R3 (工作寄存器组

14、1), ACC Cy, R5 (当前工作寄存ClsDisp:Cls1:I2C 模拟软件包)mov R5,#8 ; 循环计数器初值, 8 位数码管mov A,#O11OOOOOB ; 按位下载数据且译码指令 O11OO A2A1AO ;A2AO: 对应显示位置 1? 8 位数码管MO 世 LA,#ZLG729O ; 指定器件地址MOSUBA,#CmdBufO ;指定子地址MOVMTD,A ; 命令送 I2C 总线发送数据缓冲区mov MTD+1,#1FH ; 命令参数 , 1FH 无显示MOVJUMBYTE,#O2H ;待发送数据 2 字节push ACC ; 保护 ACCpush PSW ; 保护 PSWsetb RSO ; 切换工作寄存器, I2C 通信软件使用工作寄存器组 1 clr RS1LCALL IWRNBYTE ; 调用写 2 字节数据程序( VI2C_ASM.INCpop PSW ; 恢复 PSWpop ACC ; 恢复 ACCinc A ; 按位下载数据且译码指令地址部分 + 1LCALL DELAY ;延时,等待ZLG729S 行上述命令djnz R5,Cls1;没有达

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号