久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4308|回復: 7
打印 上一主題 下一主題
收起左側

單片機按鍵控制8X8LED點陣屏顯示圖形 程序的幾個問題

[復制鏈接]
跳轉到指定樓層
樓主
/*        名稱:按鍵控制8X8LED點陣屏顯示圖形
        說明:每次按下K1時,會使8X8LED點陣屏循環顯示不同圖形。
                  本例同時使用外部中斷和定時中斷。
*/
#include<reg51.h>
#include<intrins.h>
#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呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:332444 發表于 2020-7-6 13:07 | 只看該作者
像這樣顯示圖形根本就用不著使用中斷,若要學習中斷有很多例子是需要使用中斷的理由,如頻率計,中斷型時鐘,中斷通訊等。這個例子的定時器只是用于點陣的延時人眼暫留時間而已,其實用計數延時即可,因為延時有一定范圍,不需要很精確。
回復

使用道具 舉報

板凳
ID:332444 發表于 2020-7-6 13:10 | 只看該作者
3個圖形,每個圖形8個數據,也可以改寫為if(++i>=3)i=0;if(++j>=8)j=0;
回復

使用道具 舉報

地板
ID:332444 發表于 2020-7-6 13:22 | 只看該作者

回復

使用道具 舉報

5#
ID:668004 發表于 2020-7-7 14:12 | 只看該作者
xianfajushi 發表于 2020-7-6 13:10
3個圖形,每個圖形8個數據,也可以改寫為if(++i>=3)i=0;if(++j>=8)j=0;

你技術不錯
回復

使用道具 舉報

6#
ID:332444 發表于 2020-7-7 14:22 | 只看該作者

多謝!玩玩而已,不過是賣油翁的典故,玩多了自然的事。
回復

使用道具 舉報

7#
ID:668004 發表于 2020-7-7 15:34 | 只看該作者
xianfajushi 發表于 2020-7-7 14:22
多謝!玩玩而已,不過是賣油翁的典故,玩多了自然的事。

說的很好
回復

使用道具 舉報

8#
ID:913475 發表于 2021-4-28 11:56 | 只看該作者
您好,我51類似的程序遇到問題:按鍵控制點陣LED ,第二個按鍵不能打斷第一個按鍵,需要等13s時延,請問什么問題呢?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91av在线免费观看 | 欧美成人精品在线 | 中文字幕在线一区 | 亚洲视频免费观看 | 伊人超碰在线 | 久久lu| 国产精品色婷婷久久58 | 国产成人精品一区二 | 在线视频国产一区 | 黄色av网站在线观看 | 日韩中文字幕免费在线 | 久久99久久99 | 日韩在线播放一区 | 欧美日韩中文国产一区发布 | 国产在线观看一区二区 | 最新中文字幕第一页视频 | 在线观看av网站 | 日韩一二区在线 | 九九热久久免费视频 | 国产一区二区在线观看视频 | 国产精品久久久久久一区二区三区 | 欧美午夜激情在线 | 欧美精品成人影院 | 日韩无 | 午夜三级网站 | 精品一区二区三区四区在线 | 九色国产 | 欧美日韩中文字幕在线 | 国产视频一二三区 | 中文成人无字幕乱码精品 | 欧美 日韩 国产 成人 在线 | 欧美成年人视频在线观看 | 亚洲日产精品 | 日本天堂视频 | www.youjizz.com日韩 | 欧美成人一区二免费视频软件 | 亚洲综合色| 久久精品久久久久久 | 殴美成人在线视频 | 九九亚洲| 国产亚洲精品a |