中山大学左明老师单片机实验七共20页
- 格式:docx
- 大小:208.47 KB
- 文档页数:20
单片机实验报告孙洪悦2011实验1:汇编程序实验1自我完成实验(1)实验内容将片内RAM 30H 单元中的8 位二进制数转换成10 进制数。
希望转换后的结果保存于31H和32H,31H 低 4 位存放个位,高 4 位存放十位,32H 低 4 位存放百位,高 4 位为0自我完成实验程序ORG 0000H!AJMP MAINORG 0030HMAIN:MOV SP,#62H ;MOV 30H,#0AFH ;先将30H写上100MOV R0,#32H ;将百位地址送R0MOV A,30H ;这句写错了,应该是将30H的内容送给A,而不是30H,我误写成了#30HMOV B,#64H ;除数为100DIV AB ;AB相除…MOV @R0,A ;将百位的数送给32H地址MOV A,B ;将余数送给AMOV B,#0AH ;将10送BDIV AB ;AB相除SWAP A ;高低四位交换DEC R0 ;R0减1 到31HMOV @R0,A ;将十位送31H的高四位MOV A,BANL A,#0FHORL 31H,A ;31高低四位分别存十和百位~SJMP $END总结与提高:本程序用了一个小算法,一个三位数数X除以100,商a为百位,余数为:X-100*a 再用此余数除10,商为十位,余数为个位。
实验2:汇编程序实验2自我完成实验(1)实验内容:将片内RAM 30H 开始的32 个单元中分布着随机的有符号8 位二进制数,请按从小到大的顺序进行排序,排序后的数据仍然保存到30H 开始的32 个单元中(低地址存放小数据)。
程序及其注释②自我完成实验程序第一种排序方法:ORG 0000HAJMP MAINORG 0090H:MAIN:MOV SP,#62H ;MOV A,#0HMOV R1,#30HMOV R7,#20HMOV DPTR,#TABLEMOV R0,#1FH ;执行31次LOOP1:MOVC A,@A+DPTR}MOV @R1,AINC R1INC DPTRMOV A,#0HDJNZ R7,LOOP1 ;执行32次循环,在30-4F写表格数据LOOP2: MOV R1,#30H ;将起始地址给R1MOV A,R0 ;R0为执行31次MOV R2,A ;把进行一次冒泡的次数存到R2中|LOOP3:CLR C ;清CMOV A,@R1 ;;比较开始,取第一个数MOV R3,A ; 腾出累加器INC R1 ;指向下一个地址SUBB A,@R1 ;取后一个数,并与前一个数相减,看是否有CY位溢出,溢出则说明前一个数小,要换位JC LOOP4 ;前一个数小的情况下,两个数交换位置,否则,继续执行MOV A,R3 ;把后一个数存到累加器下XCH A,@R1 ;累加器的数与R1指向的数交换位置,即;前一个数和后一个数交【DEC R1 ;R1自减,准备将后面的数存到前面MOV @R1,A ;将后面的数存到前面INC R1 ;R1自增,准备下次转换,以上五行为交换LOOP4: DJNZ R2,LOOP3 ;R2自减,为下次冒泡准备DJNZ R0,LOOP2 ;跳回去进行下一轮冒泡SJMP $·ORG 30HTABLE: DB 1,3,9,2,17,4,11,6DB 5,20,100,64,21,14,79,35DB 92,7,91,23,65,16,13,18DB 18,73,65,101,27,19,62,69END第二种排序方法;!ORG 0000HAJMP MAINORG 0090HMAIN:MOV SP,#62H ;MOV A,#0HMOV R1,#30HMOV R7,#20HMOV DPTR,#TABLEMOV R0,#1FH ;执行31次(LOOP1:MOVC A,@A+DPTRMOV @R1,AINC R1INC DPTRMOV A,#0HDJNZ R7,LOOP1 ;执行32次循环,在30-4F写表格数据…LOOP2: MOV R1,#30H ;将起始地址给R1MOV A,R0 ;R0为执行31次MOV R2,A ;把进行一次冒泡的次数存到R2中MOV R4,#30H ;R4存的是最大数的位置LOOP3:CLR C ;清CMOV A,@R1 ;;比较开始,取第一个数MOV R3,A ; 腾出累加器INC R1 ;指向下一个地址、MOV A,@R4SUBB A,@R1 ;取后一个数,并与前一个数相减,看是否有CY位溢出,溢出则说明前一个数小,要换位JC LOOP4 ;前一个数小的情况下,两个数交换位置,否则,继续执行;MOV A,R3 ;把后一个数存到累加器下;XCH A,@R1 ;累加器的数与R1指向的数交换位置,即;前一个数和后一个数交;DEC R1 ;R1自减,准备将后面的数存到前面;MOV @R1,A ;将后面的数存到前面;INC R1 ;R1自增,准备下次转换,以上五行为交换>DJNZ R2,LOOP3 ;R2自减,为下次冒泡准备LOOP4:MOV A,R1 ;MOV R4,ADJNZ R2,LOOP3DJNZ R0,LOOP2 ;跳回去进行下一轮冒泡SJMP $#ORG 30HTABLE: DB 1,3,9,2,17,4,11,6DB 5,20,100,64,21,14,79,35DB 92,7,91,23,65,16,13,18DB 18,73,65,101,27,19,62,69END.总结与提高:所谓冒泡法,有两种理解方式:1.相邻的两个数比较,大的数放后一个位置,直到一轮循环后,最后一个数为此轮遍历的最大的数。
中山大学物理科学与工程技术学院微电子科学与工程专业本科培养方案一、培养目标以培养适合国家建设需要、德智体全面发展的人才为宗旨,培养具有良好微电子学理论基础和实验素养、勇于创新、适应能力强、基础研究和应用研究得到较全面训练的微电子学专门人才。
学生通过学习半导体物理和半导体器件物理等基本理论知识,可开展微电子器件、纳微加工工艺和制造、集成电路设计、电子系统与集成、单片机的开发与应用、电子与通信、自动化等IT行业的科研、科技开发及信息化管理工作。
学生毕业后可以从事微电子技术领域相关的研究、设计、开发、制造、应用和管理工作,也可以继续攻读微电子学与固体电子学、集成电路工程、电子与通信、电子科学与技术等方向的硕士和博士学位。
二、培养规格和要求本专业为学制四年大学本科专业。
要求学生完成所有必修课、专业限定选修课程和公共选修课,并符合下列条件:1.拥护中国共产党的领导,坚持四项基本原则,遵纪守法;努力学习马列主义、毛泽东思想和邓小平建设中国特色社会主义的理论;热爱社会主义祖国,热心为社会服务,有良好的道德品质和文明风尚;2.掌握完善的基础理论,基本知识和基本技能,了解所学专业的新发展、新成就,具有较强的汲取新知识、分析问题和解决问题的能力,具有初步的科研能力,能运用一种外国语以上较熟练阅读所学专业书刊,并具备一定的听说读写能力;3.有良好的综合素质和健康的体魄。
三、授予学位与修业年限按要求完成学业者授予工学学士学位。
修业年限:4年。
四、毕业总学分及课内总学时人文基础与经典阅读、就业指导、和毕业论文等的非课内学时。
教学生产实习一周,毕业论文十二周。
五、专业核心课程:按培养要求列出专业课程10门左右。
六、专业特色课程:如“双语教学课程”、“精品课程”等。
七、专业课程设置及教学进程计划表(见附表)1包含政治理论社会实践活动2个学分。
2包括技能18天,理论36学时。
目录第一章模块化单片机实验仪的结构 (1)1.1主板结构 (1)1.2主板扩展电路接口的组成 (1)第二章 TMD-2软件介绍 (2)2.1软件运行的2种方式 (2)2.2 Keil仿真器使用说明 (2)2.3 在系统编程软件(Flash Magic)的使用 (8)2.4 串口调试助手的使用 (11)第三章 TMD-2实验 (13)实验一 I/O口实验 (13)实验二定时器实验 (16)实验三外部中断实验 (18)实验四单片机与PC机串口通讯实验 (20)第一章模块化单片机实验仪的结构1.1主板结构TMD-2模块化单片机实验仪主板的组成:CPU:AT89C51(或 89C51RD2HXX) 工作频率:6MHzRAM:62256(32K×8)地址范围:0000H~7FFFHI/0口(输入输出设备): 8 个拨动开关,8 个 LED 灯数据显示设备: 1个共阴极数码管,1个两行16字符的液晶显示器逻辑笔输出时钟频率(YCLK):1MHz系统电源:+5V/2A,+12V/0.5A,-12V/0.5A主板结构框图如图1.1所示:图1.1 TMD-2模块化单片机实验仪主板示意图1.2主板扩展电路接口的组成图1.2器件片选地址分配图第二章 TMD-2软件介绍2.1软件运行的2种方式1.Keil仿真器调试法2.在系统编程法2.2 Keil仿真器使用说明一、建立 keil 项目:打开 keil 软件,如图2.1所示。
图2.1 keil软件界面二、鼠标单击创建新项目下拉菜单 Project/New Project…,如图2.2所示。
图2.2 keil下创建新项目选择新建项目的名字和保存路径,如图2.3所示。
图2.3 保存项目文件三、选择单片机型号(如图2.4所示,根据单片机的生产厂商查找)。
图2.4 选择单片机型号四、系统询问是否加载标准启动代码(如图2.5所示),选择“否”。
图2.5 是否加载标准启动代码五、加入汇编语言源程序文件(xx.a51),建立 xx.a51 文件有两种方法:方法一(xx.a51文件己经存在):在 Source Group1 上单击鼠标右键,选择“Add Files to Group source Group1”,然后选择所要添加的文件,如图2.6所示。
教师备课教案本(实验课程)系别:电子工程系课程名称:单片机原理与应用教师姓名:张正明授课时间:2018-2019学年第1学期电子科技大学中山学院实验课程授课计划注:如授课时间适逢节假日冲突则顺延或另行安排。
填表日期:2008年 8月 3 日PUSH ACC; SP=? (62H)=?NOPPOP ACC; SP=? A=?MOV @R0,A; (30H)=?POP ACC; SP=? A=?MOV @R1,A; (40H)=?NOPSJMP $END③选择Project下的Rebuild all target files 对工程文件进行汇编和连接,如果出错,系统会提示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示没有错误,表明程序没有语法错误,可以进行动态调试了。
④选择Project下的Options for target ‘Target1’进行动态调试的参数设置,点击debug,再点击Use Simulator,最后点击完成。
⑤对程序进行动态调试,查看相关寄存器、内存和外部存储器的内容。
常用的工具条上的命令有开始/暂停动态调试,单步执行或,执行到光标处等。
查看存储器内容的方式是在存储区地址写上要查看的初始地址就可以了。
比如D:0000H,C:0000H,X:0000H。
将每行程序执行后的结果写到该行程序的注释部分。
2 编写一个数据填充和数据块搬移程序。
仿照实验内容和步骤1的过程,建立、编辑、汇编、连接和动态调试程序,查看和验证数据区的内容是否正确。
ORG 0000HLJMP MAINORG 0100HMAIN: MOV R0,#30H ; R0指向30H单元MOV R2,#16 ; R2作循环计数器NEXT1: MOV @R0,#'*'; 填充当前单元INC R0 ; 指针下移一个单元DJNZ R2,NEXT1 ; 未填完16个单元,继续;以下程序将30H开始的16个字节内容送到100H开始的外部存储器中MOV R1,#30HMOV DPTR,#0100HMOV R3,#10HNEXT2: MOV A,@R1MOVX @DPTR,AINC R1INC DPTRDJNZ R3,NEXT2SJMP $END3 编写一个多字节的算术运算程序。
目录摘要 (1)第一章元件介绍 (1)1.1贴片元件 (1)1.1.1贴片电阻 (1)1.2.2贴片电容 (1)1.2二极管 (2)1.2.1稳压二极管 (2)1.2.2发光二极管 (2)1.2.3七段数码管 (3)1.3三极管 (4)1.4晶振 (4)1.4.1 32768 (5)1.4.2 单片机晶振 (5)1.5集成电路 (6)1.5.1 89C51 (6)1.5.2 MAX485 (9)1.5.3 74HC573 (9)1.6 其他元件 (10)1.6.1 LM317 (10)1.6.2 可调电位器 (10)1.6.3 蜂鸣器 (10)第二章焊接元器件 (11)2.1电子焊接 (11)2.2焊锡 (11)2.2.1含铅焊锡 (11)2.2.2无铅焊锡 (11)2.3贴片元件的焊接 (12)2.4二极管的焊接 (12)2.5三极管的焊接 (12)2.6集成电路插座焊接 (13)第三章调试 (14)3.1电源 (14)3.2二极管调试 (14)3.3蜂鸣器调试 (14)3.4单片机芯片调试 (14)第四章实验总结 (16)第五章参考文献 (16)摘要本次试验是对于单片机的最小系统的实验,虽然说这是单片机的最小系统,但基本上能完成单片机的功能,数据的现实以及对P口的控制,总体而言,最小系统达到单片机的要求。
第一章元件介绍1.1贴片元件1.1.1贴片电阻贴片电阻(见图(1))是片式固定电阻器,从Chip Fixed Resistor直接翻译过来的,俗称贴片电阻(SMD Resistor),是金属玻璃铀电阻器中的一种。
是将金属粉和玻璃铀粉混合,采用丝网印刷法印在基板上制成的电阻器。
贴片电阻的两端直接与印刷电路板焊接。
省去了丝状的引线,减小了体积。
它最大的优点就在这里。
普通元件丝状的引线,还要在印刷电路板上穿孔,波峰焊。
采用贴片元件后,组装密度高、电子产品体积小、重量轻,贴片元件的体积和重量只有传统插装元件的1/10左右,一般采用SMT之后,电子产品体积缩小40%~60%,重量减轻60%~80%。
微控制器技术实验报告专业班级:自动化0903 学号: 0909091123 姓名:何久帅指导老师:李志明目录一、实验目的及要求 (1)二、实验基本内容 (1)三、实验设备 (3)四、实验设计思想和结果分析 (6)4.1清零程序与拆字程序设计 (6)4.2拼字程序与数据传送程序 (7)4.3 排序程序与散转程序 (10)4.4 数字量输入输出实验 (15)4.5定时器/计数器实验 (17)4.6 A/D、D/A转换实验 (20)4.7 串行通讯实验 (25)五、结束语 (29)一、实验目的及要求:1.熟练掌握Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2.熟练使用SST89C554RC单片机核心板及I/O扩展实验系统;3.熟练掌握在Keil C51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试;4.完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;二、基本实验内容(SST89E554RC单片机实现)实验一清零程序与拆字程序设计根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。
实验二拼字程序与数据传送程序设计汇编语言完成实验指导书P24思考题3、4题的基础实验项目。
实验三排序程序与散转程序设计汇编语言完成实验指导书P24思考题5、6题的基础实验项目。
实验四数字量输入输出实验基本部分:阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目(P36),。
提高部分:(任选一题)题目一:LED交通灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。
题目二:LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==单片机实验报告 (6000字)单片机实验报告第一次实验:编程与环境学习[实验目的]1) 熟悉μ’nSP? IDE环境及在该环境下用汇编语言或C语言编写应用程序;2) 熟悉简单的μ’nSP?汇编语言指令。
[实验设备]装有WINDOWS系统和μ’nSP? IDE仿真环境的PC机一台。
[实验内容[1)用汇编实现1到200中的偶数的累加计算;2)用汇编语言编写一个排序程序。
.IRAMArray .DW 5,89,40,12,55,32,18,46,77,21[实验步骤]1)将μ’nSP? IDE打开后,建立一个新工程;2)在该项目的源文件夹(SOURCE FILES)下建立一个新的汇编语言文件;3)编写汇编代码;4)编译程序软件调试观察并跟踪其结果。
[实验准备]实验中的两个程序:(1) .RAM.CODE.VAR Sum.PUBLIC _main_main:R1=0x0002R2=0x0000Loop:R2+=R1R1+=2CMP R1,200JNA Loop[Sum]=R2Loop1: nopJMP Loop1.END(2).IRAMARRAY: .DW 5,89,40,12,55,32,18,46,77,21 .VAR flag.CODE.PUBLIC _main_main:BP=arrayR1=0x0009R4=0x0000[flag]=R4Loop:R3=[BP]CMP R3,[BP+1]JB NEXTR2=[BP+1][BP]=R2[BP+1]=R3R3=0x0001[flag]=R3NEXT:BP=BP+1R1-=1JNZ LoopR4=[flag]JNZ _mainLoop1:NOPJMP Loop1[实验中遇到的问题与解决措施]编写程序中出现了一些逻辑错误,错将R1置为0x000A,改正后得到了正确结果。
单片机技术与应用实验指导书王俊宏周洪波暨仲明编杭州电子科技大学自动化学院二零零五年十月目录第一章系统安装和启动 (1)第二章调试软件LCA51界面介绍 (2)1.主界面 (2)2.菜单介绍................................................................................................................ 错误!未定义书签。
3.热键表. (11)第三章LCA51软件调试 (12)1.调试界面 (12)2.调试主要方法和技巧 (13)实验一扩展存储器读写实验 (15)实验二P1口、P3口输入、输出实验 (17)实验三定时器实验 (20)实验四外部中断实验(急救车与交通灯) (22)实验五8279显示实验................................................................................................. 错误!未定义书签。
实验六8255扫描键盘、显示实验 (24)实验七D/A和A/D转换实验 (27)实验八步进电机控制实验 (31)实验九压力测量显示实验.......................................................................................... 错误!未定义书签。
实验十单片机串行口与PC机通讯实验 (34)第一章系统安装和启动1.实验系统工作在51串口实验/仿真方式(1)实验台上开关选择51(2)打开电源,在PC机上打开LCA51软件,运行实验程序。
2.实验系统工作在MCS51方式下开关初始状态●XB、XB1 : 短路套全插上。
●XB2,XB5 : 短路套向上插(SPEAK端),第10模块处于放音功能。
●第○4模块中:多位开关K3拨向最左(温度控制)端,做温度控制实验用。
单片机实验报告范文
一、实验目的
通过本次实验,掌握单片机的基本原理与编程方法,熟悉单片机的开发环境,技能,了解单片机的必要电路原理。
二、实验器材和软件
器材:STC89C52单片机板、开发环境、PC机、线路板、电源、按钮开关、LED灯、蜂鸣器等。
软件:Keil uVision4编译器。
三、实验内容
1.点亮一个LED灯
将LED灯连接到单片机的1号引脚,通过编写程序点亮LED灯。
2.使用按钮开关控制LED灯
将按钮开关连接到单片机的2号引脚,编写程序使按钮开关控制LED 灯的亮灭。
3.通过串口将数据发送给PC机
设置单片机与PC机进行串口通信,通过编写程序将单片机中的数据发送给PC机。
四、实验步骤
1.按照实验器材和软件的要求搭建实验电路。
五、实验结果与分析
实验中点亮一个LED灯、使用按钮开关控制LED灯、通过串口将数据发送给PC机的实验均取得了预期的结果,显示出了单片机的基本原理与编程方法。
六、实验总结
通过这次实验,我深入了解了单片机的工作原理和编程方法,掌握了单片机的开发环境和技能,学会了使用单片机将数据发送到PC机,并能通过编程控制LED灯的亮灭。
实验过程中也遇到了一些问题,如电路连接不正确、程序代码错误等,但通过仔细排查和调试,最终解决了问题。
这次实验使我对单片机的实际应用有了更深的认识,也为今后进一步学习和应用提供了基础。
参考资料:
无。
实验七 D/A与A/D转换一、实验目的1、学习D/A转换的基本原理和D/A转换芯片DAC0832的性能及篇程方法2、了解单片机系统中扩展D/A转换芯片的基本方法3、学习A/D芯片ADC0809的转换性能及编程方法4、了解A/D芯片与写单片机的接口方法5、通过实验掌握单片机进行数据采集的方法二、实验说明1、D/A转换是把数字量转换成模拟量的变换。
从D/A输出的是模拟信号。
实验程序一是通过在D/A的输入端送入有一定规律的数字量,在输出端产生锯齿波、三角波、正弦波的波形,通过示波器观察来直观地了解D/A的转换功能。
要把一个数据通过0832输出,要经过两次锁存。
典型的程序如下:MOV DPTR,#PORTMOV A,#DATAMOVX @DPTR,AINC DPTRMOVX @DPTR,A2、A/D转换是把模拟量转换成数字量的变换。
启动A/D采样转换只需要两条指令:MOV DPTR,#PORTMOVX @DPTR,A三、实验内容内容一:利用DAC0832编程产生锯齿波、三角波、正弦波。
三种波形轮流显示一、连线方法:0832的CS0832接CS0。
输出DAOUT接示波器探头,示波器探头地线接实验板地线二、代码;D61.ASMORG 4000HLJMP MAINORG 401BHLJMP DELAYPORT EQU 0CFA0HORG 4100HMAIN:MOV TMOD,#10HSETB EASETB ET1MOV TL1,#0AFHMOV TH1,#3CHSETB TR1DISP:MOV R1,#50HLCALL PRG1MOV R1,#50HLCALL PRG2MOV R1,#50HLCALL PRG3LJMP DISP DELAY:CLR TR1MOV TL1,#0AFHMOV TH1,#3CHDEC R1SETB TR1RETIPRG1:MOV A,#00HLOOP:MOV DPTR,#PORT MOVX @DPTR,AINC DPTRMOVX @DPTR,AINC ACJNE R1,#00H,LOOPRETPRG2:MOV A,#00HLP1:MOV DPTR,#PORT MOVX @DPTR,A INC DPTRMOVX @DPTR,A INC ACJNE A,#0FFH,LP1 MOV R2,ALP2:MOV DPTR,#PORT MOV A,R2MOVX @DPTR,A INC DPTRMOVX @DPTR,A DJNZ R2,LP2 CJNE R1,#00H,LP1 RETPRG3:MOV R2,#02HMOV R4,#0FFHSJMP SUBDATALP3:MOV DPTR,#PORTMOVX @DPTR,AINC DPTRMOVX @DPTR,AINC R2DJNZ R4,SUBDATAMOV R4,#0FFHMOV R2,#02HCJNE R1,#00H,SUBDATARETSUBDATA:MOV A,R2MOVC A,@A+PCSJMP LP3DATA0:DB 80H,83H,86H,89H,8DH,90H,93H,96HDB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09HDB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15HDB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25HDB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38HDB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EHDB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66HDB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HEND三、现象及分析接通电路后示波器上依次显示锯齿波、三角波、正弦波图形如下:4.998V4.998V4.998V2.508V内容二:用中断方法来读取AN0的输入模拟电压,通过P1口输出到LED 上显示。
一、接线方法:1、0809的片选信号CS0809接CS02、电位器的输出信号AN0接ADC0809的ADIN03、EOC接CPU的INT04、P10-P1.7连L1-L8二、代码分析;D62.ASMORG 4000HLJMP MAINORG 4003H ;外中断0的中断向量LJMP INTX0PORT EQU 0CFA0HORG 4050HMAIN:MOV R0,#50H ;存数RAM的地址MOV P3,#0FFHSETB EASETB EX0SETB IT0START:MOV DPTR,#PORTMOV A, #0MOVX @DPTR,A ;启动ADC0809开始转换ACALL DELSJMP STARTINTX0:CLR EA ;中断服务程序MOVX A,@DPTR ;取出转换的数据CPL AMOV P1,AMOV @R0,A ;存储数据SETB EAEXIT:RETI ;从中断返回DEL:MOV R7,#15DEL1:MOV R6,#130 ;延时一段时间DEL2:MOV R5,#200DEL3:DJNZ R5,DEL3DJNZ R6,DEL2DJNZ R7,DEL1RETEND三、现象及分析通过旋转电位器,可以看到LED灯的亮灭不断改变,若将其转换为十进制,则抽取了部分数据如下表四、结论通过比对上核定有格,可以看出A/D测出的电压基本与实际电压相符内容三:用EOC电位法作上述测量一、前期连接:1、P1口的P1.0~P1.5与数码管的输入:LED1~LED6相连;2、74LS273的00~07与LEDA~LEDDP相连,片选信号与CS1相连3、0809的片选信号CS0809接CS0,EOC接CPU的P3.0二、代码分析PORTAD EQU 0CFA0HPORT EQU 0CFA8HORG 4000HMOV 30H,#01H ;选把30~36H处存好数值,#10H表示数码管MOV 31H,#01H ; 不显示MOV 32H,#10HMOV 33H,#10HMOV 34H,#10HMOV 35H,#10HMOV 36H,#10HMOV B,#36HMOV R0,#30HMOV P3,#0FFHMAIN:;************************************************************** ****显示模块开始PUSH ACCPUSH PSWANL PSW,#0C7HORL PSW,#10HDISPLAY: ;显示模块MOV B,#36HNOPDS1:MOV R0,B ;R0赋予要显示的最后一个数据地址MOV R4,#60H ;扫描需要显示60次MOV R2,#20H ;位码的初值DS2:MOV A,@R0 ;A里面暂存RAM里的数据ACALL TABLE ;取段码MOV DPTR,#PORT ;送段码的入口地址MOVX @DPTR,A ;送段码MOV A,R2 ;读位码CPL A ;取反MOV P1,A ;送位码MOV R3,#0FFH ;适当延时DEL:NOPDJNZ R3,DEL ;判断地是否结束CLR C ;清CMOV A,R2RRC AMOV R2,A ;右移位码DEC R0MOV A,R0CJNE A,#30H,DS2 ;若没有显示到足够的码,则继续扫描MOV R0,B ;重新赋给R0要显示的最后一个数的地址MOV R2,#20H ;重新赋给R2显示的位码DJNZ R4,DS2 ;扫描60次完毕MOV R4,#60HJMP NONUM ;显示程序完,准备退出显示程序TABLE:INC A ;算上RET一个字节MOVC A,@A+PCRETDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H, 71H,00HNONUM:POP PSWPOP ACC;************************************************************** **显示模块结束START:MOV DPTR,#PORTADMOV A, #0MOVX @DPTR,A ;启动AD0809开始转换LOP:MOV A,P3 ;读取P3口的值CJNE A,#0FFH,LOP ;如果没有转换完,则继续等待MOVX A,@DPTR ;取出转换的数据MOV B,#10H ;准备把高四位与低四位分开DIV AB ;A存储低四位,B存储高四位MOV 32H,A ;低四位存入32H中MOV 31H,B ;高四位存入31H中JMP MAIN ;跳回程序开始,准备显示31H与32H 中的值END三、现象及分析当旋转电位器时,数码管上显示ADC所读到的数,其中最大为FE,最小为00,如果将ADC所读取的数放到LED上显示,可以明显感觉到转换的速度要比内容二中用中断法要快很多四、结论用中断查询法可以使程序更加简洁,在程序不大时,其响应的速度还比中断法更快。