单片机工程实践报告样板(2013年6月)124_第1页
单片机工程实践报告样板(2013年6月)124_第2页
单片机工程实践报告样板(2013年6月)124_第3页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机工程实践(第七组)题 目:25045存储性能测试组长:田羽(电10-1班)学号:组 员: 吴磊(电10-1班)学号:201010203030孟乐乐(电10-1班)学号:201010203038李佳颖(电10-1班)学号:201010203001指导教师:刘伟、裴岩、斯日古楞、韩海波、高鹏、王华超(研)、李金莹(研)设计时间:2013年6月17日2013年6月28日一、设计目的:(题目四号宋体字)通过一个以8位单片机为核心的模拟量数字表的硬件调试过程,掌握具有A/D、七段LED显示、RS-485通信、Watchdog等接口电路的单片机应用系统的设计思想和方法。学习应用系统软件的模块化设计方

2、法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过上述过程提高学生工程实践能力和素质。二、设计任务:基本任务:完成蜂鸣器、键盘、七段 LED显示器的自检程序设计。(1)蜂鸣器自检要求:利用程序实现两种以上声音。参见【例7-4-4】(2 )键盘自检要求:确定键盘正确。参见【例7-4-14】(3)七段LED显示器自检要求:确定LED显示器每一段均正确。参见【例7-4-16】题目5: 25045存储性能测试难度系数:8功能:(1)测试25045存储性能,并作出评价(2)测试程序与自检程序通过拨盘连接起来。硬件环境:25045、键盘、拨盘、LED显示器等要求明确设计任务内容及任务分

3、工等;(内容小四号宋体字)三、框图(包括自检及任务的框图):1、硬件编程框图及相关说明(1)蜂鸣器自检P2.3(2) LED自检(3)键盘自检P1 口P2.5, P2.6 , P2.7端口控制254的开关,P1 口为键值的输入端控键值(4) 25045存储性能2、主程序框图、子程序框图及相关说明主程序框图:(吴磊)蜂鸣器自检框图:(李佳颖)打开蜂鸣器延时一关闭蜂鸣器开始丁V关闭蜂鸣器V延时勺!打开蜂鸣器延时二关闭蜂鸣器V延时V打开蜂鸣器延时三关闭蜂鸣器延时四、程序清单:;* 扫描键盘高四位(吴磊)WL:MOV P0,#0灭显示LCALL SEL8; 打开 245 三态门MOV P1,#0FFH

4、;P1 作输入口MOV A,P1 ;读键值给 A 寄存器LCALL SEL7; 关闭 245 三态门PUSH A;将 A 寄存器值压入堆栈MOV R0,#0H; 初始化 R0MOV R3,#4H; 设置循环次数KS:RLC A ;带进位循环左移 AJNC TJ ;判断是否有进位,即是否按下键DJNZ R3,KS;R3=R3-1,若 R3!=0 跳转到 KSCJNE R0,#0H,BJ;若 R0! =0,跳转到 BJSJMP JS ;否则回到wl重新米键值TJ:INC R0; 统计按键个数DJNZ R3,KS;R3=R3-1,若 R3!=0 跳转到 KSBJ:MOV A,#1H;A=1CLR C

5、; 清进位SUBB A,R0;A=A-R0JC WL; 若有进位,则按键数多于一个,重新采键值JS:POP A; 弹出最初的键值;* 自检部分(孟乐乐)DONGYONG:PUSH AANL A,#0F0HCJNE A,#70H,K7 ; 判断是否按下第八个键LCALL FMQZJLCALL OVERSJMP WLK7:CJNE A,#0B0H,K6 ;判断是否按下第七个键LCALL LEDZJLCALL OVERSJMP WLK6:CJNE A,#0D0H,JS1 ; 判断是否按下第六个键LCALL JPZJLCALL OVERSJMP WLJS1:POP A* 扫描键盘低四位(田羽)ME:

6、MOV SP,#60H; 设置堆栈值为 60,防止使用堆栈时值被覆盖LCALL SEL8 ;打开 245 三态门MOV P1,#0FFH;P1 作输入口MOV A,P1 ;读键值给 A 寄存器LCALL SEL7 ;关闭 245 三态门RRC A ;带进位循环右移键值低四位JNC SRRRC ARRC A ;判断是否是输入键RRC A ;带进位循环右移键值低四位JNC SC ;判断是否是输出键LJMP WL ;既不是输入也不是输出,跳回 WL重新米键值SR:MOV R0,#9H;设置 R0 为写入的数据( 9H)MOV R1,#0H ;设置 R1 为写入数据的地址( 00H)LCALL WRI

7、TE;调用写入子程序LJMP WLSC:MOV R1,#0H; 被输出数据的地址LCALL READ;调用读出子程序LJMP WL;* 写使能子程序(李佳颖)WREN: SETB P3.4 ; 拉高片选端并延时,确保下次被选中MOV R7,#10HLCALL DMECLR P3.4;选中 25045MOV A,#06H ;写使能指令( 0000 0110 )LCALL CIN;调用串行输入子程序SETB P3.4;关闭 25045RET;* 串行输入子程序CIN: MOV R3,#8 ;控制循环次数为 8 次LOOP0:RLC A ;带进位循环左移键值MOV P3.6,C ;按位送入 SI (

8、 25045 的串行输入口)SETB P3.5 ;给串行时钟输入端脉冲(上升沿将数据或命令写入,下降沿将其输出)CLR P3.5DJNZ R3,LOOP0 ;R3=R3-1 ,若 R3! =0,则继续移位RET;* 串行输出子程序COUT: MOV R3,#8H控制循环次数为 8 次MOV A,#00H ;清空 A 寄存器的值,准备接收输出的数据LOOP1:CLR C ;清进位MOV C,P3.7 ;将 SO(25045 串行输出口)的值按位送到 CRLC A ;将数据按位移入 A 寄存器SETB P3.5 ;给串行时钟输入端脉冲(上升沿将数据或命令写入,下降沿将其输出)CLR P3.5DJN

9、Z R3,LOOP1 ;R3=R3-1 ,若 R3! =0,则继续移位RET ;* 延时子程序DME: MOV R6,#0FFHME1:DJNZ R6,ME1 DJNZ R7,DME RET *写入子程序WRITE: LCALL WREN打开写使能开关SETB P3.4MOV R7,#10HLCALL DMECLR P3.4选中 25045写存储单元指令( 0000 0010)MOV A,#02HMOV A,R1 ; 写入数据的开始地址LCALL CINLCALL SEL5LCALL WSHU9MOV P0,R5LCALL DELAYMOV A,R0 ;将RO写入以R1为地址的单元LCALL

10、CINSETB P3.4; 关闭 25O45RET;* 读出子程序READ: SETB P3.4MOV R7,#1OHLCALL DMECLR P3.4;选中 25O45MOV A,#O3H ;读存储单元指令( OOOO OO11 )LCALL CIN;串行输入MOV A,R1;读以 R1 为地址的数据串行输入LCALL CINLCALL COUT ; 串行输出CJNE A,#9H,JS0LCALL SEL4LCALL WSHU9MOV P0,R5LCALL DELAYSETB P3.4 ; 关闭 25045JS0:RETWSHU9:MOV R5,#0DEHRETDELAY: MOV R2,#

11、0FAHLP1: MOV R3,#0FAHLP2: DJNZ R3,LP2DJNZ R2,LP1RET;* 音符延时子程序DELAY1: MOV R2,#2AHLP3: MOV R3,#5DHLP4: DJNZ R3,LP4DJNZ R2,LP3RETDELAY2: MOV R2,#38HLP5: MOV R3,#3EHLP6: DJNZ R3,LP6DJNZ R2,LP5RETDELAY3: MOV R2,#40HLP7: MOV R3,#31HLP8: DJNZ R3,LP8DJNZ R2,LP7RETDELAY4: MOV R2,#40HLP9: MOV R3,#2EHLP10: DJN

12、Z R3,LP10DJNZ R2,LP9RETDELAY5: MOV R2,#2AHLP11: MOV R3,#3EHLP12: DJNZ R3,LP12DJNZ R2,LP11RETDELAY6: MOV R2,#2AHLP13: MOV R3,#38HLP14: DJNZ R3,LP14DJNZ R2,LP13RETDELAY7: MOV R2,#2EHLP15: MOV R3,#2DHLP16: DJNZ R3,LP16DJNZ R2,LP15RET *显示OVEF子程序OVER:MOV B,#0FFHOVE:LCALL SEL2MOV P0,#7EHLCALL DELAY11MOV P

13、0,#0LCALL SEL3MOV P0,#7CHLCALL DELAY11MOV P0,#0LCALL SEL4MOV P0,#0F6HLCALL DELAY11MOV P0,#0LCALL SEL5MOV P0,#0E0HLCALL DELAY11MOV P0,#0DJNZ B,OVERET *5FMQZJ:SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY2ACALL

14、 DELAY2ACALL DELAY2ACALL DELAY2SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY3ACALL DELAY3ACALL DELAY3ACALL DELAY3SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY1ACALL DELAY1ACALL DELA

15、Y1ACALL DELAY1SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY2ACALL DELAY2ACALL DELAY2ACALL DELAY2SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY3ACALL DELAY3ACALL DELAY3ACALL DELAY3SET

16、B P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY4ACALL DELAY4ACALL DELAY4ACALL DELAY4SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY5ACALL DELAY5ACALL DELAY5ACALL DELAY5SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYSETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY4ACALL DELAY4ACALL DELAY4A

17、CALL DELAY4SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY5ACALL DELAY5ACALL DELAY5ACALL DELAY5CLR P2.3ACALL DELAY5ACALL DELAY5SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY6ACALL DELAY6SETB P2.3ACALL DELAYACALL DELAYSETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY4ACALL DELAY4SETB P2.3ACAL

18、L DELAYACALL DELAYCLR P2.3ACALL DELAY3ACALL DELAY3SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY5ACALL DELAY5SETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY6ACALL DELAY6SETB P2.3ACALL DELAYACALL DELAYSETB P2.3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY4ACALL DELAY4SETB P2.

19、3ACALL DELAYACALL DELAYCLR P2.3ACALL DELAY3ACALL DELAY3SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY2ACALL DELAY2ACALL DELAY2ACALL DELAY2SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY5ACALL DELAY5ACALL DELAY5ACALL DELAY5SETB P2.3ACALL DELAY ACALL

20、DELAY ACALL DELAY ACALL DELAYCLR P2.3ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1 SETB P2.3ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAYACALL DELAY2ACALL DELAY2SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY5ACALL DELAY5A

21、CALL DELAY5ACALL DELAY5SETB P2.3ACALL DELAYACALL DELAYACALL DELAYACALL DELAYCLR P2.3ACALL DELAY1ACALL DELAY1ACALL DELAY1ACALL DELAY1 SETB P2.3 ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAY ACALL DELAYACALL DELAYRET;*LED自检子程序LEDZJ:MOV P0,#0LCALL SEL5M

22、OV A,#1MOV R1,#8KK:MOV B,#2MOV P0,ALCALL DELAYYMUL ABDJNZ R1,KKMOV P0,#0LCALL SEL4MOV A,#1MOV R1,#8KK1:MOV B,#2MOV P0,#0MOV P0,ALCALL DELAYYMUL ABDJNZ R1,KK1MOV P0,#0LCALL SEL3MOV A,#1MOV R1,#8KK2:MOV B,#2MOV P0,#0MOV P0,ALCALL DELAYMUL ABDJNZ R1,KK2MOV P0,#0LCALL SEL2MOV A,#1MOV R1,#8KK3:MOV B,#2MO

23、V P0,#0MOV P0,ALCALL DELAYMUL ABDJNZ R1,KK3MOV P0,#0LCALL SEL1MOV A,#1MOV R1,#8KK4:MOV B,#2MOV P0,#0MOV P0,ALCALL DELAYYMUL ABDJNZ R1,KK4MOV B,#0FFHXIAN0:LCALL SHU0LCALL SHUXIAN1:LCALL SHU1LCALL SHUXIAN2:LCALL SHU2LCALL SHUXIAN3:LCALL SHU3LCALL SHUXIAN4:LCALL SHU4LCALL SHUXIAN5:LCALL SHU5LCALL SHUXI

24、AN6:LCALL SHU6LCALL SHUXIAN7:LCALL SHU7LCALL SHUXIAN8:LCALL SHU8LCALL SHUXIAN9:LCALL SHU9LCALL SHUMOV B,#5HBP:LCALL SEL2LCALL B1LCALL DELAY22LCALL DELAY11LCALL SEL3LCALL B2LCALL DELAY22LCALL SEL4LCALL B3LCALL DELAY33LCALL SEL5LCALL B1LCALL DELAY22LCALL SEL2LCALL B2LCALL DELAY22LCALL DELAY11LCALL SEL

25、3LCALL B3LCALL DELAY22LCALL DELAY22LCALL SEL2LCALL B3LCALL DELAY22LCALL DELAY11LCALL SEL3LCALL B1LCALL DELAY22LCALL SEL4LCALL B2LCALL DELAY33LCALL SEL5LCALL B3LCALL DELAY22DJNZ B,BPMOV B,#0FFHVERY:LCALL SEL2MOV P0,#7CHLCALL DELAY11MOV P0,#0LCALL SEL3MOV P0,#0F6HLCALL DELAY11MOV P0,#0LCALL SEL4MOV P0

26、,#0E0HLCALL DELAY11MOV P0,#0LCALL SEL5MOV P0,#0DCHLCALL DELAY11MOV P0,#0显示 GOODDJNZ B,VERY *5MOV B,#0CFHGOOD:LCALL SEL2LCALL DELAY33MOV P0,#0LCALL SEL4MOV P0,#7EHLCALL DELAY33MOV P0,#0LCALL SEL5MOV P0,#0BCHLCALL DELAY33MOV P0,#0LCALL DELAY55DJNZ B,GOODRET;* 键盘自检子程序JPZJ: MOV R1,#4JPZ: MOV P0,#0 ; 没采数

27、就返回去CALL KEYMOV R0,AANL A,#0FH没采数就返回去采数并取反两次取数相与取低四位回复 A 的值JZ JPZ ;PP:CALL DMSCALL KEYCALL ZEJNZ PPMOV A,R0CPL ARRC AJNC DL1RRC AJNC DL2RRC AJNC DL3RRC AJNC DL4DL1:LCALL SEL1MOV P0,#0CHLCALL DELAYLCALL DELAYDJNZ R1,JPZLCALL OVERJMP WLDL2:LCALL SEL2MOV P0,#0B6HLCALL DELAYLCALL DELAYDJNZ R1,JPZLCALL O

28、VERJMP WLDL3:LCALL SEL3MOV P0,#9EHLCALL DELAYLCALL DELAYDJNZ R1,JPZLCALL OVERJMP WLDL4:LCALL SEL4MOV P0,#0CCHLCALL DELAYLCALL DELAYDJNZ R1,JPZLCALL OVERJMP WL采数并取反KEY: LCALL SEL8MOV P1,#0FFHMOV A,P1CPL ALCALL SEL7RETZE: ANL A,R0 ; 两次取数相与取低四位ANL A,#0FHRET;* 延时子程序DMS: MOV R2,#32HLP1D: MOV R3,#64HLP2D:

29、 DJNZ R3,LP2DDJNZ R2,LP1DRETDELAYY: MOV R2,#0FFHLP1Y: MOV R3,#0FFHLP2Y: DJNZ R3,LP2YDJNZ R2,LP1YRETDELAY11: MOV R2,#11HLP3Y: MOV R3,#11HLP4Y: DJNZ R3,LP4YDJNZ R2,LP3YRETDELAY22: MOV R2,#0AFHLP5Y: MOV R3,#0AFHLP6Y: DJNZ R3,LP6YDJNZ R2,LP5YRETDELAY33: MOV R2,#5FHLP7Y: MOV R3,#5FHLP8Y: DJNZ R3,LP8YDJNZ

30、 R2,LP7YRETDELAY55: MOV R2,#2HLP11Y: MOV R3,#2HLP12Y: DJNZ R3,LP12YDJNZ R2,LP11YRET;* 波浪分解B1:MOV P0,#2LCALL DELAY11RETB2:MOV P0,#80HLCALL DELAY11RETB3:MOV P0,#10HLCALL DELAY11RET;*LED 位选及 245 三态门开关子程序SEL1:CLR P2.7CLR P2.6CLR P2.5RETSEL2:SETB P2.7CLR P2.6CLR P2.5RETSEL3:CLR P2.7SETB P2.6CLR P2.5RETSEL4:SETB P2.7SETB P2.6CLR P2.5RETSEL5:CLR P2.7CLR P2.6SETB P2.5RETSEL7:CLR P2.7SETB P2.6SETB P2.5RETSEL8:SETB P2.7SETB P2.6SETB P2.5RET *数字0-9的LED显示子程序SHU0:MOV R1,#7E

温馨提示

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

评论

0/150

提交评论