系列单片机的增强型-AT89C51系列单片机电子设计实验报告_第1页
系列单片机的增强型-AT89C51系列单片机电子设计实验报告_第2页
系列单片机的增强型-AT89C51系列单片机电子设计实验报告_第3页
系列单片机的增强型-AT89C51系列单片机电子设计实验报告_第4页
系列单片机的增强型-AT89C51系列单片机电子设计实验报告_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告姓名:宋大威 电气1302班学号20134223067 简介本次项目是以51系列单片机的增强型AT89C51系列单片机,设计与制作单片机系统,按需求设计硬件原理图,编写、调试软件程序 (Keil uVision4) ,硬件电路和软件程序结合,进行硬件调试仿真,烧写调试后的最终程序,系统上电运行。主要包括流水灯、数码管、矩阵键盘、蜂鸣器、数字时钟、液晶 LCD1602、片外RAM 扩展、A/D转换和D/A转换。所用芯片为AT89C51,CY62256,ADC0809,DAC0832锁存器74LS373。目录 流水灯1.1 实验目的11.2电路图11.3电路原理21.4程序设计思路21.5

2、实验心得及反思3 数码管2.1实验目的42,2电路图42.3电路原理52.4程序设计思路52.5实验心得及反思5 矩阵键盘及蜂鸣器3.1实验目的63.2电路图63.3电路原理73.4程序设计思路73.5实验心得及反思7 液晶显示器LCD16024.1实验目的84.2电路图84.3电路原理94.4程序设计思路94.5实验心得及反思10 片外RAM扩展5.1实验目的115.2电路图125.3电路原理125.4程序设计思路135.5实验心得及反思14第六章A/D转换 6.1实验目的146.2电路图156.3电路原理166.4程序设计思路166.5实验心得及反思17第六章D/A转换7.1实验目的177

3、.2电路图187.3电路原理197.4程序设计思路197.5实验心得及反思19第八章 附录程序8.1流水灯208.2数码管218.3矩阵键盘228.4时钟238.5液晶LCD160224 8.6片外RAM258.7A/D转换268.8D/A转换27第九章 参考文献流水灯1实验目的了解单片机的系统设计方法掌握Keil uVision4软件的使用方法掌握焊接技术在开发板上实现八个发光LED被点亮2电路原理 3 实验原理发光LED灯需要正向电压才能导通,单片机给一个低电平后,所以连接的LED负极,就会导通发亮,点亮8个发光二级管时,先点亮一个,延时,再点亮下一个,再延时,循环往复,形成流水灯。不同规

4、格、不同颜色的LED参数是不一样的。一般普通发光二极管,以红色为例:LED工作电压:1.8V2.4VLED工作电流:2mA20mA一般取电压典型值:U=2VR2 5V -2V/0.02A5V-2V/0.02A =150,1.5K4程序设计思路点亮第三盏灯,并且延时点亮第二盏灯,并且延时点亮第四盏灯,并且延时点亮第一盏灯,并且延时点亮第八盏灯,并且延时点亮第六盏灯,并且延时点亮第五盏灯,并且延时点亮第七盏灯,并且延时开始5实验心得及反思心得;这是我做的第一个实验但是我觉得称呼他为我的作品,从开始时的不知如何下手到后面驾轻就熟,收获巨大,做完本次实验,让我们对单片机有了新的认识,也更加的体会到了将

5、理论与实际结合的重要性。理论联系实际,才能更好的掌握知识运用知识。反思;在焊接电路板之前,我们要先理解本次实验的原理以及电路图的设计和布局,然后再开始焊接编程,在做完整个试验后,才明白需要在做实验之前要有一个大局观。这样才能用最少的空间做出最多的东西。也能节省材料,出现问题时,也有便于我们检查错误。 数码管 实验目的了解供阳极数码管的使用方法掌握数码管动态显示电路的连接方法练习动态显示程序的结构及调试方电路原理图实验原理单片机通过驱动电路给数码管中相应各段的发光二极管加正向电压,该段发光二极管就会被点亮。不同段的发光二极管加正向电压则亮,不加正向电压则灭,这样就可以通过各段的亮灭组合,来显示不

6、同的数字和字符了。本次使用采用P1口为段选,P0.70.2分别对应第一个数码管至第六个数码管。采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮(数位选择)。程序框图给P0口0的段选,选通第一个数码管(P0.7),延时,关闭第一个数码管开始给P0口1的段选,选通第二个数码管(P0.6),延时,关闭第二个数码管给P0口2的段选,选通第三个数码管(P0.5),延时,关闭第三个数码管给P0口3的段选,选通第四个数码管(P0.4),延时,关闭第四个数码管给P0口4的段选,选通第五个数码管(P

7、0.3),延时,关闭第五个数码管给P0口5的段选,选通第六个数码管(P0.2),延时,关闭第六个数码管实验心得本次实验的电路连接有点麻烦,在焊接过程中一分心就容易犯错,所以在做实验中我们必须要注意力高度集中,要不然我们就会得不偿失了。另外,在调试程序时,我们的数码管的显示不很稳定,当时我们没太在意。当老师检验时提出了这一问题,我们后来明白了,在实验中出现任何一丁点异常都要引起注意,把问题解决,这样我们做出的产品才会更有质量保证。矩阵键盘、时钟与蜂鸣器实验目的掌握4*4矩阵式键盘按键地设计方法掌握4*4矩阵键盘程序的识别原理掌握蜂鸣器的使用方法了解定时器的工作原理明白用键盘怎样去调试时间并在数码

8、管上显示电路图实验原理矩阵键盘与蜂鸣器为了减少键盘与单片机接口所占用的I/O口的数目,所以将键盘排列成行列矩阵形式,程序先判断有无键按下,当有键按下后,判断哪一个按键被按下,采用逐行扫描查询法。向行线输出全扫描字00H,把全部行线置为地电平,然后将列线的电平状态读入累加器A中,如果有一根列线电平被拉至低电平,从而使列输入不全为1。数码显示第二章已讲,这里不再累述。给P0.0一个信号0,使蜂鸣器导通发声。时钟使用6位数码管,数码管分别显示时、分、秒,用键盘进行时间的调整。选用定时器T0的第一模式工作 。先赋定时器的计数初值,赋给TL0, B0H,赋给TH0, 3CH,每次的定时时间为50微妙。开

9、放中断,启动定时器。中断二十次即可得到一秒的时间。每秒的延时达到,秒计数加一。当秒计数器计数满60,分计数加一,秒计时清零。当秒计数器计数满60,时计数加一,分计时清零。当时计数器计满24,全部清零。程序框图矩阵键盘与蜂鸣器程序框图开始判断是否有键按下给A以00H,进行行扫描,确定按键行号,保存行首键号然后扫描列,并将对应的列序号保存键号(值)=行首键号+列号延时去抖后再判断按键状态,确定有键按下输出显示,蜂鸣器发声时钟程序框图开始初始化并设定中断允许进入中断调时调用键盘程序调用时间程序,计时键扫描,确定键值输入键值,进行调时显示时间否是实验心得做完之前的两个实验,我们的信心也加强了,因为我们

10、在学习的过程有了小小的收获。可这次实验却让我们小小的郁闷了,感觉原理不是特别好懂,特别是时钟的程序,因为对单片机的内部工作原理算是懵懂,不过后来,我们还是通过查找资料,慢慢的完成了实验,可以说过程是艰难的,但是我们没有放弃,也许毅力的练成就是从一次一次坎坷中积聚的吧。液晶显示器(LCD1602)实验目的了解LCD液晶显示器的工作原理掌握LCD液晶显示器的编程控制方法电路图实验原理1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。程序框图是是否否开始是否忙调LC

11、D显示功能,清屏是否忙送显示调整对比度返回实验心得这次实验主要是让我们了解LCD,知道它作为外设怎么使用就行。虽然用处我们大家都知道,但是不能因为简单我们就不去认真学,毕竟学习是个积累的过程。片外RAM扩展实验目的掌握扩展片RAM的电路和程序设计方法理解扩展片RAM时读写和ALE等控制线的作用了解片外RAM情况下的单片机指令MOVX的执行进程学习心得电路图实验原理由于89C51单片机片内RAM仅有128字节,当系统需要较大容量RAM时,就需要片外扩展数据存储器RAM,最大可扩展64KB。扩展数据存储器空间地址,有P2口提供高8位地址,P0口分时提供8位地址和用作8位双向数据总线,由地址锁存器7

12、4H373控制。程序框图由74LS373传送到62256由62256传送回单片机中数码管上面显示数据结束数据传输到62256中开始实验心得这次实验主要是电路的连接,理解时序与有关芯片的原理之后,就相对来说比较简单了。所以在以后的实验中我们既要认真地对待硬件,又要深刻地理解有关软件,这样才能真正地做到灵活运用知识去解决其他问题。AD转换实验目的1、了解AD转换器的工作原理2、掌握AD转换与单片机的接口方法3、通过实验了解单片机如何进行数据采集电路图实验原理从滑动变阻器上得到模拟电压,将模拟电压信号输入ADC0809芯片,ADC0809将模拟量转化为数字量输入AT89C51,AT89C51将输入的

13、数字量处理,再送到数码管显示。程序框图定义引脚以及显示缓冲区单元清零缓冲区,给DPTR查表表头,ABC已经接地(选择通道0)启动AD转换,待转换结束则输出,缓存结果并关闭输出将AD转换的结果(二进制)转换为BCD码将结果送至显示缓冲区(从低位到高位,并且最高位点亮小数点)分别显示开始实验心得这个实验是持续时间最长的,就因为那一句话使整个实验延长了俩个多月,使我明白了做实验要了解你所用的器件的所有的功能才能使你掌控大局观,实验如此,生活亦是如此,要知己知彼才能百战不殆。DA转换实验目的了解DA转换的基本原理了解运算放大器的工作原理了解DA转换芯片的性能及编程方法掌握如何采集产生波形的样点电路图实

14、验原理使用D/A转换实现数字信号转换为模拟信号。用运算放大器UA741实现电压的放大。通过程序控制产生矩形波,三角波,正弦波。实验心得由于这次实验是需要把数字信号转换为模拟信号,而模拟信号的产生就需要学会如何采集生成波形的样点,初次接触这方面的知识,在理解上与解决问题上给我们带来了困扰,好在有学长的帮助以及我们的坚持,才做出了实验效果。通过这次实验,我们感触很大,因为学长在传递知识时很无私也很友好,也因为我们的毅力让我们选择了接着奋斗。我们相信,以后我们再遇到困难时,继续走下去的决心会加强,我们也会很乐意与人分享我们的知识的。附录流水灯程序ORG 0000HAJMP MAINORG 0070H

15、MAIN:MOVP1,#0FEHLCALLAXHMOVP1,#0FDHLCALLAXHMOVP1,#0FBHLCALLAXHMOVP1,#0F7HLCALLAXHMOVP1,#0EFHLCALLAXHMOVP1,#0DFHLCALLAXHMOVP1,#0BFHLCALLAXHMOVP1,#07FHLCALLAXHAJMP MAINAXH:MOV R7,#250 D1:MOV R6,#250 D2:DJNZ R6,D2 DJNZ R7,D1 RETEND数码管程序ORG 0000HAJMP MAINORG 0030HMAIN:MOVP1,#0C0HCLRP0.7LCALLAXHSETBP0.7M

16、OVP1,#0F9HCLRP0.6LCALLAXHSETBP0.6MOVP1,#0A4HCLRP0.5LCALLAXHSETBP0.5MOVP1,#0B0HCLRP0.4LCALLAXHSETBP0.4MOVP1,#99HCLRP0.3LCALLAXHSETBP0.3MOVP1,#92HCLRP0.2LCALLAXHSETBP0.2AJMP MAINAXH:MOVR7,#2D1:MOVR6,#30D2:DJNZR6,D2DJNZR7,D1END矩阵键盘程序ORG0000HAJMPKEYORG0030HKEY:MOVP2,#00HMOVA,P2ANLA,#0FHORLA,#0F0HCPLAJZK

17、EYLCALLDEL10msMOVP2,#0FHMOVA,P2ANLA,#0FHORLA,#0F0HCPLAJZKEYSKEY:MOVA,#00MOVR0,A /行值MOVR1,A /列值MOVR3,#7FH/暂存行SKEY2:MOVA,R3 /SKEY2判断行数MOVP2,ANOPNOPNOPMOVA,P2MOVR1,AANLA,#0FHORLA,#0F0HCPLAS123:JNZSKEY3INCR0SETBCMOVA,R3RRCAMOVR3,AMOVA,R0CJNEA,#04H,SKEY2EKEY:RETSKEY3:MOVA,R1 /SKEY3判断列值JNBACC.3,SKEY5JNBAC

18、C.2,SKEY6JNBACC.1,SKEY7JNBACC.0,SKEY8AJMPEKEYSKEY5:MOVA,#00HMOVR2,AAJMPDKEYSKEY6:MOVA,#01HMOVR2,AAJMPDKEYSKEY7:MOVA,#02HMOVR2,AAJMPDKEYSKEY8:MOVA,#03HMOVR2,AAJMPDKEYDKEY:MOVA,R0ACALLDECODEAJMPMAIN0DECODE:MOVA,R0MOVB,#04HMULABADDA,R2RETMAIN0:CLRP0.2CJNEA,#00H,MAIN1CLRP0.0MOVP1,#0C0HLCALLDEL50msSETBP0

19、.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN1:CJNEA,#01H,MAIN2CLRP0.0MOVP1,#0F9HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN2:CJNEA,#02H,MAIN3CLRP0.0MOVP1,#0A4HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHJMPKEYMAIN3:CJNEA,#03H,MAIN4CLRP0.0MOVP1,#0B0HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN4:CJNEA,#04

20、H,MAIN5CLRP0.0MOVP1,#99HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN5:CJNEA,#05H,MAIN6CLRP0.0MOVP1,#92HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN6:CJNEA,#06H,MAIN7CLRP0.0MOVP1,#82HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN7:CJNEA,#07H,MAIN8CLRP0.0MOVP1,#0F8HLCALLDEL50msSETBP0.0

21、SETBP0.2MOVP1,#0FFHAJMPKEYMAIN8:CJNEA,#08H,MAIN9CLRP0.0MOVP1,#80HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIN9:CJNEA,#09H,MAINACLRP0.0MOVP1,#90HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINA:CJNEA,#0AH,MAINBCLRP0.0MOVP1,#88HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINB:CJNEA,#0BH,MA

22、INCCLRP0.0MOVP1,#83HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINC:CJNEA,#0CH,MAINDCLRP0.0MOVP1,#0C6HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAIND:CJNEA,#0DH,MAINECLRP0.0MOVP1,#0A1HLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYMAINE:CJNEA,#0EH,MAINFCLRP0.0MOVP1,#86HLCALLDEL50msSETBP0.0SET

23、BP0.2MOVP1,#0FFHAJMPKEYMAINF:CJNEA,#0FH,CXFCLRP0.0MOVP1,#8EHLCALLDEL50msSETBP0.0SETBP0.2MOVP1,#0FFHAJMPKEYCXF:LJMPKEYDEL10ms:MOVR7,#10HTS1:MOVR6,#0FFHTS2:DJNZR6,TS2DJNZR7,TS1RETDEL50ms:MOVR7,#200TS3:MOVR6,#125TS4:DJNZR6,TS4DJNZR7,TS3RETEND时钟程序H_BIT EQU 20HM_BIT EQU 21HS_BIT EQU 22HHH EQU 23HMM EQU 2

24、4HSS EQU 25HHH_BIT EQU 26HMM_BIT EQU 27HSS_BIT EQU 28HORG 00HAJMP MAINORG 0BHAJMP TIME0ORG 30HMAIN: MOV SP,#60H MOV P2,#0FH MOV R5,#00H MOV H_BIT,#00H MOV M_BIT,#00H MOV S_BIT,#00H MOV HH_BIT,#00H MOV MM_BIT,#00H MOV SS_BIT,#00H MOV HH,#00H MOV MM,#00H MOV SS,#00H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,

25、#0B0H SETB EA SETB ET0 SETB TR0LOOP: LCALL EY LCALL KEY LJMP LOOPEY: LCALL LOOP1 MOV DPTR,#TAB MOV A,H_BIT MOVC A,A+DPTR MOV P1,A CLR P0.7 LCALL DIS1 SETB P0.7 MOV A,HH_BIT MOVC A,A+DPTR MOV P1,A CLR P0.6 LCALL DIS1 SETB P0.6 MOV A,M_BIT MOVC A,A+DPTR MOV P1,A CLR P0.5 LCALL DIS1 SETB P0.5 MOV A,MM_

26、BIT MOVC A,A+DPTR MOV P1,A CLR P0.4 LCALL DIS1 SETB P0.4 MOV A,S_BIT MOVC A,A+DPTR MOV P1,A CLR P0.3 LCALL DIS1 SETB P0.3 MOV A,SS_BIT MOVC A,A+DPTR MOV P1,A CLR P0.2 LCALL DIS1 SETB P0.2 RETLOOP1: MOV A,SS MOV B,#10 DIV AB MOV S_BIT,A MOV SS_BIT,B MOV A,MM MOV B,#10 DIV AB MOV M_BIT,A MOV MM_BIT,B

27、MOV A,HH MOV B,#10 DIV AB MOV H_BIT,A MOV HH_BIT,B RETTIME0: PUSH ACC PUSH PSW MOV TH0,#3CH MOV TL0,#0B0H INC R5 CJNE R5,#20,LOOP2 MOV R5,#00H INC SS MOV A,SS CJNE A,#60,LOOP2 MOV SS,#00H INC MM MOV A,MM CJNE A,#60,LOOP2 MOV MM,#00H INC HH MOV A,HH CJNE A,#24,LOOP2 MOV HH,#00HLOOP2: POP PSW POP ACC

28、RETIKEY: CLREA LCALLEY JNB P2.3,SS_KEYKEY1: SETBEA RETSS_KEY: LCALL EY1 LCALL DIS1 JNB P2.3,SS_KEYSSA: LCALL EY1 LCALL S_KEY JNB P2.0,KEY3 LJMP SSAKEY3: LJMP KEY1S_KEY: JNB P2.2,S_ADDKEY JNB P2.1,S_DECKEY LCALL DIS1 JNB P2.3,MM_KEY RETS_ADDKEY: LCALLEY1 LCALL DIS1 JNB P2.2,S_ADDKEY INC SS MOV A,SS C

29、JNE A,#60,SS_KEY1 MOV SS,#00HSS_KEY1: LJMP SSAS_DECKEY: LCALLEY1 LCALL DIS1 JNB P2.1,S_DECKEY MOV A,SS CJNE A,#00,SS_KEY2 MOV SS,#60SS_KEY2: DEC SS LJMP SS_KEY1 MM_KEY: LCALL EY2 LCALL DIS1 JNB P2.3,MM_KEYMMA: LCALL EY2 LCALL M_KEY JNB P2.0,KEY4 LJMP MMAKEY4: LJMP KEY1M_KEY: JNB P2.2,M_ADDKEY JNB P2

30、.1,M_DECKEY LCALL DIS1 JNB P2.3,HH_KEY RETM_ADDKEY: LCALLEY2 LCALL DIS1 JNB P2.2,M_ADDKEY INC MM MOV A,MM CJNE A,#60,MM_KEY1 MOV MM,#00HMM_KEY1: LJMP MMAM_DECKEY: LCALLEY2 LCALL DIS1 JNB P2.1,M_DECKEY MOV A,MM CJNE A,#00,MM_KEY2 MOV MM,#60MM_KEY2: DEC MM LJMP MM_KEY1HH_KEY: LCALL EY3 LCALL DIS1 JNB

31、P2.3,HH_KEYHHA: LCALL EY3 LCALL H_KEY JNB P2.0,KEY5 LJMP HHAKEY5: LJMP KEY1H_KEY: JNB P2.2,H_ADDKEY JNB P2.1,H_DECKEY LCALL DIS1 JNB P2.1,SSB RETH_ADDKEY: LCALLEY3 LCALL DIS1 JNB P2.2,H_ADDKEY INC HH MOV A,HH CJNE A,#24,HH_KEY1 MOV HH,#00HHH_KEY1: LJMP HHAH_DECKEY: LCALL EY3 LCALL DIS1 JNB P2.1,H_DE

32、CKEY MOV A,HH CJNE A,#00,HH_KEY2 MOV HH,#24HH_KEY2: DEC HH LJMP HH_KEY1SSB: LJMP SS_KEYEY1: LCALL LOOP1 MOV DPTR,#TAB MOV A,S_BIT MOVC A,A+DPTR MOV P1,A CLR P0.3 LCALL DIS1 SETB P0.3 MOV A,SS_BIT MOVC A,A+DPTR MOV P1,A CLR P0.2 LCALL DIS1 SETB P0.2 RETEY2: LCALL LOOP1 MOV DPTR,#TAB MOV A,M_BIT MOVC

33、A,A+DPTR MOV P1,A CLR P0.5 LCALL DIS1 SETB P0.5 MOV A,MM_BIT MOVC A,A+DPTR MOV P1,A CLR P0.4 LCALL DIS1 SETB P0.4 RETEY3: LCALL LOOP1 MOV DPTR,#TAB MOV A,H_BIT MOVC A,A+DPTR MOV P1,A CLR P0.7 LCALL DIS1 SETB P0.7 MOV A,HH_BIT MOVC A,A+DPTR MOV P1,A CLR P0.6 LCALL DIS1 SETB P0.6 RETDIS1: MOV R6,#20 D

34、JNZ R6,$ RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND液晶LCD1602程序ORG0000HAJMPMAINORG000BHAJMPTIMEORG0100H MAIN:MOVTMOD,#00H MOVTL0,#00H MOVTH0,#00H SETBEA SETBET0 SETBTR0 MOV50H,#32H MOVSP,#60H ACALLMOSHISHEZHI ACALLLCDQP MOVA,#80H ACALLLCDXZL MOVDPTR,#TAB1 ACALLLOOP4 MOVA,#0C0H ACALLLC

35、DXZL MOVDPTR,#TAB2 ACALLLOOP4 LOOP:AJMPLOOP TIME:MOVTL0,#00H MOVTH0,#00H DJNZ50H,TIME0 MOV50H,#32H TIME0:RETI MOSHISHEZHI:MOVA,#38HLCALLLCDXZL MOVA,#0EH LCALLLCDXZL MOVA,#06H LCALLLCDXZL RET LOOP2:PUSHAcc LOOP3:CLRP2.6 SETBP2.7 CLRP2.5 SETBP2.5 MOVA,P1 CLRP2.5 JBAcc.7,LOOP3 POPAcc ACALLDELAY RET LCD

36、XZL:ACALLLOOP2 CLRP2.5 CLRP2.6 CLRP2.7 SETBP2.5 MOVP1,A CLRP2.5 RET LCDDXX:ACALLLOOP2 CLRP2.5 SETBP2.6 CLRP2.7 SETBP2.5 MOVP1,A CLRP2.5 RET DELAY:MOV52H,#05H DELAY1:MOV51H,#0F8HDJNZ51H,$ DJNZ52H,DELAY1 RET LCDQP:MOVA,#01H ACALLLCDXZL RET LOOP4:PUSHAcc LOOP5:CLRA MOVCA,A+DPTR JZLOOP6 ACALLLCDDXX INCD

37、PTR AJMPLOOP5 LOOP6:POPAcc RETTAB1:DB Gue xue ling,00HTAB2:DB Zhong qiang,00HEND片外RAM程序WR1BITP3.6RD1BITP3.7ORG0000HAJMPMAINORG0030HMAIN:LCALLWRITELCALLREADLCALLSYWRITE:SETBWR1MOVA,#0F8HMOVXR1,ACLRWR1SETBWR1RETREAD:SETBRD1MOVXA,R1CLRRD1SETBRD1RETSY:MOVP1,ACLRP0.2RETENDAD转换程序#include sbit ALE= P36;sbi

38、t ST= P06;sbit OE= P07;sbit EOC= P37;sbit MM1= P05;sbit MM2= P04;sbit MM3= P03;sbit MM4= P02;#define SEGOFF0 xFFvoid delay(int z);void main()unsigned int dat= 0;unsigned inttemp= 0;unsigned inttemp1= 0;unsigned char smg0= 0;unsigned char smg1= 0;unsigned char smg2= 0;unsigned char smg3= 0;unsigned i

39、nt i= 0; bitflag= 0;unsigned char dig10 = 0 xC0 ,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90; unsigned char dig110 = 0 x40 ,0 x79,0 x24,0 x30,0 x19,0 x12,0 x02,0 x78,0 x00,0 x10; while(1)/ 数码管0 显示dig0P1= SEGOFF;MM1= 0;P1= dig1smg0;delay(3);MM1= 1;/ 数码管1 显示dig1 P1= SEGOFF;MM2= 0;P1= digsmg1

40、;delay(2);MM2= 1;/ 数码管2 显示dig2P1= SEGOFF; MM3= 0;P1= digsmg2;delay(1);MM3= 1;/ 数码管3 显示dig3P1= SEGOFF; MM4= 0;P1= digsmg3;delay(0);MM4= 1;i = i + 1;/ 从AD0809中读取采集得到的数据if(i10)ST= 0;ALE= 0;OE= 0;/ 设置ALEALE= 1;delay(2);ALE= 0;/ 开始ST= 1;delay(2);ST= 0;/ 保证数据转换成功(ADC)while(!flag)flag= EOC;/ 打开输出允许OE= 1;/

41、读出数据dat= P2;OE= 0;temp1= dat*100/256;temp= temp1*40; smg0= temp/1000;smg1= temp%1000/100;smg2= temp%100/10;smg3= temp%10; i= 0;void delay(int z)int x,y;for(x=60;x0;x-)for(y=z;y0;y-);DA转换程序方波ORG0000HAJMPMAINORG0030HMAIN:SETBP3.4SETBP3.5MOVP1,#0FFHCLRP3.4CLRP3.5LCALLDELAYSETBP3.4SETBP3.5MOVP1,#00HCLRP

42、3.4CLRP3.5LCALLDELAYSETBP3.4SETBP3.5AJMPMAINDELAY:MOVR7,#200DEL1:MOVR6,#125 DEL2:DJNZR6,DEL2 DJNZR7,DEL1 RET END三角波ORG0000HAJMPMAINORG0030HMAIN:MOVA,#0FFHMAIN1:SETBP3.4SETBP3.5MOVP1,ACLRP3.4CLRP3.5DECACJNEA,#0H,MAIN1MAIN2:INCASETBP3.4SETBP3.5MOVP1,ACLRP3.4CLRP3.5CJNEA,#0FFH,MAIN2AJMPMAINEND正弦波ORG0000H JMPMAIN ORG0030HMAIN:MOV R1,#0FFHMOV DPTR,#TABMOV R2,#80HMAIN1:SETBP3.4SETBP3.5MOVA,R2MOVCA,A+DPTRMOVP1,AMOV A,R2INCAMOVR2,A CLRP3.4CLRP3.5DJNZR1,MAIN1SJMPMAINTAB:DB80H,83H,

温馨提示

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

评论

0/150

提交评论