BX0805 14 贾建昊 秒表系统设计.doc_第1页
BX0805 14 贾建昊 秒表系统设计.doc_第2页
BX0805 14 贾建昊 秒表系统设计.doc_第3页
BX0805 14 贾建昊 秒表系统设计.doc_第4页
BX0805 14 贾建昊 秒表系统设计.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录一 课程设计的题目1二 课程设计的任务1三 课程设计的要求1四 课程设计内容14.1 XL2000 单片机综合仿真实验仪系统简介14.1.1 系统简介14.1.2 各个模块接口的定义:24.2 安装软件34.2.1 XLISP安装:34.2.2 软件操作34.3 USB接口安装指南64.4 数码管显示8五 调试指令9六 课设结果15七 课设小结及心得体会16一 课程设计的题目秒表系统设计二 课程设计的任务用89C51单片机设计实现秒表系统:要求6个数码管分别显示分、秒、百分之一秒;用K1打下秒表系统开始准备,显示 00 00 00,然后打开开关K2秒表开始计时,打下K2秒表停止,此时显示及时的值。三 课程设计的要求要求通过课程设计最后完成课程设计要求的功能,绘出接线图,给出程序的框图,写出相应的汇编程序。四 课程设计内容4.1 XL2000 单片机综合仿真实验仪系统简介4.1.1 系统简介XL2000 单片机综合仿真实验仪是深圳市学林电子有限公司综合多年经验开发的多功能8051 单片机平台(兼容AVR/PIC 单片机的部份烧写实验功能)。XL2000 的特点:1 全开放的模块化设计:所有硬件资源对用户开放,搭配随心所欲,不会出现硬件束缚软件的情况。既可学习软件, 更可深入的了解硬件。2 高品质的工艺: 本机采用高档透明雅克力面板, 铝合金外箱, 全贴片机器生产, 工艺精美绝伦!3 超强的电路资源配备:集成了基本上所有单片机应用中可能遇到的功能模块部份,你再也不必要去找其它零件,即可轻松完成您所需要的开发任务。4 完美的例子程序: 集合本公司多年的经验,每个模块都有完整的带中文注释汇编/C 语言对照例子程序,原理图,接线方法很多都可以直接拿来应用。快速提高您的硬件,软件编程水平。5 全USB 通信接口,完全适应最新的无串口并口的笔记本电脑。全中文操作界面,只需要一条USB 线即可完成所有的供电,通信,仿真等功能,技术同行业遥遥领先!6 端口采用防插反设计,均配有连接照片和中文注解,即便您是初学者,也能轻松掌握。7 配有ISP 下载头。CPU 控制编程,不受电脑配置及操作系统影响,稳定性一流。可以作为一台独立的ISP下载线使用,支持芯片包括51/AVR/PIC/24C各系列!8 配有40P 外接仿真头,可以作为一台独立的51 单片机硬件仿真器使用,通过KEIL SOFT 软件配合, 即可对外部硬件以及板上资源实现单步调试, 断点, 全速等等全部功能。9 全中文软件操作导航, 独有智能一键通设计,擦除, 写入, 校验,运行自动完成,特别设计的烧写实验仿真3IN1 的公用卡座, CPU 插上后即不需要插拔,使用极其方便简洁。4.1.2 各个模块接口的定义:所属部份 端口名 简要说明1 通信下载部份 JP17 编程/仿真选择,注意编程,实验时为弹起状态!仿真时为按下状态 K16 复位键。按此键程序重新运行 JP2 USB 端口。用于系统供电和usb 通信(USB 采用高速CP2102) JP23 ISP 下载头。可对其他目标板上的芯片下载2 电源部份 JP33 电源开关。 按下电源开,电源指示灯 D100 亮3 Cpu 仿真部份 IC16 实验卡座。插入 AT89S52 实验或者插入仿真模块仿真, 注意第一脚对扳手JP44 P1 口输出(P1.0P1.7)JP53 P3 口输出(P3.0P3.7)JP51 P0 口输出(P0.0P0.7)JP52 P2 口输出(P2.0P2.7)JP59 40PIN 外接仿真头,也可作为辅助的io 引出端口做实验4 AD 转换部份ADC0804 J3 ADC0804 控制端。本套件例子中, WR,RD 分别接P36,P37JP35 ADC0804 数据端。本套件例子中,接CPU 的P1 口JP30 外部模拟信号输入端JP60 AD 跳线。默认为闭合状态,如果需要外接信号则跳开,从AD 输入口JP30 输入W1 Ad 试验。用于AD 试验时模拟信号,10K 的可调整电阻5 DA 转换部份DAC0832 JP24 DAC0832 控制端。本套件例子中, WR,CS 分别接P36,P27JP27 DAC0832 数据端。本套件例子中,接CPU 的P0 口J2 DAC0832 输出端。接示波器看输出波形4.2 安装软件4.2.1 XLISP安装:插入随机的驱动光盘,打开驱动程序XLISP 目录。双击其中的setup.exe, 按照提示,点下一步直硬件安装:打开XL2000 的包装。插入随机的串口线( 9 针对9 针),然后插上随机的USB 电缆(用于提供5V 电源)。按下电源开关,此时电源指示灯亮。确认 232/usb 选择跳线JP14,JP13 都跳在232 一端。确认编程/仿真按钮处于弹起(编程)状态。确认 CPU 卡座上的CPU 为AT89S52 并且已经压下扳手安装好。连线如图所示4.2.2 软件操作下面介绍基本的软件操作:双击桌面的XLISP 启动程序,此时弹出。选择串口的对话框,此时可以选择“自动检测”即可检测到目前正在使用的端口。一般默认情况下是串口1(USB 通信方式,可能是串口3,4 等。具体请看第三章USB 接口安装指南)在XLISP 操作过程中如遇到软件关闭等情况,重新进入软件时可选择:选项/串口/自动检测, 将非常方便!) 1 此时如果串口的设置正确,那么会出现以下主界面:操作状态汇报窗口显示-编程器监测OK!否则就是没有正确的设置串口,请检查串口设置的号码是否正确?电源指示灯是否亮?编程仿真模式是否处于编程(弹起)状态? USB/232选择跳线是否选择在232 上?)3 在芯片类型的对话框中选择MCUATMEL_51AT89S52然后点确定。4 点击主界面的“打开”,找到: 9999.HEX,然后点确定。5 此时点击:“智能一键通”,将出现烧写进度条指示,对话框中出现擦除开始.擦除操作完成.程序编程操作开始.程序编程操作OK!退出编程, 目标板运行!4.3 USB接口安装指南XL2000提供了串口或者USB 通信方式的自由选择,在上面一章我们介绍了用串口通信方式来做实验。如果用USB方式,则可去掉串口线,同时注意把JP13,JP14 选择到USB,按照下面方法安装好USB 驱动即可!请遵循如下步骤去安装USB 转串口的驱动程序第一步:用随机USB 通讯电缆连接仪器的USB 插座和计算机USB 口;显示找到新硬件向导,选择“从列表或指定位置安装(高级)”选项,进入下一步;第二步:选择“在搜索中包括这个位置”,点击“浏览”,定位到配套驱动光盘的驱动程序文件夹,如E:驱动程序XLISP 驱动程序USBDRIVER2.0,进入下一步;第三步:弹出“硬件安装”对话框,如果系统提示“没有通过Windows 徽标测试”,不用理会,点击“仍然继续”,向导即开始安装软件;然后弹出“完成找到新硬件向导”对话框,点击完成。第四步:系统第二次弹出“找到新的硬件向导”对话框,重复以上几个步骤; 右下角弹出对话框“新硬件已安装并可以使用了”,表明USB 驱动已成功安装。你可以进入系统的:控制面板系统硬件设备管理器中看到以下端口信息, 表示系统已经正确的安装了USB 驱动。4.4 数码管显示其电路原理如下:PO将显示数据并行送入8个数码管,P2则控制需要显示数据的数码管。每过10ms产生一个中断,并且数码管的百分位数据加上1,由于时间短暂,眼睛看不清楚百分位的数据。接线方法:KI接P32,K2接P34五 调试指令CODE_SEG SEGMENTCODEDATA_SEG SEGMENT DATA STACK_SEGSEGMENTIDATARSEG DATA_SEGKEY_S: DS 1KEY_V: DS 1DIS_DIGIT: DS 1DIS_INDEX: DS 1SEC_BCD: DS 8; 秒计数值, BCD码KEY_TIME: DS 1; K2 按下次数KEY_TIMES: DS 1; K2 按下次数DIS_BUF: DS 8; 显示缓冲区RSEGSTACK_SEGSTACK:DS20K1 BITP3.2K2BITP3.4;=CSEGAT0000HLJMPMAINCSEGAT0000BHLJMPTIMER0CSEGAT0001BHLJMPTIMER1;=RSEGCODE_SEGMAIN:USING0MOVSP,#(STACK-1)MOV P0,#0FFH; 初始化端口MOV P2,#0FFHMOV TMOD,#011H; MOV TH1,#0DCHCLR AMOV TL1,AMOV TH0,#0FCHMOV TL0,#017HLCALLCLR_TIME; 清零计时值MOV DIS_DIGIT,#07FH; 上电时选通P27数码管CLR AMOV DIS_INDEX,AMOV KEY_TIMES,AMOV KEY_TIME,AMOV KEY_V,#03HMOV IE,#08AH; 使能timer0, timer1中断SETB TR0CLR TR1MAIN_LP:LCALLSCAN_KEY; 键扫描JZ MAIN_LP; 无键返回MOVR7,#10; 延时10msLCALLDELAYMS; 延时去抖动LCALLSCAN_KEY; 再次扫描JZMAIN_LP; 无键返回MOV KEY_V,KEY_S; 保存键值LCALLPROC_K1; 键处理SJMPMAIN_LP; 调回主循环;=CLR_TIME:CLR AMOV SEC_BCD,A; 清零所有计时值MOV SEC_BCD+01H,AMOV SEC_BCD+02H,AMOV SEC_BCD+03H,AMOV SEC_BCD+04H,AMOV SEC_BCD+05H,AMOV SEC_BCD+06H,AMOV SEC_BCD+07H,ALJMP UPDATE_DISBUF; 更新显示缓冲区;=SCAN_KEY:CLRAMOV C,K1; 读按键K1MOVACC.0,CMOVC,K2; 读按键K2MOVACC.1,CMOVKEY_S,A; 保存按键状态到key_sXRL A,KEY_VRET RET ;=PROC_K1: MOV A,KEY_VJB ACC.0,PROC_KEYINC KEY_TIMEMOV A,KEY_TIMELCALLCLR_TIME; 第一次按下K1, 清零计时值CLR AMOV KEY_TIMES,A; 清零KEY_TIMESMOV KEY_TIME,A; 清零KEY_TIMERETPROC_KEY:MOV A,KEY_VJB ACC.1,END_PROC_KEYINC KEY_TIMESMOV A,KEY_TIMESCJNE A,#01H,PROC_KEY1SETB TR1; KEY_TIMES = 1,第一次按下K2, 启动开始计时 RETPROC_KEY1:MOV A,KEY_TIMESCJNE A,#02H,END_PROC_KEYCLR TR1; KEY_TIMES = 2, 第二次按下K2, 停止计时RET END_PROC_KEY:RET ;=TIMER0:; 定时器0中断服程序, 用于数码管的动态扫描; DIS_INDEX - 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量; DIS_DIGIT - 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,;选通P2.0口数码管; DIS_BUF - 显于缓冲区基地址PUSH ACCPUSH PSWPUSH AR0MOV TH0,#0FCHMOV TL0,#017HMOV P2,#0FFH; 先关闭所有数码管MOV A,#DIS_BUF; 获得显示缓冲区基地址ADD A,DIS_INDEX; 获得偏移量MOV R0,A; R0 = 基地址 + 偏移量MOV A,R0; 获得显示代码MOV P0,A; 显示代码传送到P0口MOV P2,DIS_DIGIT; MOVA,DIS_DIGIT; 位选通值右移(P20-P27), 下次中断时选通下一位数码管RRAMOVDIS_DIGIT,AINCDIS_INDEX; DIS_INDEX加1, 下次中断时显示下一位ANLDIS_INDEX,#0x07; 当DIS_INDEX等于8(0000 1000)时, 清0POP AR0POP PSWPOP ACCRETI ;=TIMER1:PUSH ACCPUSH BPUSH DPHPUSH DPLPUSHPSWPUSHAR7ORL TH1,#0DCH; 恢复定时器初值CLR AMOV R7,AMOV A,#LOW (SEC_BCD)MOV R0,A; 计时值寄存器地址到R0TIMER_INC:; INC R0; 计时值加1MOV A,R0CLR CSUBB A,#10; JC END_INC; 如果低位不满10, 则结束MOV R0,#00H; 低位满10, 清零低位INCR0; 指向高位INC R7; CJNE R7,#08H,TIMER_INC; 如果达到最高位, 则结束END_INC:LCALLUPDATE_DISBUFPOPAR7POPPSWPOP DPLPOP DPHPOP BPOP ACCRETI ;=UPDATE_DISBUF:; 根据计时寄存器的值更新显示缓冲区MOV DPTR,#DIS_CODE; 保存表格地址MOV A,sec_bcdMOV DPTR,#dis_codeMOVC A,A+DPTR; 获得显示代码MOV dis_buf,A; 更新显示缓冲区MOV A,sec_bcd+01HMOVC A,A+DPTRMOV dis_buf+01H,AMOV A,sec_bcd+02HMOVC A,A+DPTRANL A,#07FH; 显示小数点MOV dis_buf+02H,AMOV A,sec_bcd+03HMOVC A,A+DPTRMOV dis_buf+03H,AMOV A,sec_bcd+04HMOVC A,A+DPTRMOV dis_buf+04H,AMOV A,sec_bcd+05HMOVC A,A+DPTRMOV dis_buf+05H,A MOV dis_buf+06H,#0f7H MOV dis_buf+07H,#0f7H;MOV A,sec_bcd+06H;MOVC A,A+DPTR;MOV dis_buf+06H,A;MOV A,sec_bcd+07H;MOVC A,A+DPTR;MOV dis_buf+07H,ARET ; END OF UPDATE_DISBUF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论