中山大学左明老师单片机实验七共20页
单片机实验讲义22页PPT
1、合法而稳定的权力在使用得当时很 少遇到 抵抗。 ——塞 ·约翰 逊 2、权力会使人渐渐失去温厚善良的美 德。— —伯克
3、最大限度地行使权力总是令人反感 ;权力 不易确 定之处 始终存 在着危 险。— —塞·约翰逊 4、权力会奴化一切。——塔西佗
5、虽然权力是一头固执的熊,可是金 子可以 拉着它 的鼻子 走。— —莎士 比
谢谢!
Байду номын сангаас
61、奢侈是舒适的,否则就不是奢侈 。——CocoCha nel 62、少而好学,如日出之阳;壮而好学 ,如日 中之光 ;志而 好学, 如炳烛 之光。 ——刘 向 63、三军可夺帅也,匹夫不可夺志也。 ——孔 丘 64、人生就是学校。在那里,与其说好 的教师 是幸福 ,不如 说好的 教师是 不幸。 ——海 贝尔 65、接受挑战,就可以享受胜利的喜悦 。——杰纳勒 尔·乔治·S·巴顿
山大单片机实验
单片机实验报告孙洪悦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学时。
单片机实验(DOC)
目录第一章模块化单片机实验仪的结构 (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%。
dd中南大学单片机实验报告..
微控制器技术实验报告专业班级:自动化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灯左循环、右循环、间隔闪烁功能。
【最新推荐】单片机实验报告 (6000字)-精选word文档 (22页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为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灯的亮灭。
实验过程中也遇到了一些问题,如电路连接不正确、程序代码错误等,但通过仔细排查和调试,最终解决了问题。
这次实验使我对单片机的实际应用有了更深的认识,也为今后进一步学习和应用提供了基础。
参考资料:
无。
中山大学数字电路实验报告7译码显示电路
学院: 数据科学与计算机学院专业:软件工程XX:******__*********日期:2018年5月21日实验题目:译码显示电路预习报告一.译码显示原理1.数码显示译码器二、预习实验1.按表(二)测试74LS194、简单制作四节拍发生器按照书上图(五)连接电路图,检查是否符合节拍发生器0111→1011→1101→1110 的循环。
用proteus制作如下电路:SR接高电平,D0置0,D1D2D3置1,观察波形。
逻辑分析仪波形:符合节拍发生器0111→1011→1101→1110 的循环。
实验报告一、实验仪器与器件1.数字电路实验箱、示波器、数字万用表。
2.器件:74LS48, 74LS194, 74LS73, 74LS00二、正式实验1.内容3:数码管按照节拍顺序依次在对应数位上显示当前所设数字。
原理(1)实验箱上数码管是共阴极,其位选通端DIG1~DIG8均为低电平有效,所以可直接将节拍发生器的输出接入即可,不用再加非门。
(2)实验箱上74LS48已与数码管连好,无须再连线。
74LS48只引出A3、A2、A1、A0四个引脚分别依次对应两个四位数码管的P13、P12、P11、P10和P23、P22、P21、P20作为数码管BCD码输入端。
实验箱7段数码管已具备伪码灭灯功能,因此电路设计不涉与伪码灭灯。
用proteus仿真:数码管依次显示0-9的bcd码:按照顺序显示。
实验箱测试:图片为20kHz,由于视觉效应看起来四个同时显示。
实验箱上只显示数字“0”。
2.显示学号本人学号为17343009,由于有数字9,所以用到16进制计数器。
设计:用74LS197制作十六进制输出,同时接到74LS48和2个74LS138上,74LS138选择该数字对应的数码管引脚,如:0000接到6和7,0001接到1,依此类推。
用proteus仿真:成功显示学号。
3.点阵图设计:实现从左上角到右下角这条线上的灯都不亮。
单片机实训报告单灯闪烁
一、实训目的1. 熟悉单片机的基本结构和原理;2. 掌握单片机的编程方法;3. 熟练使用单片机进行单灯闪烁实验,加深对单片机原理的理解;4. 提高动手实践能力和问题解决能力。
二、实训器材1. 单片机实验箱;2. 编译器(如Keil uVision);3. 发光二极管(LED);4. 电阻;5. 电路板;6. 电源;7. 导线。
三、实训原理单片机(Microcontroller Unit,MCU)是一种将计算机的中央处理单元(CPU)、存储器(RAM、ROM)、定时器、计数器、并行I/O口、串行通信接口等集成在一个芯片上的微型计算机。
本实训以单灯闪烁为例,说明单片机的编程和实际应用。
单灯闪烁的原理是利用单片机的I/O口控制LED灯的亮灭。
具体来说,通过设置I/O口的输出电平,控制LED灯的电流,从而实现LED灯的亮灭。
在单片机中,I/O口可以设置为输出模式或输入模式。
本实训中,将I/O口设置为输出模式,通过控制I/O口的输出电平,实现LED灯的闪烁。
四、实训步骤1. 硬件连接(1)将LED灯的阳极(正极)连接到单片机的I/O口(如P1.0);(2)将LED灯的阴极(负极)通过限流电阻连接到电源的负极;(3)将单片机的VCC连接到电源的正极,将GND连接到电源的负极。
2. 编写程序(1)使用Keil uVision编译器编写程序,编写程序如下:```c#include <reg51.h> // 包含单片机寄存器定义头文件#define LED P1^0 // 将LED灯连接到P1.0口void delay(unsigned int ms) // 延时函数,ms为延时时间(毫秒){unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++);}void main(){while (1){LED = 0; // 点亮LED灯delay(500); // 延时500msLED = 1; // 熄灭LED灯delay(500); // 延时500ms}}```(2)编译程序,生成HEX文件。
中山大学单片机实验(Word)
实验六键盘显示接口实验一、实验目的1、掌握8255A编程原理2、了解键盘电路的工作原理(键盘电路见附图)3、掌握键盘接口电路的编程方法4、掌握LED数码管动态显示的编程方法二、实验说明1、识别键的闭合,通常采用行扫描法和行反转法行扫描法是使键盘上某一行先为低电平,而其余行接高电平,然后读取列值,如所读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。
本实验采用的是行反转法2、程序设计时,要学会灵活地对8255A的各端口进行方式设置3、程序设计时,可将各键对应的键值(行线值,列线值)放在一个表中,将要显示的0~ F字符放在另一个表中,通过查表来确定按下的哪一个键并正确显示出来三、实验内容内容一:利用8255A做矩阵键盘一、利用实验箱上的8255A可编程并行接口芯片和矩阵键盘,编写程序,做到在键盘每按一个数字键(0~F),用发光二极管将该代码显示出来。
二、连线方法:将键盘RL10~RL17接8255A的PB0~PB7;KA10~KA12接8255A 的PA0~PA2;PC0~PC7接发光二极管的L1~L8;8255A芯片的片选信号8255CS接CS0。
三、代码;8255键盘实验PA EQU 0CFA0HPB EQU PA+1PC0 EQU PB+1PCTL E QU PC0+1ORG 4000HLJMP STARTORG 4100HSTART:MOV 42H,#0FFH ;42H中放显示的字符码,初值为0FFHSTA1:MOV DPTR,#PCTL ;设置控制字,ABC口工作于方式0MOV A,#82H ;AC口输出而B口用于输入LINE:MOV DPTR,#PC0 ;将字符码从C口输出显示MOV A,42HCPL AMOVX @DPTR,AMOV DPTR,#PA ;从A口输出全零到键盘的列线MOVX @DPTR,AMOV DPTR,#PB ;从B口读入键盘行线值MOVX A,@DPTRMOV 40H,A ;行线值存于40H中CPL A ;取反后如为全零JZ LINE ;表示没有键闭合,继续扫描MOV R7,#10H ;有键按下,延时10MS去抖动DL0:MOV R6,#0FFHDL1:DJNZ R6,DL1DJNZ R7,DL0MOV DPRT,#PCTL ;重置控制字,让A为输入,BC为输出MOV A,#90HMOVX @DPTR,AMOV A,40HMOV DPTR,#PB ;刚才读入的行线值取出从B口送出MOVX @DPTR,AMOV DPTR,#PA ;从A口读入列线值MOVX A,@DPTRMOV 41H,A ;列线值为存入41H中CPL A ;取反后如为全零JZ STA1 ;表示没有键按下MOV DPTR,#TABLE ;TABLE表首地址送DPTRMOV R7,#18H ;R7中置计数值16MOV R6,#00H ;R6中放偏移量初值TT:MOVX A,@DPTR ;从表上取键码前半字节,行线值与实CJNE A,40H,NN1 ;际输入的行线值相等吗?不等转NN1 INC DPTR ;相等,指针指向后半字节,即列线值MOVX A,@DPTR ;列线值与列线值CJNE A,41H,NN2 ;不相等吗?不等转NN2MOV DPTR,#CHAR ;相等,CHAR表基址和R6中的依偏移量MOV A,R6 ;取出相应的字条码MOVC A,@A+DPTRMOV 42H,A ;字符码存于42HBBB: ;重置控制字,让AC为输出,B为输入MOV A,#82HMOVX @DPTR,AAAA:MOV A,42H ;将字符码从C口送到二极管显示MOV DPTR,#PC0CPL AMOVX @DPTR,AMOV DPTR,#PA ;判断按下的键是否释放CLR AMOVX @DPTR,AMOV DPTR,#PBMOVX A,@DPTRCPL AJNZ AAA ;没有释放转AAAMOV R5,#02 ;已释则延时0.2秒,减少总线负担DEL1:mov R4,#200DEL2:MOV R3,#126DEL3:DJNZ R3,DEL3DJNZ R4,DEL2DJNZ R5,DEL1JMP START ;转STARTNN1:INC DPTR ;指针指向后半字节即列线值NN2:INC DPTR ;指针指向下一键码前半字节即行线值INC R6 ;CHAR表偏移量加一DJNZ R7,TT ;计数值减一,不为零则转TT继续查找JMP BBBTABLE: ;TABLE为键值表,每个键位占DW 0FE06H,0FD06H,0FB06H,0F706H ;两个字节,第一个字节为行DW 0BF06H,07F06H,0FE05H,0FD05H ;线值,第二个为列线值DW 0EF05H,0DF05H,0BF05H,07F05HDW 0FB03H,0F703H,0EF03H,0DF03HCHAR: ;字符码表DB 00H,01H,02H,03H,04H,05H,06H,07,08H,09HDB 0AH,0BH,0CH,0DH,0EH,0FH,10H,11H,12H,13HDB 14H,15H,16H,17HEND内容二:自编程序一、设计一个3X3的矩阵键盘,行和列都与用单片机P1口直接相连,用扫描法编写程序读取键盘信息,并在最左边数码管上直接显示出来。
单片机原理综合实验共48页word资料
单片机原理综合实验实验指导书长春工业大学计算机与信息技术实验中心目录第一章实验箱说明1.1 功能介绍1.2 核心处理器简介1.3 硬件布局1.4 资源端口分配第二章实验环境及工具介绍2.1 Keil C51安装及使用2.2 USB驱动安装及下载软件的使用第三章单片机基础实验实验一循环彩灯实验二动态数码显示实验三 4×4矩阵键盘实验四液晶显示实验五 D/A转换实验六 A/D转换实验七 LED点阵显示实验八串口通信附录1 常见问题解答第一章实验箱说明1.1功能介绍JSJDZ-Ⅱ型实验箱是一款具有实验仪、编程器、ISP下载线三种功能合一的综合学习开发系统,适用于《EDA技术及应用》和《单片机原理》课程的基础实验及其他有关EDA和单片机设计的综合实验。
实验箱的特点有:●集成ISP编程功能,支持USB2.0在线下载编程●可以支持EDA与单片机两种芯片的编程与开发●模块种类丰富多样,适用于课本上的所有实验●使用74LS244外扩I/O口,驱动能力强●用三档开关控制各模块与MCU的连接与断开,电路连接方便●外扩引脚,适用于其他各种电子设计●各模块之间可同时启用,方便综合调试●内置开关电源在传统的控制系统中,人们常用单片机作为控制核心,单片机在端口数目、内部定时器和中断源的个数都有限,在实际工程应用中不得不外部扩展其它芯片才能满足需要,这就使得硬件电路连线的复杂度增加,出现问题的概率增加。
随着电子工艺和技术的迅猛发展,可编程逻辑器件越来越来多的出现子在人们的生活中,它将复杂的数字电路集中于一块芯片上,通过不同的配制文件使其产生不同的控制逻辑,FPGA和CPLD就是典型的可编程器件,虽然在结构上不同,但是在实际中的作用很相似。
现在许多系统采用可编程器件作为控制核心,与传统设计相比较,它被称为数字系统设计,由于内部有丰富的数字逻辑单元,芯片的I/O引脚也较多,方便了电路的接口控制,提高了系统的整体性能及工作可靠性,也为系统的集成创造了条件。
单片机实验
1.做单一灯的左移右移,八个发光二极管L1-L8分别接在单片机的I/O口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0 亮,重复循环。
1.实验任务做单一广告灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环左右移动。
2.电路原理图3.系统板上硬件连线把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。
4.程序设计内容我们可以运用输出端口指令MOV P1,A或MOV P1,#DATA,只要给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。
每次送出的数据是不同,具体的数据如下表1所示P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 说明L8 L7 L6 L5 L4 L3 L2 L11 1 1 1 1 1 1 0 L1亮1 1 1 1 1 1 0 1 L2亮1 1 1 1 1 0 1 1 L3亮1 1 1 1 0 1 1 1 L4亮1 1 1 0 1 1 1 1 L5亮1 1 0 1 1 1 1 1 L6亮1 0 1 1 1 1 1 1 L7亮0 1 1 1 1 1 1 1 L8亮表15.程序框图6.C语言源程序#includeunsigned char i;unsigned char temp;unsigned char a,b;void delay(void){unsigned char m,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);}void main(void){while(1){temp=0xfe;P1=temp;delay();for(i=1;i<8;i++){a=temp<<="">b=temp>>(8-i);P1=a|b;delay();}for(i=1;i<8;i++){a=temp>>i;b=temp<<(8-i);P1=a|b;delay();}}}2.利用AT89S52 单片机的P0 端口的P0.0-P0.7 连接到一个共阴数码管的a-h 的笔段上,数码管的公共端接地。
中山大学左明老师实验(Word)
实验八器行接口实验一、实验目的1、掌握8031串行口方式1的工作方式及编程方法2、掌握串行通讯中波特率的设置,在给定通讯波特率的情况下,会计算时间常数3、掌握串行口工作方式的程序设计和单片机通讯程序的编制方法二、实验说明MCS-51单片机串行通讯的波特率随串行口工作方式选择的不同而不同,它除了与系统的振荡频率f,电源控制寄存器PCON的SMOD位有关外,还与定时器T1的设置有关。
串行通信的四种模式:0:波特率固定的8位同步通信;1:波特率可变的8位异步通信;2:波特率固定的9位可多机的异步通信;3:波特率可变的9位可多机的异步通信。
三、实验内容内容一:利用8031串行口发送和接收数据,并将接收的数据通过扩展I/O口一、连线方法:1、8031的TXD接RXD2、74L273的CS273接CS0;00~07接发光二极管的L1~L8二、代码;D81.ASMORG 4000HLJMP STARTORG 4100HPORT EQU 0CFA0HSTART:MOV TMOD,#20HMOV TL1,#0F2HMOV TH1,#0F2HMOV 87H,#00HSETB TR1MOV SCON,#50HMOV R1,#12HMOV DPTR,#TABLEMOV A,DPLMOV DPTR,#L1CLR CSUBB A,DPLMOV R5,AMOV R0,ASEND:MOV A,R0MOVC A,@A+PCL1:MOV SBUF,AWAIT:JBC RI,L2SJMP WAITL2:CLR R ICLR T IMOV A,SBUFMOV DPTR,#PORTMOVX @DPTR,AACALL DELAYINC R0DJNZ R1,SENDMOV R1,#12HMOV A,R5MOV R0,AJMP SENDTABLE:DB 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, 0FFH, 0FEHDB 0FCH, 0F8H, 0F0H, 0E0H, 0C0H, 80H, 00H, 0FFH, 00HDELAY:MOV R4,#05HDEL1:MOV R3,#200DEL2:MOV R2,#126DEL3:DJNZ R2,DEL3DJNZ R3,DEL2DJNZ R4,DEL1RETEND三、现象及分析开始仿真后LED循环变化出各种花样内容二:用中断方法,利用8031串行口发送和接收数据,并将接收的数据通过扩展I/ O口接线方法:1、8031的TXD接RXD2、74L273的CS273接CS0;00~07接发光二极管的L1~L8二、代码分析;D81.ASMORG 4000HLJMP STARTORG 4023HLJMP INTCORG 4100HPORT EQU 0CFA0HSTART:MOV TMOD,#20H ;选择定时器模式2计时方式MOV TL1,#0F2H ;预置时间常数,波特率为1200MOV TH1,#0F2HMOV 87H,#00H ;PCON=0,使SMOD=0SETB T R1 ;启动定时器1MOV SCON,#50H ;器行口工作于方式1,允许器行接收SETB EA ;开总中断SETB ES ;开串行中断MAIN:MOV R1,#12H ;需要循环12次MOV DPTR,#TABLEMOV A,DPLMOV DPTR,#L1CLR CSUBB A,DPL ;计算偏移量MOV R5,AMOV R0,ASEND:MOV A,R0MOVC A,@A+PCL1:MOV SBUF,A ;串口发送显示码ACALL DLAYINC R0DJNZ R1,SENDMOV R1,#12HMOV A,R5MOV R0,AJMP SENDTABLE:DB 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, 0FFH, 0FEHDB 0FCH, 0F8H, 0F0H, 0E0H, 0C0H, 80H, 00H, 0FFH, 00H DLAY:MOV R4,#05HDEL1:MOV R3,#200DEL2:MOV R2,#126DEL3:DJNZ R2,DEL3DJNZ R3,DEL2DJNZ R4,DEL1RETINTC:PUSH ACC ;保护寄存器PUSH PSWANL PSW,#0C7HORL PSW,#10HL2:CLR RI ;串口中断标志清零CLR TI ;发送中断标志位清零MOV A,SBUF ;读取数据MOV DPTR,#PORT ;送外设的地址MOVX @DPTR,A ;送数据到外设ACALL DLAYPOP PSW ;恢复数据寄存器POP ACCSETB EARETIEND三、现象及分析与实验内容一的现象相同,都是LED彩灯循环变换四、结论中断方式传输可以产生与查询法相同的效果,而且中断的效率比查询法更高,不用占用CPU的资源内容三:双机实验一、前期连接:1、发送机的接法:74LS273的CS273接CS0,P1.0~P1.5接数码管的LED1~6,P3.3接P-2、接收机的接法:74LS273的CS273接CS0,P1.0~P1.5接数码管的LED1~63、发送机的GND接接收机的GND,发送机的TXD接接收机的RXD二、代码分析ORG 4000HLJMP STARTORG 4013HLJMP INTX1PORT EQU 0CFA8HORG 4100HSTART:MOV 31H,#05HMOV 32H,#01HMOV 33H,#01HMOV 34H,#01HMOV 35H,#0EHMOV 36H,#10HMOV R0,#30H ;选取数值存储的地址首位MOV P3,#0FFHMOV TCON,#04HSETB EASETB EX1MAIN:;****************************************************************************显示模块开始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+PCRETDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H NONUM:POP PSWPOP ACC;****************************************************************************** *显示模块结束JMP MAININTX1:PUSH ACC ;保护寄存器PUSH PSWANL PSW,#0C7HORL PSW,#08HMOV TMOD,#20H ;设计时器为工作方式2MOV TL1,#0F2HMOV TH1,#0F2HSETB TR1MOV SCON,#80H ;设为工作方式2MOV PCON,#80H ;SMOD=1,波特率为2400SEN:MOV R0,#31H ;要发送的数据的第一位地址MOV R6,#06H ;要发送6位数据TRS:MOV A,@R0MOV SBUF,A ;发送数据WAIT:JB TI,CONT ;发送内部采用查询方式AJMP WAITCONT:INC R0CLR TIDJNZ R6,TRSPOP PSWPOP ACCRETIENDORG 4000HLJMP STARTORG 4023HLJMP INTCPORTAD EQU 0CFA0HPORT EQU 0CFA8HORG 4100HSTART:MOV 31H,#10H ;在未接收到断据的时候,LED不显示MOV 32H,#10HMOV 33H,#10HMOV 34H,#10HMOV 35H,#10HMOV 36H,#10HMOV 37H,#00H ;37位为判断是传输是否正确的标志位MOV P3,#0FFHMOV TMOD,#20H ;定时器为工作方式2MOV TL1,#0F2HMOV TH1,#0F2HSETB T R1MOV SCON,#80H ;串口工作方式2,波特率为2400MOV PCON,#80HSETB RENSETB EASETB ESPUSH ACCPUSH PSWANL PSW,#0C7HORL PSW,#08HMOV R0,#31H ;R0为接收数据存储的首地址POP PSWPOP ACC;****************************************************************************显示函数开始MAIN:MOV A,37H ;判断其是否接收到正确的据,如果没有,LED数码CJNE A,#01H,OK ;管显示“Error”MOV 31H,#11HMOV 32H,#12HMOV 33H,# 11 HMOV 34H,#11HMOV 35H,#0EHMOV 36H,#10HOK: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+PCRETDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00,50H,5CH NONUM:POP PSWPOP ACC;*****************************************************************显示函数结束JMP MAININTC:CLR EA ;关中断CLR RI ;中断标志位清零PUSH ACC ;保护寄存器PUSH PSWANL PSW,#0C7HORL PSW,#08HMOV A,SBUF ;读出接收到的数据MOV @R0,ACJNE R0,#31H,RIGHT ;是否接收第一位数据MOV 37H,#00H ;若为第一位,则判断其是否为“05”MOV A,31H,CJNE A,#05H,ERR1 ;若不为“05”,跳到ERR1JMP RIGHTERR1:MOV 37H,#01H ;37位置1CJNE R0,#35H,RIGHT ;判断其是否接收第五位数据MOV A,35HCJNE A,#0EH,ERR5 ;若是则判断其是否为“0E”JMP RIGHTERR5:MOV 37H,#01H ;若不为“0E”,其将37置1RIGHT:INC R0CJNE R0,#37H,GOONMOV R0,#31HGOON:MOV 31H,#10H ;校验码不显示MOV 35H,#10HPOP PSWPOP ACCSETB EARETIEND三、现象及分析连到线,若传输的数据第一位为“05”,第五位为“0E”,则在接收端显示三位数据若传输第一位不是“05”或第五位不是“0E”,则显示“Error四、结论双机通讯由于发送和接收不在一个板子上,所以需要校验码保证数据的正确性,此程序可以在传输错误的情况下自动显示“Error”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七 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上显示,可以明显感觉到转换的速度要比内容二中用中断法要快很多四、结论用中断查询法可以使程序更加简洁,在程序不大时,其响应的速度还比中断法更快。