目录
一. 系统功能简介 2
二. 硬件电路设计 2
: 2
: 3
三. 软件设计 3
1. 流程图: 3
2. 程序: 4
6
: 6
: 6
仿真图片: 6
结果: 7
: 7
步骤: 7
: 8
: 9
: 9
9
系统功能简介
由P2口将所要显示的七段显示码直接输出到4位数字七段LED数码管模块,再由P1口的低四位将扫描信号直接送到七段显示模块的4个公共端,使这个七段LED数码管模块闪烁“2008”3次,再闪烁“0315”3次,如此循环不停。
硬件电路设计
:
:
名称
型号
数量(个)
电阻
3WATT100R
8
电阻
3WATT1K
4
LED数码管
7SEG-MPX1-CA
4
三极管
2N3905
4
芯片
AT89C51
1
软件设计
开始
声明变量与函数
3次扫描
第1组数字scanner函数
3次扫描
第2组数字scanner函数
no
no
yes
yes
流程图:
scanner
声明变量
扫描初始值
读取数组数据
数据处理
输出延迟4ms 下一个扫描码
4次扫描?
30次?
返回
no
yes
no
yes
程序:
/* ch05-4- - 直接驱动4位七节显示器实验,~3为扫描信号 P2接七节显示器*/
//==声明区====================================
#include <> // 定义8051暂存器之标头档,P2-17~19
#define SCANP P1 // 定义扫瞄码由Port 1输出
#define SEG7P P2 // 定义七节显示码由Port 2输出
char code TAB[10]={ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, //数字0-4
0x92, 0x83, 0xf8, 0x80, 0x98 }; //数字5-9
char code disp[2][4]={ {2,0,0,8}, // 显示资料(第0组)
{0,3,1,5}}; // 显示资料(第1组)
void delay1ms(int); // 声明延迟函数
void scanner(char); // 扫瞄函数
//==主程序====================================
main() // 主程序开始
{ char i,j; // 声明变数i,j
while(1) // 无穷循环,程序一直跑
{ for(i=0;i<2;i++) // 显示第0,1行字组,for循环(字组i)开始
for(j=0;j<3;j++) // 闪烁三次
{ scanner(i); // 扫瞄第i行字组
SCANP=0xff; // 全灭
delay1ms(480); /
数码管闪烁显示 来自淘豆网www.taodocs.com转载请标明出处.