单片机实验之 数码管跑马显示
标签:
单片机实验数码管显示 |
实验一 数码管跑马显示
一、实验目的
1、 熟悉51单片机并行口的输入方式,输出方式的编程;
2、 熟悉共阴极LED的工作特性及控制方法;
3、 学习在系统烧写单片机程序(在系统编程ISP)的方法。
二、实验电路和程序
1、 实验电路
一个数码管由8个发光二极管组成,由于是共阴极,所以低电平选通。如图4-1所示,SN74ALS245A接成直通方式通过P0口驱动数码管。由74LS138对P1口译码控制SN74ALS245A驱动6个数码管的位选,剩余两路,一路接到发光二极管,另一路控制蜂鸣器。由程序进行选通控制。
2、 程序
(1)
通过程序控制使数码管进行从0到9的跑马显示和0.到9.的跑马显示,两个数字显示的间隙发光二极管发光,当跑马显示完毕后,发光二极管继续闪亮。通过复位按键进行复位。
http://s9/middle/7cedfd30xca6cef1329e8&690数码管跑马显示" TITLE="单片机实验之
|
图4-1 图表 1 |
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
DELAY:
DELAY1:
DELAY2:
TAB0:
TAB1:
END
(2)
通过程序控制使数码管进行从0到9的跑马显示和0.到9.的跑马显示,两个数字显示的间隙发光二极管发光,当跑马显示完毕后,发光二极管长亮。通过复位按键进行复位。
#include <reg52.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
uint a[20]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
uint b[20]={0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20,0x40,0x60,
0x80,0xa0,0x00,0x20,0x40,0x60,0x80,0xa0,0x00,0x20};
void delay(uint
count)
{
uint i;
while(count--!=0)
{
for(i=0;i<72;i++);
}
}
main()
{
uint j;
for(j=0;j<20;j++)
}
(3)
编程并烧写程序,6个数码管依次显示6,5,2,3,0.,9;然后,6个数码管同时点亮,显示65230.9。再编一个小程序,在五个数码管上显示“HELLO”。
三、编写程序并在实验板上执行通过
1、 数码管跑马显示0~9,0.~9.,测试数码管性能;
2、 数码管依次显示6,5,2,3,0.,9,由于数码管位选决定每次只有一个数码管点亮,所以利用视觉误差使6个数码管同时点亮,显示65230.9;
3、 自编数码管段代码,用数码管显示英文“HELLO”;
4、 复位按键复位,重复执行。

加载中…