单片机实验二

您所在的位置:网站首页 编写一个延时10ms的程序 单片机实验二

单片机实验二

2023-09-05 18:37| 来源: 网络整理| 查看: 265

1、实验内容一 1.1、问题一: 设系统晶振为12MHz,编写一个延时1s的延时程序,并计算程序实际的延时。 1.2、问题一的代码 汇编语言代码如下:

ORG 0000H AJMP MIAN ORG 0100H MIAN:ACALL DELAY MOV P1 , #0FFH ORG 0200H DELAY:MOV R5 , #10 LOOP1:MOV R6 , #200 LOOP2:MOV R7 , #248 LOOP3:DJNZ R7 , LOOP3 DJNZ R6 , LOOP2 DJNZ R5 , LOOP1 RET END

C语言代码如下:

#include void delay(); void main() { P1 = 0x00; delay(); P1 = 0x0FF; delay(); } void delay() { int i,j; for (i = 208; i > 0;i--) for(j = 600 ; j > 0;j--) ; }

2、实验内容二 2.1、问题二: 设实验连线如图2-1所示,设计一个系统点亮发光二极管。 这里写图片描述 图2-1 2.2、问题二的代码: 汇编语言代码如下: ORG 0000H AJMP START ORG 0100H START:MOV P1 , 00H END C语言代码如下:

#include void main() { while (1) { P1 = 0x00; } }

3、实验内容三 3.1、问题三: 实验原理如图2-1所示,用8位杜邦线将P1与J9连接,设计一个系统控制发光二极管以1秒的频率闪烁。 3.2、问题三的代码: 汇编语言代码如下:

ORG 0000H AJMP MIAN ORG 0100H MIAN:MOV P1 , #00H ACALL DELAY MOV P1 , #0FFH ACALL DELAY AJMP MIAN ORG 0200H DELAY:MOV R5 , #10 LOOP1:MOV R6 , #200 LOOP2:MOV R7 , #248 LOOP3:DJNZ R7 , LOOP3 DJNZ R6 , LOOP2 DJNZ R5 , LOOP1 RET END

C语言代码如下:

#include void delay(); void main() { while (1) { P1 = 0x00; delay(); P1 = 0x0FF; delay(); } } void delay() { int i,j; for (i = 208; i > 0;i--) for(j = 600 ; j > 0;j--) ; }

4、实验内容四 4.1、问题四: 保持上述电路连接,再用一8位杜邦线将另一个8位并行口P3与J26(独立开关)连接,设计一个系统根据开关控制发光二极管的亮灭。独立按键原理图如下: 这里写图片描述 4.2、问题四的代码: 汇编语言代码如下:

ORG 0000H AJMP MIAN ORG 0100H MIAN:MOV P1 , P3 ACALL DELAY AJMP MIAN ORG 0200H DELAY:MOV R5 , #10 LOOP1:MOV R6 , #200 LOOP2:MOV R7 , #248 LOOP3:DJNZ R7 , LOOP3 DJNZ R6 , LOOP2 DJNZ R5 , LOOP1 RET END

C语言代码如下:

#include void delay(); void main() { while (1) { P1 = P3; delay(); } } void delay() { int i,j; for (i = 208; i > 0;i--) for(j = 600 ; j > 0;j--) ; }

5、实验内容五 5.1、问题五: 设实验连线如图2-1所示,设计一个程序控制各个发光二极管以1s的频率依次循环亮(分别实现循环左移点亮和循环右移点亮)。 5.2、问题五的代码: 汇编语言代码如下:

ORG 0000H AJMP MIAN ORG 0100H MIAN:MOV P1 , P3 ACALL DELAY AJMP MIAN ORG 0200H DELAY:MOV R5 , #10 LOOP1:MOV R6 , #200 LOOP2:MOV R7 , #248 LOOP3:DJNZ R7 , LOOP3 DJNZ R6 , LOOP2 DJNZ R5 , LOOP1 RET END

C语言代码如下:

#include #include void delay(); void main() { char temp = 0xFE; while (1) { P1 = temp; delay(); temp = _cror_(temp,1); } } void delay() { int i,j; for (i = 208; i > 0;i--) for(j = 600 ; j > 0;j--) ; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3