实验二P1口控制LED发光二极管_第1页
实验二P1口控制LED发光二极管_第2页
实验二P1口控制LED发光二极管_第3页
实验二P1口控制LED发光二极管_第4页
实验二P1口控制LED发光二极管_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、实验二 p1口控制led发光二极管一、实验目的1、进一步熟练proteus及keil软件的基本操作2、掌握8051单片机p1口的使用方法3、掌握led发光二极管的原理及使用方法4、学习汇编程序的调试及仿真方法二、实验电路三、实验内容及步骤:要求:8个led发光二极管循环左移显示(发光的移位),间隔时间为一秒。1、使用proteus画出电路原理图2、在keil uvision中完成程序编辑、调试及编译,生成.hex文件3、进行protues与keil uvision联动的相关设置:4、在proteus中仿真运行。四、思考1、 将本实验的实验现象改为“不发光二极管循环移位”。2、 将本实验的实验现

2、象改为“每隔0.5秒发光二极管循环移位”。参考程序:org 0ljmp mainorg 30hmain:mov a,#0fehloop:mov p1,alcall delayrl asjmp loopdelay:mov r7,#20hdelay1:mov r6,#200delay2:mov r5,#123djnz r5,$djnz r6,delay2djnz r7,delay1retend实验三 数码管静态显示实验一、实验目的1、进一步熟悉51系列单片机2、了解8051单片机p0口的使用方法3、掌握共阴极数码管的原理及使用方法4、学习8051的编程、调试、编译、仿真。二、实验电路图3 数码管静

3、态显示电路原理图注:数码管要从元件库选择optoelectronics类中的7seg-com-cat-grn。三、要求及步骤:要求:在七段数码管上以递增方式循环显示数字09,间隔时间为一秒。1、使用proteus画出电路原理图2、在keil uvision中完成程序编辑、调试及编译,生成.hex文件3、进行protues与keil uvision联动的相关设置:4、在proteus中仿真运行。四、思考1、为什么要将p0口各引脚通过电阻r3-r9接到电源?2、如何在共阴数码管上循环显示十六进制数字0f(不区分字母的大小写 )?3、怎样修改程序使数字以递减方式循环显示?4、若用共阳极数码管应如何修

4、改电路和程序,才能完成本实验的功能?参考程序:org 00hljmp startorg 30hstart: mov dptr,#tables1:mov r4,#00hs2:mov a,r4movc a,a+dptrmov p0,alcall delayinc r4cjne r4,#0ah,s2sjmp s1 delay: mov r5,#20 ;延时子程序d2: mov r6,#200d1: mov r7,#123djnz r7,$djnz r6,d1djnz r5,d2ret table:db 3fh,06h,5bh,4fh,66h ;段码表db 6dh,7dh,07h,7fh,6fh en

5、d实验四 基本输入/输出实验一、实验目的1、进一步熟悉8051单片机并行i/o口的使用方法3、掌握并行i/o口输入/输出操作的方法4、学习8051的编程、调试、编译、仿真。二、实验电路图4 并行i/o口基本输入/输出注:按钮要从元件库选择switches & relays类中的button。三、要求及步骤:要求:在按钮动作的控制下,将十六进制数字0-f循环显示在数码管上(每按一次按钮,显示的数字加1)。1、使用proteus画出电路原理图2、在keil uvision中完成程序编辑、调试及编译,生成.hex文件3、进行protues与keil uvision联动的相关设置:4、在pro

6、teus中仿真运行。四、思考1、如何检测按钮是否按下?2、怎样修改程序,可以使数字0-f在按钮控制下,以递减方式循环显示?3、若在p0口接8个led,如何实现每按一次按钮,点亮的led左移一位(8个led中只有一个点亮)?参考程序:org 00hljmp startorg 30hstart: mov p1,#01hmov dptr,#tablemov r4,#00hclr amovc a,a+dptrmov p0,aloop:mov a,p1anl a,#01hjz looploop1:mov a,p1anl a,#01hjnz loop1inc r4mov a,r4anl a,#0fhmov

7、c a,a+dptrmov p0,asjmp looptable: db 3fh,06h,5bh,4fh,66h ;段码表db 6dh,7dh,07h,7fh,6fhdb 77h,7ch,39h,5eh,79h,71h,76hend实验五 数据传送指令练习一、实验目的1、进一步掌握keil软件的使用。2、熟悉数据传送指令功能及使用。二、实验内容1、输入数据传送指令并单步执行输入的指令;2、练习数据传送指令的基本应用。三、实验步骤1、数据传送指令的功能1)输入如下程序:org 0030h mov a,#0bbh mov dptr,#0070h movx dptr,a mov r0,#70h mo

8、v r0,a mov a,#0cch xchd a,r0 sjmp $ end2)观察dptr、a、r0、内部ram70h和外部ram70h单元中内容并填入表中第一空行。3)单步执行完上述程序,重新观察上述寄存器和存储单元中内容并填入表中第二空行。表1 程序执行前后有关寄存器和ram单元内容对照表程序执行dptrar070h内ram70h外ram前后4)分析程序运行结果,并把分析结果和运行结果进行比较。2、push指令对堆栈的影响1)输入如下程序:org 0040hmov a,#0aahmov psw,#0cchpush accpush psw sjmp $end2)观察a、psw、sp、07

9、h、08h和09h单元中内容,并填入表表。表2 push指令对堆栈的影响程序执行apswsp堆栈区07h 08h 09h前后3)单步执行上述程序,重新观察上述寄存器和堆栈区中内容填入表中。4)分析程序运行结果,并把分析结果和实验结果进行比较,看两者是否相同。3、编写把a、psw、dptr中内容入栈保护并恢复的程序,并验证。4、编写将内ram的30h、40h单元内容相互交换的程序,并验证。5、编程实现交换外ram 1050h、1060h单元的数据,并运行验证。四、实验总结:1、堆栈操作的原则是什么?在程序设计中需要保护和恢复数据时应注意什么?2、对内ram、外ram及rom进行数据传送的指令,分

10、别可使用何种寻址方式?实验六 算术及逻辑运算指令练习一、实验目的1、熟悉算术及逻辑运算类指令的功能。2、掌握算术及逻辑运算类指令对标志位的影响。3、掌握算术、逻辑运算指令的编程应用。二、实验内容1、求两个16位无符号二进制数的和2、四位十进制数的加法3、算术、逻辑运算指令的基本应用三、实验步骤1、调试程序:求两个16位数的和设内ram30h和32h开头的两个单元分别存放有两个16位无符号二进制数(低8位在30h或32h单元,高8位在31h或33h单元),将和存放在30h单元开始的存储区。org 0000hljmp mainorg 0030hmain:mov a,30hadd a,32hmov

11、30h,amov a,31haddc a,33hmov 31h,asjmp $end要求:选择几组数据测试该程序,如有错,将其改正。2、编程:四位十进制数的加法:设内ram中30h和32h开头的两个单元分别存放有两个四位十进制数的压缩bcd码(低8位在30h或32h单元,高8位在31h或33h单元),试编写程序求这两个十进制数的和,并将结果放在从34h单元开始的存储区(低8位在低地址单元)。第一组第二组30h31h32h33h30h31h32h33h程序执行前程序执行后要求:测试、调试程序,并记录测试数据及正确运行结果3、分别编写实现如下功能的程序并运行、验证。(1)外ram1000h1020

12、h单元中8位无符号二进制数求和,结果存放在内ram30h单元开始的存储区。(2)外ram的1000h和2000h单元中分别放着一个8位无符号二进制数x和y,计算3x+4y,并将结果存入内ram的30h单元和31h单元。(低8位在30h单元)。(3)将两位十进制数的压缩bcd码转换成ascii码。(源数据在内ram 20h单元,结果存放在内ram30h开始的两个单元,低字节在31h单元)(4)将内ram 从30h开始的20个单元全部清零。四、实验总结:1、算术加、减法指令如何影响psw中的有关标志位?2、如何实现两个bcd数的减法?实验七 汇编语言程序设计一、实验目的:1、练习常见的简单的分支、

13、循环程序结构的设计方法。2、练习常见的程序调试方法。二、实验内容:1、编写程序,将内ram的30h40h单元存放的单字节数据传送到外ram中以1000h为起始地址的存储区。在内ram的30h-40h随意输入数据,调试并运行程序,观察结果。2、编写程序,查找外部ram的1020h-1030h单元中是否有0aah这个数,如果有,将内ram的30h单元置为01h,否则将30h单元置为00h。在外ram中输入数据,运行程序,观察结果。3、在内部ram30-5fh单元存放着一组无符号数,编写程序查找出这些无符号数的最大值,将结果存放于60h单元。在相关单元中输入一些数据,运行程序,观察实验结果。4、内r

14、am从40h单元开始的10个单元中存放着单字节带符号数,编程分别统计出正、负数的个数,并存入50h、51h单元中。三、实验要求:1、实验前充分预习,写出所需程序2、上机将程序调试正确,并分析程序运行结果四、实验报告要求:写出调试正确的程序。五、思考题:1、汇编语言程序如何测试和调试?2、在子程序调用和返回指令执行时,pc值如何变化?实验八 外部中断实验一、实验电路(如图3.3.45所示)图3.3.45 外部中断实验电路原理图二、实验目的1、熟悉51系列单片机2、了解at89c51 p1口、p3口的使用方法3、了解键盘的原理及使用方法4、了解发光二极管的原理及使用方法5、掌握外部中断的原理及使用

15、方法6、学习at89c51的编程、仿真、调试、编译、芯片烧录。对应文件int.hex三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板接+5v2、因j14为有极性排阻,故单片机扩展板一定要连gnd和vcc,否则发光二极管不亮3、图中粗线部分为要求学生自己连线部分五、实验现象正常情况下8个led发光二极管循环显示,延迟时间为1秒,当有按键按下即产生外部中断时,8个led发光二极管全亮,延迟时间为2秒。六、思考请同学们自己试一下外部中断0。实验 定时器中断一、实验电路(如图3.3.46所示)图3.3.46 定时器中断电路原理图二、实验目的1、熟悉

16、51系列单片机2、了解at89c51 p1口的使用方法3、掌握定时器、计数器的原理及使用方法4、学习at89c51的编程、仿真、调试、编译、芯片烧录。对应文件int.hex三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板接+5v电压2、因j14为有极性排阻,故单片机扩展板一定要接gnd和vcc,否则led发光二极管不亮3、图中粗线部分为要求学生自己连线部分五、实验现象led发光二极管循环显示,延迟时间为1秒。六、思考将led发光二极管的循环延迟时间设置的更长或更短。实验 数码管动态显示实验一、实验电路(如图3.3.33)图3.3.33 数码

17、管动态显示电路原理图二、实验目的1、熟悉51系列单片机2、了解at89c51 p1口、p2口的使用方法3、学习驱动芯片uln2003a的原理及使用方法4、学习驱动芯片74hc245的原理及使用方法5、掌握数码管(共阴、共阳两种)的原理及使用方法6、学习at89c51的编程、仿真、调试、编译、芯片烧录。对应文件leddt.hex三、实验器材1、多功能实验板2、单片机扩展板3、连接导线若干四、实验注意事项1、多功能实验板、单片机扩展板均采用+5v电压2、因图中将74hc245的gnd和vcc引脚隐藏,故学生自己连线时一定要将gnd和vcc连上,否则芯片不工作3、图中粗线部分为要求学生自己连线部分五

18、、实验现象1、显示数字16。六、思考1、显示其它数字和字符。实验 矩阵键盘实验一、实验电路(如图3.3.34所示)图3.3.34 矩阵键盘实验电路原理图二、实验目的1、熟悉51系列单片机2、了解at89c51 p1口、p2口的使用方法3、了解共阳数码管的原理及使用方法4、掌握矩阵键盘的原理及使用方法5、学习at89c51的编程、仿真、调试、编译、芯片烧录。对应文件key.hex三、实验器材1、多功能实验板2、单片机扩展板3、连接导线若干四、实验注意事项1、多功能实验板、单片机扩展板接+5v电压2、数码管为共阳数码管,公共端接+5v3、图中粗线部分为要求学生自己连线部分五、实验现象1、enter

19、键为全亮键,esc键为全灭键,其它数字键为按哪一位数字键,在数码管上显示其数字。实验 液晶lcd实验一、实验电路(如图3.3.43)图3.3.43 液晶lcd电路原理图二、实验目的1、熟悉51系列单片机2、了解at89c51 p1口、p2口的使用方法3、了解电位器的使用方法4、掌握液晶模块lcd的原理及使用方法5、学习at89c51的编程、仿真、调试、编译、芯片烧录。对应文件lcd.hex三、实验器材1、单片机多功能实验板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机扩展板、单片机多功能实验板均采用+5v电压2、单片机多功能实验板接gnd和vcc时一定不能接反,否则会烧毁lcd液晶

20、模块3、图中粗线部分为要求学生自己连线部分五、实验现象1、显示“cs&s”字样。六、思考1、请同学们在液晶模块上显示“how are you”。实验 交通灯控制(定时器延时法)一、实验目的1. 进一步理解单片机内部定时器/计数器的工作原理和使用方法。2. 学习模拟交通灯控制的方法。3. 学习数据输出程序的设计方法。4. 学习中断处理程序的编程方法。二、实验内容用cpu的p1口输出控制信号,控制六个led灯(红,绿,黄),模拟交通灯管理。led0、led1、led2分别表示南北方向红、黄、绿灯三、实验电路连接p10 - led0 led3、led4、led5分别表示东西方向红、黄、绿灯p11 - led1 p12 - led2 p13 - led3 p14 - led4 p15 - led5四、实验说明l. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始为状态0。状态0:东西红灯,南北红灯;然后转入状态1:南北绿灯通车,东西红灯;过一段时间转入状态2:南北绿灯闪几次转黄灯亮,延时几秒,东西仍然红;再转入状态3:东西绿灯通车,南北红灯;过一段时间转入状

温馨提示

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

评论

0/150

提交评论