ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:204.24KB ,
资源ID:6767766      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6767766.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AT89C51单片机的最小系统设计.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于AT89C51单片机的最小系统设计.docx

1、基于AT89C51单片机的最小系统设计基于AT89C51单片机的最小系统设计组员:田竹、王维、袁倍明摘要:本次实验课题为设计一个基于AT89C51单片机的最小系统。用P1口设计流水灯,用P2口和P0口分别作段选和位选设计了六位数码管的静动态显示和简易的电子钟,用P3口设计了一个4*4的矩阵键盘,并用蜂鸣器实现了唱歌功能和键盘按下的声响,用62256扩展部RAM,还扩展并实现了LCD1602的静动态显示,最后通过ADC0809和 DAC0832分别实现了A/D、D/A转换功能。一、系统电源用MC7805集成稳压器将输入电压转为+5V稳压给系统供电。二、晶振12MHZ及复位电路采用12MHz的外部

2、晶振,给系统提供时钟信号。并采用了按键复位电路。三、流水灯功能描述:让8个led灯循环闪烁源程序:流水灯ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV A,#11111110B LOOP:MOV P1,A;给P1口送值LCALL DLY RL A ;循环左移 LJMP LOOP DLY:MOV R7,#250 ;延时子程序 DLY1: MOV R6,#200 DJNZ R6,$ DJNZ R7,DLY1 RET END四、数码管功能描述:数码管动态显示16源程序:ORG 0000HLJMP STARTORG 0100HSTART:MOV P0,#0 MOV P2,#

3、0F9H SETB P0.0 LCALL DELAY CLR P0.0 MOV P2,#0C4H SETB P0.1 LCALL DELAY CLR P0.1 MOV P2,#0D0H SETB P0.2 LCALL DELAY CLR P0.2 MOV P2,#99H SETB P0.3 LCALL DELAY CLR P0.3 MOV P2,#92HSETB P0.4 LCALL DELAY CLR P0.4 MOV P2,#82H SETB P0.5 LCALL DELAY CLR P0.5LJMP STARTDELAY: MOV R5,#10D1: MOV R6,#20 D2: MOV

4、 R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1RETEND五、4*4矩阵键盘和蜂鸣器功能描述:通过按键让数码管显示0-F,按键按下时,蜂鸣器响一下。源程序:ORG 0000HLJMP MAINORG 0100HMAIN: MOV P0,#0FFHMOV B,#4 MOV P3,#0F0H;列置0,看行电平 JNB P3.4,L1 JNB P3.5,L2 JNB P3.6,L3 JNB P3.7,L4 AJMP MAINL1: MOV R1,#0AJMP LL1L2: MOV R1,#1AJMP LL1L3: MOV R1,#2AJMP LL1L4: MOV R

5、1,#3AJMP LL1LL1: ACALL DL10MS;消抖MOV A,P3 XRL A,#0F0H JZ MAIN MOV P3,#0FH;行置0,看列电平 JNB P3.0,L5 JNB P3.1,L6 JNB P3.2,L7 JNB P3.3,L8L5: MOV 20H,#0AJMP KEYL6: MOV 20H,#1AJMP KEYL7: MOV 20H,#2AJMP KEYL8: MOV 20H,#3AJMP KEYKEY:MOV A,R1;计算键值并查表赋值 MUL AB ADD A,20H MOV R2,AMOV DPTR,#TABLEMOV A,R2MOVC A,A+DPT

6、RMOV P2,ACALL BEEP_BLLCALL DELAYLJMP MAINBEEP_BL: CLR P2.7;蜂鸣器子程序 ACALL DELAY SETB P2.7 RETDELAY: MOV R5,#50;延时D1: MOV R6,#20 D2: MOV R7,#50 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RETDL10MS:MOV R7,#05HLOOP1: MOV R6,#0F9HLOOP2:NOP NOP DJNZ R6,LOOP2 DJNZ R7,LOOP1 RETTABLE:DB 0A0H,0F9H,0C4H,0D0H,99H DB 92H,82

7、H,0F8H,80H,90H DB 88H,83H,0A6H,0C1H,86HDB 8EHEND六、时钟功能描述:在数码管上实现时钟功能,并通过矩阵键盘的3个键实现复位,调时,调分。源程序:ORG 0000H LJMP 1000H ORG 001BH AJMP 0100H ORG 0100H MOV TH1,#0D8H MOV TL1,#0F0H DJNZ 69H,TT1MOV 69H,#100 SETB 4FH TT1:RETI;中断延时ORG 1000H MOV 30H,#1 MOV 31H,#2 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0 MO

8、V TMOD,#10H MOV TH1,#0D8H MOV TL1,#0F0H MOV IE,#88HXS0: SETB TR1 MOV 69H,#100 CLR 4FHXS00:LJMP KEYKEY;判断按键有无按下LX1: CJNE A,#0A0H,LX2LJMP P100LX2: CJNE A,#0F9H,LX3LJMP P1000LX3: CJNE A,#0C4H,XSLJMP P10000XS: MOV 40H,#01H MOV DPTR,#TAB MOV P0,40H MOV A,30H MOVC A,A+DPTRMOV P2,ALCALL YS1MS MOV P2,#0FFHM

9、OV A,#42H MOV 40H,A MOV P0,40HMOV A,31H ADD A,#10 MOVC A,A+DPTR MOV P2,A LCALL YS1MSMOV P2,#0FFH MOV A,#44H MOV 40H,A MOV P0,40H MOV A,32H MOVC A,A+DPTRMOV P2,A LCALL YS1MS MOV P2,#0FFHMOV A,#48H MOV 40H,A MOV P0,40HMOV A,33H ADD A,#10 MOVC A,A+DPTR MOV P2,A LCALL YS1MSMOV P2,#0FFH MOV A,#50H MOV 40

10、H,A MOV P0,40H MOV A,34H MOVC A,A+DPTRMOV P2,A LCALL YS1MS MOV P2,#0FFHMOV A,#60H MOV 40H,A MOV P0,40H MOV A,35H MOVC A,A+DPTRMOV P2,A LCALL YS1MS MOV P2,#0FFHMOV A, #40H MOV 40H,AJNB 4FH,LLLL1 CLR 4FHLJMP JIA LLLL1:LJMP XS00P100: MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 MOV 35H,#0JIA:

11、 MOV R1,#14H MOV A,35H CJNE A,#9,JIA1 MOV 35H,#0 MOV A,34H CJNE A,#5,JIA10 MOV 34H,#0P10000: MOV A,33H CJNE A,#9,JIA100 MOV 33H,#0 MOV A,32H CJNE A,#5,JIA1000 MOV 32H,#0P1000: MOV A,31H CJNE A,#9,JIA10000 MOV 31H,#0MOV A,30H CJNE A,#2,JIA100000 MOV 30H,#0 AJMP XSJIA100000: INC 30H AJMP XS0JIA10000:

12、CJNE A,#3,JIAJIA MOV A,30H CJNE A,#02,JIAJIA MOV 30H,#0 MOV 31H,#0 AJMP XS0JIAJIA: INC 31H AJMP XS0JIA1000:INC 32H AJMP XS0JIA100: INC 33H AJMP XS0JIA10: INC 34H AJMP XS0JIA1: INC 35H AJMP XS0 RETYS1MS: MOV R6,#9HYL1: MOV R7,#19H DJNZ R7,$ DJNZ R6,YL1 RETDL10MS:MOV R7,#05HLOOP1: MOV R6,#0F9HLOOP2:NO

13、P NOP DJNZ R6,LOOP2 DJNZ R7,LOOP1 RETDELAY: MOV R5,#50 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET ;-矩阵键盘-KEYKEY: MOV B,#4 MOV P3,#0F0H;列置0,看行电平 JNB P3.4,L1 JNB P3.5,L2 JNB P3.6,L3 JNB P3.7,L4 AJMP XSL1: MOV R1,#0AJMP LL1L2: MOV R1,#1AJMP LL1L3: MOV R1,#2AJMP LL1L4: MOV R1,#3A

14、JMP LL1LL1: ACALL DL10MS;消抖 MOV A,P3 XRL A,#0F0H JZ LLL2 MOV P3,#0FH;行置0,看列电平 JNB P3.0,L5 JNB P3.1,L6 JNB P3.2,L7 JNB P3.3,L8L5:JNB P3.0,L5MOV 20H,#0AJMP KEYL6: JNB P3.1,L6MOV 20H,#1AJMP KEYL7:JNB P3.2,L7MOV 20H,#2AJMP KEYL8: JNB P3.3,L8MOV 20H,#3AJMP KEYLLL2:LJMP XSKEY:MOV A,R1;计算键值并查表赋值 MUL AB ADD

15、 A,20H MOV R2,AMOV DPTR,#TABLEMOV A,R2MOVC A,A+DPTR;LCALL DELAYLJMP LX1TAB:DB 0A0H,0F9H,0C4H,0D0H,099H,092H,082H,0F8H,080H,090HDB 020H,079H,044H,050H,019H,012H,002H,078H,000H,010HTABLE:DB 0A0H,0F9H,0C4H,0D0H,99H DB 92H,82H,0F8H,80H,90H DB 88H,83H,0A6H,0C1H,86HDB 8EHEND七、1602液晶显示功能描述:在lcd上动态逐字显示两行字符串

16、。源程序:RS EQU P2.7RW EQU P2.6E EQU P2.5ORG 0000HLJMP MAINORG 0100HMAIN: ACALL DEL5MS ACALL DEL5MS ACALL DEL5MS MOV P1,#38H ACALL ENABLE1 ACALL DEL5MS MOV P1,#38H ACALL ENABLE1 ACALL DEL5MS MOV P1,38H ACALL ENABLE1 MOV P1,#00000001B ACALL ENABLE MOV P1,#00111000B ACALL ENABLE MOV P1,#00001111B ACALL EN

17、ABLE MOV P1,#00000100B ACALL ENABLE MOV P1,#8FH ACALL ENABLE MOV DPTR,#TABLE1 ACALL L1 MOV P1,#0CFH ACALL ENABLE MOV DPTR,#TABLE2 ACALL L2SJMP $L1:MOV R1,#00HLL1:MOV A,R1MOVC A,A+DPTR MOV P1,A ACALL DELXXMS ACALL WRITE_LCD INC R1CJNE A,#00H,LL1 RETL2:MOV R1,#00HLL2:MOV A,R1 MOVC A,A+DPTRMOV P1,A ACA

18、LL DELXXMS ACALL WRITE_LCDINC R1 CJNE A,#00H,LL1RETWRITE_LCD: SETB RS CLR RWCLR E ACALL DELAY SETB ERETENABLE1:CLR RS CLR RW CLR E SETB E RETENABLE:CLR RS CLR RW CLR E ACALL DELAY SETB E RETDELAY:MOV P1,#0FFHCLR RS SETB RW CLR E NOP SETB E P1.7,DELAY RETDEL5MS:MOV R7,#125DEL1:MOV R6,#18 NOPDEL2:DJNZ

19、 R6,DEL2 DJNZ R7,DEL1 RETDELXXMS:MOV R7,#250 DEL3:MOV R6,#250 NOP DEL4:DJNZ R6,DEL4DJNZ R7,DEL3 RETtable1: dbUHZ NAIT table2: db*:QQ END八、外部RAM扩展功能描述:将片数据送到片外RAM储存,再送回片,在数码管中显示。源程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV P0,#0FFH MOV A,#0F9H MOV DPTR,#0001H MOVX DPTR,A CLR A MOVX A,DPTR MOV P2,A SJMP $E

20、ND九、AD转换功能描述:向ADC0809输入模拟信号电压,经转换后在数码管上显示电压值。源程序:LED_0 EQU 30HLED_1 EQU 31HLED_2 EQU 32HADC EQU 35HCLOCK BIT P3.1ST BIT P3.0;ALEOE BIT P3.2EOC BIT P3.3ORG 0000HLJMP STARTORG 000BHCPL CLOCK;给0809时钟RETIORG 0100HSTART: MOV LED_0,#00H MOV LED_1,#00H MOV LED_2,#00H MOV TMOD,#02H MOV TH0,#0FEH MOV TL0,#0F

21、EH MOV IE,#82H SETB TR0WAIT:CLR STSETB STCLR ST JNB EOC,$ SETB OE MOV ADC,P1 CLR OE MOV A,ADCMOV B,#51 DIV AB MOV LED_2,A MOV A,B MOV B,#5 DIV AB MOV LED_1,A MOV A,B MOV B,#2 MUL AB MOV LED_0,A LCALL DISP SJMP WAITDISP:MOV P0,#00H MOV DPTR,#TABLE MOV A,LED_0 MOVC A,A+DPTR SETB P0.2 MOV P2,A LCALL DE

22、LAY CLR P0.2 MOV A,LED_1 MOVC A,A+DPTR SETB P0.1 MOV P2,A LCALL DELAY CLR P0.1 MOV A,LED_2 MOVC A,A+DPTR SETB P0.0 ADD A,#80H MOV P2,A LCALL DELAY CLR P0.0 RETDELAY: MOV R6,#50D1: MOV R7,#15 DJNZ R7,$ DJNZ R6,D1 RETTABLE:DB 0A0H,0F9H,0C4H,0D0H,99H DB 92H,82H,0F8H,80H,90H END十、DA转换功能描述:实现输出方波、三角波、梯形波

23、。源程序:1.方波程序ORG 0000HLJMP LOOP1ORG 0100H;通过上下电平地的变化来输出方波LOOP1:CLR P3.6MOV P2,#00H;向选通地址送低电平地ACALL DELAYMOV P2,#0FFH;向选通地址送高电平ACALL DELAYLJMP LOOP1DELAY:MOV R1,#06H D2:MOV R2,#0FFH D1:DJNZ R2,D1 DJNZ R1,D2RET;延时,通过改变它的大小可以改变占空比END2.三角波:ORG 0000HLJMP STR1ORG 0100H STR1: CLR P3.6 ;通过上升和下降来产生三角波MOV R6,#0

24、0H ;电压随时间上升STR2: MOV A,R6 MOV P2,AINC R6 CJNE R6,#0FFH,STR2 ;电压随时间下降STR3: ACALL DELAYDEC R6 MOV A,R6 MOV P2,A CJNE R6,#00H,STR3 AJMP STR1END 总结一、流水灯 流水灯使用接口最好使用P1口,P1口没有第二功能也不用作为地址总线,容易控制。最好加一跳针,以便与其他功能区分开。二、数码管焊接时,可将各数码管的段选分别连接起来,连线时,应该贴着板子布线。p0口做位选时,要接上拉电阻,增大数码管驱动电流,或采用PNP来进展放大。放射级接电源,基极接p0口,集电极接位

25、选。P0和P2口使用时和其他功能有重复,最好用跳针加以控制。三、矩阵键盘4*4矩阵键盘的消抖很关键,调用一个10ms的延时,当按键放开时,数码管显示相应的数字,并伴有蜂铃器的响声。对键盘行列扫描时,用软件置零比用硬件置零方便。四、电子钟编程时,用中断定时比一般定时更为准确。由于程序本身存在一定的缺陷,导致在按键进展控制时,程序会暂停并等待直至按键放开。五、蜂鸣器编程时,可在网上查找歌曲编写软件,将歌曲转化为对应的代码,用查表进展实现唱歌功能。七、LCD1602线路有点复杂,需要认真来进展线路检错,注意其引脚对应的P口不被用于其他功能而分流,导致液晶不能正常显示。在其Vee引脚接一电位器进展比照

26、度调节。编程时,注意不要遗漏复位程序。八、片外RAM扩展时,可将各个P口用插槽引出,方便使用。编程时,可通过查看XDATA窗口,看对应的数据有无送到指定的地址。九、AD转换ADC0809数据输出的八个引脚2-1到2-8分别接到单片机的P*.7到P*.0口,注意不要接反了。十、DA转换可先用LED灯检测DAC0832是否输出的信号是否与编程写的信号一致,假设将WR1脚接地,可直接对P口送值,假设将WR1脚接P3.6,可用送地址方式赋值。UA741的输出口与DAC0832的RFB脚之间可接电位器来调节准确度。输出时,可以采用双极性输出电路使输出电压变为正电压十一、检测电路 编程仿真时,可单步运行看P口及其他相应的存放器有无正确赋值,硬件检测时,最好交给另外的组员仔细检查电路板看有无短接、虚焊等问题,再用万用表进展检测,如没有问题,仿真时从P口开场到功能器件逐步用万用表检查相应的值。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2