2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 按键控制8*8led点阵C语言程序 单片机按键控制8X8LED点阵屏显示图形 程序的几个问题...

按键控制8*8led点阵C语言程序 单片机按键控制8X8LED点阵屏显示图形 程序的几个问题...

时间:2023-02-02 07:38:19

相关推荐

按键控制8*8led点阵C语言程序 单片机按键控制8X8LED点阵屏显示图形 程序的几个问题...

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

说明:每次按下K1时,会使8X8LED点阵屏循环显示不同图形。

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

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

//待显示图形编码

uchar code M[][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

};

uchar i,j;

//主程序

void main()

{

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中断控制点阵屏显示

void Show_Dot_Matrix() interrupt 1

{

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

TL0=(65536-2000)%256;

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

P0=~M[ i][j];[ i]

P1=_crol_(P1,1);

j=(j+1)%8;

}

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

void Key_Down() interrupt 0

{

P0=0xff;

P1=0x80;

j=0;

i=(i+1)%3;//i在0,1,2中取值,因

为只要3个图形

问题如下

1.P0=0xff;P1=0xff-------这条语句是端口初始化不?

2.IE=0x83 ---- 1000 0011为什么是这个值?寄存器配置?

3.P0=0xff;

P0=~M[ i][j];

P1=_crol_(P1,1);

j=(j+1)%8;-----------------P0赋初值?P0给值?后面的就看不懂了

4.我用proteus仿真试了下,只有在按键按下的时候,才会显示图形,这样就是外

部中断。那定制器中断有何意义呢?

5.i=(i+1)%3---------为什么要(i+1)%3这样一个表达式再赋值给i呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。