实验一 学习PROTEUS的基本使用方法_第1页
实验一 学习PROTEUS的基本使用方法_第2页
实验一 学习PROTEUS的基本使用方法_第3页
实验一 学习PROTEUS的基本使用方法_第4页
实验一 学习PROTEUS的基本使用方法_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 学习(xux)PROTEUS的基本使用方法共二十八页2.源程序:; Test program for external memory.; Write data to memory, then read it back.; The program loops forever. org 0loop1: SETB P1.0 JNB P1.1 ,PP1 JMP LOOP1 PP1: CLR P1.0 jmp PP1org 0:程序开始Loop1:循环SETB P1.0:将位P1.0设置为1JNB P1.1 ,PP1:判断P1.1是否为1,若等于1,则顺序(shnx)执行,否则转移JMP LOO

2、P1:转移指令,跳转到LOOP1PP1: CLR P1.0:将位P1.0设置为0jmp PP1:转移指令,跳转到PP1END:结束运行共二十八页七段数码管的使用(shyng)若f=12MHZ,延迟时间为0.1s,求X=?解:一个(y )机器周期为1212us1us 2+X(2+2002+2)=0.110 X=(0.110-2)/(2+2002+2)=248D=F8H共二十八页MOV A,#3FH:将数据3FH送到累加器A中CPL A:将A中的数据取反,即00111111取反为11000000,转换十六进制为C0HMOV P1,A:将A中的数据送到P1口中,此时数码管显示(xinsh)的数字为0

3、ACALL DELAY:延时0.1s同理:MOV A,#06HCPL AMOV P1,A:此时数码管显示的数字为1ACALL DELAYMOV A,#66HCPL AMOV P1,A此时数码管显示的数字为2ACALL DELAYMOV A,#4FHCPL AMOV P1,A此时数码管显示的数字为3ACALL DELAYMOV A,#66HCPL AMOV P1,A此时数码管显示的数字为4ACALL DELAYDELAY: MOV R7,#1(X):下面指令执行1次 DEL1:MOV R6,#200:执行200次DEL2 DEL2:DJNZ R6,DEL2 若R6-1=0,则往下执行,否则转移

4、DJNZ R7,DEL1 若R7-1=0,则往下执行,否则转移 RETEND 结束运行共二十八页 实验三 中断(zhngdun)功能的使用共二十八页1、要求单片机接收(jishu)中断信号后,在LED上轮流显示不同的数据org 0 程序开始AJMP MAINorg 0003HAJMP WBIORG 0030HMAIN:MOV P1,#0FFH 设置初值CLR IT0 允许中断SETB EX0 SETB EA HERE: AJMP HEREWBI:MOV A,#08H 08H00001000显示8 mov R0,#20 循环20次KK: MOV P1,ARR ADJNZ R0,KKRETI 返回

5、主程序END2、要求单片机接收中断信号后,轮流点亮发光管org 0AJMP MAINorg 0003HAJMP WBIORG 0030HMAIN:MOV P1,#0FFH 设置初值CLR IT0SETB EX0SETB EA 允许中断HERE: AJMP HEREWBI:MOV A,#0FEH 0FEH为11111110最后一个灯被点亮mov R0,#20 循环20次KK: MOV P1,A 点亮发光(f un)二极管RR ADJNZ R0,KKRETI 返回主程序END共二十八页实验四 定时器实验 1、单片机P1.0产生方波,高低电平时间(shjin)长度一致。 2、单片机P1.0产生占方波

6、,高低电平时间相差一倍。共二十八页ORG 00H 程序开始JMP MAINORG 001BHJMP II1MAIN:MOV TMOD, #10H T1为方式(fngsh)1,产生周期是500s的脉冲方波 MOV TH1, #0FFH MOV TL1,#83H 定时250s产生一次变换 SETB EA 允许中断 SETB ET1 SETB TR1 启动定时 PP: SJMP PP 等待中断II1:MOV TH1,#0FFH 重新设置初值MOV TL1,#83H CPL P1.0 输出取反 RETI2、单片机P1.0产生占方波,高低电平时间相差一倍。MAIN: MOV TMOD, #10H ; T

7、1为方式(fngsh)1,PP3: MOV TH1, #0FFH MOV TL1, #38H ; 设置高低电平的时间值 SETB TR1 ; 启动定时 JMP PP PP: JBC TF1,PP2 SJMP PP PP2: CPL P1.0 JMP PP5 SJMP PP4PP4: MOV TL1,#9CH MOV TH1,#0FFH ; 设置高低电平的时间值 SJMP PPPP5: JNB P1.0,PP3 JB P1.0,PP4共二十八页单片机实验五 定时器实验(C语言方法)主要是学会定时器实验程序的编写(binxi),示波器的正确使用。学会用中断方式编写(binxi)并运行。学会用查询方

8、式编写(binxi)并运行。共二十八页查询方式 #include sbit P1_0=P10; 取p1口第零位(ln wi) void main(void) TMOD=0 x01; 指的是采用T0方式,将M1置0,M0置1,是方式一的定时器 TR0=1; 启动定时器0for(;) 无终止地执行循环体 TH0=-(1000/256); 定1000us,把高8位送TH0 TL0=-(1000%256); 低8位送TL0 dowhile( !TF0); 无限循环直到while中的条件为假 P1_0=!P1_0; P1_0这个变量按位取反再赋给自己 TF0=0; TF0等于0候循环进行TF0等于0的时

9、候结束 中断方式 #include sbit P1_0=P10; 取p1口第零位 void timer0(void) interrupt 1 using 1 指的是采用T0方式,将M1置0,M0置1,是方式一的定时器 P1_0=!P1_0; P1_0这个变量按位取反再赋给自己 TH0=-(1000/256); 定1000us,把高8位送TH0 TL0=-(1000%256); 低8位送TL0void main(void) TMOD=0 x01; 指的是采用T0方式,将M1置0,M0置1,是方式一的定时器 P1_0=0; P1_0为0 TH0=-(1000/256); 把高8位送TH0 TL0=

10、-(1000%256); 低8位送TL0 EA=1; 允许中断 ET0=1; TR0=1; 启动定时dowhile(1); 无限循环直到(zhdo)while中的条件为假 共二十八页单片机实验(shyn)六 串口通迅实验(shyn)串口通迅实验程序的编写、七段LED使用共二十八页1.MOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HSETB TR1MOV PCON,#80HMOV SCON,#50H以上为初始化过程以及(yj)工作方式为方式1TX: MOV A,P1SWAP A将寄存器A中数据的高四位和低四位的值交换MOV SBUF,A把累加器A中的数放到SBUF中

11、WAIR1: JBC TI, PP检测T1,T1=1,清0后,进行PP,否则循环SJMP WAIR1PP: NOPEND2.MOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HSETB TR1MOV PCON,#80HMOV SCON,#50H以上为初始化过程(guchng)以及工作方式为方式1RX:JBC RI,NEXT检测R1,R1=1,清0后,进行NEXT,否则循环SJMP RXNEXT:MOV A,SBUF把SBUF中的数放到累加器A中MOV P1,A把累加器A中的数放到P1中NOPSJMP RX END共二十八页单片机实验七 D/A实验 学习(xux)实现D

12、/A转换的方法共二十八页共二十八页ORG 0START:MOV DPTR,#7FFFH 选中0832STEP1: MOV A,#00H D/A数据初值STEP2:MOVX DPTR,A 转换(zhunhun) INC A 累加器自动加1 CJNE A,#0FFH,STEP2 判断累加器是否加满,执行step2,否则顺序执行STEP3:DEC A 累加器自动减1 MOVX DPTR,A 转换 CJNE A,#01H,STEP3 判断累加器是否为1,如果不是继续执行step3,否则顺序执行 AJMP STEP1 跳转step1 RET END共二十八页单片机实验八 A/D转换设计(shj)简单的数

13、据采集系统共二十八页ORG 0000HAJMP MAIN 跳转到主程序ORG 0013HAJMP PP1 跳转到PP1MAIN: MOV DPTR,#7FFFH 选中0832 SETB IT1 下降沿触发 SETB EX1 允许外部中断 SETB EA 总开关打开 MOV P1,#00H 设置(shzh)P1的初值READ:MOVX DPTR,A 启动A/DHERE:SJMP HERE 死循环,直至A/D转换完进行下面的程序PP1: MOVX A,DPTR 将DPTR 中的数据传递到A中 MOV P1,A 将A中的数据传递到P1中 MOVX DPTR,A 重新启动A/DRETI 中断返回指令E

14、ND 结束共二十八页IO口扩展实验(shyn) 利用273,244进行IO口扩展:共二十八页org 0CLR P2.5MOV DPTR, #0DFFH 设置成可以读数据的状态MOVX A,DPTR 8031读入数据(shj)MOV DPTR, #7FFFH MOVX DPTR,A 写入控制字END共二十八页单片机实验(shyn)十 8255IO口扩展实验共二十八页ORG 0MOV DPTR,#7F03HMOV A,#90H 设置工作方式(fngsh)PP:MOVX DPTR,AMOV DPTR,#7F00H MOVX A,DPTR 读入数据MOV DPTR,#7F01H MOVX DPTR,A

15、 读出数据JMP PPEND共二十八页实验十一 D/A转换 1、利用DAC0832 进行D/A转换,产生三角波, 并用示波器观察波形。 2、实验报告中应包括(boku):原理图、 源程序以及实验分析 利用DAC0832 的双缓冲模式进行D/A转换,产生两组同步 三角波,用视波器观察波形。共二十八页共二十八页实验(shyn)源程序:(C语言)#include#include#define DAC1 XBYTE0 xfeff#define DAC2 XBYTE0 xfDff#define DAOUT XBYTE0 xEfffvoid main(void) unsigned char data1=0X00,data2=0Xff;while(1) DAC1= data1;DAC2=data2;DAOUT= data2;共二十八页IO口扩展实验实验程序的C语言编写。利用(lyng)74LS244,74LS273进行IO口扩展,读入按键信息,在LED上显示出来。共二十八页#includeunsigned char xdata * port; /定义访问的外部端口变量(binling)void main()unsigned char tmp;port=0 xfeff; /定义外部端口地址* port=0 xff;while(1)tmp=* port; /从74LS244读取数据if(tm

温馨提示

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

评论

0/150

提交评论