这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机C语言程序设计:8X8LED 点阵显示数字

共1条 1/1 1 跳转至

单片机C语言程序设计:8X8LED 点阵显示数字

高工
2013-10-25 15:35:44     打赏

/* 名称:按键控制 8X8LED 点阵屏显

示图形

说明:每次按下K1时,会使8X8LED

点阵屏循环显示不同图形。

本例同时使用外部中断和定

时中断。

*/

#includereg51.h>

#includeintrins.h>

#defineucharunsignedchar

#defineuintunsignedint

//待显示图形编码

ucharcodeM[][8]=

{

{0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00}, //1

{0x00,0x38,0x44,0x54,0x44,0x38,0x00,0x00}, //2

{0x00,0x20,0x30,0x38,0x3c,0x3e,0x00,0x00} //3

};

uchari,j;

//主程序

voidmain()

{

P0=0xff;

P1=0xff;

TMOD=0x01; //T0方式1

TH0=(65536-2000)/256; //2ms定时

TL0=(65536-2000)%256;

IT0=1; //下降沿触发

IE=0x83; //允许定时器0、外部0中断

i=0xff; //i的初值设为0xff,加1后将从0开始

while(1);

}

//T0中断控制点阵屏显示

voidShow_Dot_Matrix()interrupt1

{

TH0=(65536-2000)/256;//恢复初值

TL0=(65536-2000)%256;

P0=0xff; //输出位码和段码

P0=~M[i][j];

P1=_crol_(P1,1);

j=(j+1)%8;

}

//INT0中断(定时器由键盘中断启动)

voidKey_Down()interrupt0

{

P0=0xff;

P1=0x80;

j=0;

i=(i+1)%3; //i012中取值,因为只要3个图形

TR0=1;

}

单片机C语言程序设计:8X8LED 点阵显示数字

扩展阅读:定时器控制数码管动态显示程序




关键词: 基础知识    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]