当前位置:   article > 正文

c语言程序控制流水灯点亮次数,单片机实验花样流水灯(程序在结尾).doc

20h=x7x6x5x4x3x2x1x0

单片机原理及应用》课程实验报告

实验日期__________________ 班级__________________ 学号________________

实验台号__________________ 姓名__________________ 成绩________________

实验一 单片机汇编与C语言简单IO控制实验

【预习内容】

1.89C51单片机内部有几个并行I/O端口?用Keil C51语言如何定义这几个I/O端口?

当P1口做输入口时,在编程时须先进行什么操作?

【实验内容】

1)汇编程序:要求学生按照上课教材上例程完成,

(1)两个长度为16个字节的无符号数据相加(书上例3-26);

设片内RAM 30H单元和40H单元处有两个16字节长度的无符号数,把它们相加,将结果放于30H单元开始的位置处(假设结果不溢出)

(2)将寄存器中数据反序后保存;

设片内RAM的20H单元的内容为:(20H)=x7x6x5x4x3x2x1x0,把该单元内容反序后放入20H单元,即为:(20H)=x0x1x2x3x4x5x6x7.

2)C语言程序:

给学生例程实现: P1口控制led流水灯(从左往右逐个点亮)。

要求学生实现:根据P3.0-P3.3各引脚输入电平状态,实现控制P1口输出led流水灯(从右往左逐个熄灭,4个为一组交替亮灭,由两边到中间逐渐亮,一端向另一端逐渐亮等功能)显示。

【实验电路】

图 LED电平显示电路

【实验提示】

1.实验箱的P0、P1、P2及P3口

实验箱用P0口做数据总线及低8位地址总线,P2口做高8位地址总线,P1口和P3口是开放的,供用户使用。

2.关于reg51.h

头文件reg51.h中已对P1、P3进行了定义,因此C51程序中可直接引用它们的名称。在引用时必须大写。

3.C51语言提供如下位操作运算符

&按位与;| 按位或;~按位取反;<>位右移

4.switch/case语句

switch (表达式)

{

case 值1 : 语句1 break;

case 值2 : 语句2 break;

...

default : 语句n break;

}

5. if_else if_else多选择语句

if(条件语句1)

{ 语句1;

语句2;

}

else if(条件语句2)

{ 语句1;

语句2;

}

……

else if(条件语句n)

{ 语句1;

语句2;

}

else {语句m}

6.软件延时程序

(1) 不带参数延时子程序 (2) 带参数延时子程序

void delay() void delay(uint xms)

{ {

int x=20000; uint I, j;

do for(i=xms; i>0; i--)

{ x=x-1; } for(j=110; j>0; j--);

while(x>1); }

}

【实验程序】

#include

#define uchar unsigned char

#define uint unsigned int

void delay_ms(uint ms); /*延时函数声明*/

uint i,j;

/*单片机实验一 花样流水灯*/

void delay_ms(uint ms) /*延时函数*/

{

for(i=ms;i>0;i--)

for(j=110;j>0;j--);

}

void main()

{

uchar a,b,c;

uint k;

P3=0xff;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/752284
推荐阅读
相关标签
  

闽ICP备14008679号