单片机项目教学案例汇编_第1页
单片机项目教学案例汇编_第2页
单片机项目教学案例汇编_第3页
单片机项目教学案例汇编_第4页
单片机项目教学案例汇编_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、 案例一 单片机最小系统设计1、 功能要求1、 设计一个单片机最小系统;2、 通过锁存器实现地址信息和数据信息的隔离。2、 硬件电路设计1、方案设计结构示意图:2、 电路设计原理图:3、 参考程序ORG 0000HJMP MAINORG 0040HMAIN: MOV SP,#07H MOV DPTR,#0FF45H MOV A,#88H MOVX DPTR,A SJMP $ END 案例二 信号灯控制1、 功能要求1、 设计一个延时程序,使与P1.0相连的发光二极管每隔1秒亮一次;2、 采用循环控制,使8个发光二极管呈跑马灯方式闪烁,其中发光二 极管点亮时长为1秒,熄灭时长为2秒。2、 硬件电

2、路设计1、电路设计原理图3、 参考程序org 0000hljmp startorg 100hstart:mov dptr,#tabmov a,#0mov r3,#8loop4: mov 30h,amovc a,a+dptrmov p1,alcall delaymov a,30hinc amov 30h,amovc a,a+dptrmov p1,alcall delaylcall delaymov a,30hinc adjnz r3,loop4ljmp startdelay: mov r7,#100 loop2:mov r6,#100loop1: mov r5,#49 djnz r5,$ djn

3、z r6,loop1 djnz r7,loop2 ret tab: db 0feh,0ffh,0fdh,0ffh,0fbh,0ffh,0f7h,0ffh db 0efh,0ffh,0dfh,0ffh,0bfh,0ffh,07fh,0ffh End 案例三 交通灯控制1、 功能要求利用单片机设计制作具有下列功能的交通灯:1、 自动计时,由两位数码管静态显示;2、 发光二极管分四组分别代表东、南、西、北四个方向交通灯,东、西方向红灯亮时,南北方向绿灯亮;反之南北方向红灯亮时,东西方向绿灯亮;小灯每30S交替一次。2、 硬件电路设计3、 参考程序ORG 0000HLJMP STARTORG 0100

4、HBCD1EQU50HBCD2EQU51HSTART:MOV SP,#60HSTATE0:MOV A,#0F6H ;初始状态全红灯MOV P1,AMOV R2,#1 ;延时1秒S0:LCALLBINBCDLCALLDISPLAYLCALLDELAYDJNZ R2,S0STATE1:MOV A,#0F5H ;南北绿灯,东西红灯MOV P1,AMOV R2,#20 ;延时20秒S1:LCALLBINBCDLCALLDISPLAYLCALLDELAYDJNZ R2,S1STATE2:MOV A,#0F3H ;南北黄灯,东西红灯MOV P1,AMOV R2,#5 ;延时5秒S2:LCALLBINBCD

5、LCALLDISPLAYLCALLDELAYDJNZ R2,S2STATE3:MOV A,#0EEH ;南北红灯,东西绿灯MOV P1,AMOV R2,#20 ;延时20秒S3:LCALLBINBCDLCALLDISPLAYLCALLDELAYDJNZ R2,S3STATE4:MOV A,#0DEH ;南北红灯,东西黄灯MOV P1,AMOV R2,#5 ;延时5秒S4:LCALLBINBCDLCALLDISPLAYLCALLDELAYDJNZ R2,S4LJMP STATE1 ;转至状态1DELAY:MOV R7,#20 ;1秒延时子程序D1:MOV R6,#200D2:MOV R5,#12

6、3NOPDJNZ R5,$DJNZ R6,D2DJNZ R7,D1RETBINBCD:MOVA,R2;二进制转换非压缩BCD码子程序MOVB,#10DIVABMOVBCD2,A;存十位BCD码MOVBCD1,B;存个位BCD码RETDISPLAY:MOVA,BCD1;显示子程序MOVDPTR,#TABMOVCA,A+DPTR;查个位字形码MOVP2,AMOVA,BCD2MOVCA,A+DPTR;查十位字形码MOVP0,ARET TAB:DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90H END 案例四 简易电子密码锁设计1、 功能要求1、 初始状态下

7、显示屏显示“HELLO”,并保持显示5秒后清屏;2、 如果密码输入错误则显示“ERROR”,并保持显示5秒后清屏;3、 如果密码输入正确则显示“RIGHT”,并保持显示5秒后清屏 。2、 硬件电路设计1、 系统方案设计理论图(1) 键盘电路图(2) 数码管显示电路3、 参考程序*;以下8个字节存放8位数码管的段码LED_BIT_1EQU30HLED_BIT_2EQU31HLED_BIT_3EQU32HLED_BIT_4EQU33HLED_BIT_5EQU34HLED_BIT_6EQU35HLED_BIT_7EQU36HLED_BIT_8EQU37H;以下6个字节存放初始密码WORD_1EQU3

8、8HWORD_2EQU39HWORD_3EQU3AHWORD_4EQU3BHWORD_5EQU3CHWORD_6EQU3DH;以下6个字节存放用户输入的6位密码KEY_1EQU3EHKEY_2EQU3FHKEY_3EQU40HKEY_4EQU41HKEY_5EQU42HKEY_6EQU43H;*CNT_AEQU44HCNT_BEQU45HKEY_CNTEQU46H;已输出的密码位数LINEEQU47H;按键行号ROWEQU48H;按键列号VALEQU49H;键值;*;以下为初始化程序,包括数据存储空间初始化,设置初始密码ORG00HSJMPSTARTORG0050HSTART:MOV SP,#

9、60HMOVCNT_A,#00H;程序初始化MOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HSETBP1.0MOVLED_BIT_1,#00H;段码存储区清0MOVLED_BIT_2,#00HMOVLED_BIT_3,#00HMOVLED_BIT_4,#00HMOVLED_BIT_5,#00HMOVLED_BIT_6,#00HMOVLED_BIT_7,#79HMOVLED_BIT_8,#73HMOVKEY_1,#00H;输入密码存储区清0MOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMO

10、VKEY_5,#00HMOVKEY_6,#00HMOVWORD_1,#6;设置初始密码为"123456"MOVWORD_2,#5MOVWORD_3,#4MOVWORD_4,#3MOVWORD_5,#2MOVWORD_6,#1A0:LCALLDISP;*;以下为键盘扫描程序,计算键值并存入VALLSCAN:MOVP3,#0F0H;扫描行码L1:JNBP3.0,L2LCALLDLY_SJNBP3.0,L2MOVLINE,#00HLJMPRSCANL2:JNBP3.1,L3LCALLDLY_SJNBP3.1,L3MOVLINE,#01HLJMPRSCANL3:JNBP3.2,L4

11、LCALLDLY_SJNBP3.2,L4MOVLINE,#02HLJMPRSCANL4:JNBP3.3,A0LCALLDLY_SJNBP3.3,A0MOVLINE,#03HRSCAN:MOVP3,#0FH;扫描列码C1:JNBP3.4,C2MOVROW,#00HLJMPCALCUC2:JNBP3.5,C3MOVROW,#01HLJMPCALCUC3:JNBP3.6,C1MOVROW,#02HCALCU:MOVA,LINE;计算键值MOVB,#03HMULABADDA,ROWMOVVAL,A;*;以下为按键处理程序,对不同的按键作出响应CJNEA,#0AH,J1;是否为"CLR&quo

12、t;键MOVR1,KEY_CNTCJNER1,#00H,J2LCALLALARM_1LJMPSTART J2:LCALLSHIFTR DECKEY_CNTW00:LCALLDISP;等待按键抬起MOVA,P3CJNEA,#0FH,W01LJMPA0W01:MOVA,P3CJNEA,#0F0H,W02LJMPA0W02:SJMPW00J1:MOVA,VALCJNEA,#0BH,J3;判断是否为"ENTER"键MOVR1,KEY_CNTCJNER1,#06H,J4MOVA,WORD_1;比较密码CJNEA,3EH,J5MOVA,WORD_2CJNEA,3FH,J5MOVA,WO

13、RD_3CJNEA,40H,J5MOVA,WORD_4CJNEA,41H,J5MOVA,WORD_5CJNEA,42H,J5MOVA,WORD_6CJNEA,43H,J5CLRP1.0MOVP2,#0ffhLCALLDLY_LLJMPSTARTJ5:LCALLALARM_2LJMPSTARTJ4:LCALLALARM_1LJMPSTARTJ3:INCKEY_CNT;按下数字键MOVA,KEY_CNTCJNEA,#07H,K1LCALLALARM_1W10:LCALLDISP;等待按键抬起MOVA,P3CJNEA,#0FH,W11LJMPSTARTW11:MOVA,P3CJNEA,#0F0H,W

14、12LJMPSTARTW12:SJMPW10K1:LCALLSHIFTLW20:LCALLDISP;等待按键抬起MOVA,P3CJNEA,#0FH,W21LJMPA0W21:MOVA,P3CJNEA,#0F0H,W22LJMPA0W22:SJMPW20LJMPA0ALARM_1:LCALL SEC;操作错误报警RETALARM_2:LCALL SEC;密码错误报警LCALLDLY_LRET;*;音频信号产生程序,用于声音报警SEC: MOV R2, #100 SEC_LP:clr P1.7 LCALL T1MSD NOP setb P1.7LCALL T1MSD DJNZ R2,SEC_LP

15、RET;*;段码,输入密码左移子程序SHIFTL:MOVLED_BIT_6,LED_BIT_5MOVLED_BIT_5,LED_BIT_4MOVLED_BIT_4,LED_BIT_3MOVLED_BIT_3,LED_BIT_2MOVLED_BIT_2,LED_BIT_1MOVLED_BIT_1,#40HMOVKEY_6,KEY_5MOVKEY_5,KEY_4MOVKEY_4,KEY_3MOVKEY_3,KEY_2MOVKEY_2,KEY_1MOVKEY_1,VALRET;*;段码,输入密码右移子程序SHIFTR:MOVLED_BIT_1,LED_BIT_2MOVLED_BIT_2,LED_BI

16、T_3MOVLED_BIT_3,LED_BIT_4MOVLED_BIT_4,LED_BIT_5MOVLED_BIT_5,LED_BIT_6MOVLED_BIT_6,#00HMOVKEY_1,KEY_2MOVKEY_2,KEY_3MOVKEY_3,KEY_4MOVKEY_4,KEY_5MOVKEY_5,KEY_6MOVKEY_6,#00HRET;*;以下为数码显示子程序DISP:PUSH ACCPUSH PSWSETB RS0MOV R0,#LED_BIT_1MOV R2,#8MOV R3,#0FEHDISP1:mov P2,R3 MOV P0,R0LCALLDLY_SMOV a,R3RL AM

17、OV R3,AINC R0djnz R2,DISP1POP PSWPOP ACCRET;*T1MSD:MOV R3, #2 D0:MOV R4, #250 DJNZ R4, $ DJNZ R3, D0 RETDLY_S:MOVR6,#10D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETDLY_L:MOVR5,#100D2:MOVR6,#100D3:MOVR7,#248DJNZR7,$DJNZR6,D3DJNZR5,D2RETFINI:NOPEND 案例五 双机通信1、 功能要求利用AT89S52串行口,通过双机通信,实现单片机之间数据块的传送 (1) 甲机发送,乙机接收;(2

18、) 甲机发送地址信息,然后发送一批数据;(3) 乙机把接收到的地址信息作为存放数据的首地址,然后将数据存入相应单元;(4) 校验方式:累加校验和。2、 硬件电路设计1、 硬件电路结构示意图3、 参考程序发送方:ORG0000HAJMPMAINORG0100HMAIN:MOV SP,#60H MOVSCON,#40H; 串行口以方式1工作MOVTMOD,#20H; T1以方式2工作MOVTH1,#0FDH; 波特率9600MOVTL1,#0FDHSETBTR1 MOVP1,#0FFHMOV30H,#0FFH;设拨码开关初始值K0:MOVA,P1;读入拨码开关CJNEA,30H,K1;判断与前次是不是相同,不同则跳至K1SJMPK0 K1:MOV30H,A

温馨提示

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

评论

0/150

提交评论