亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
基于AT89c51的16×16點陣設計原理圖+程序
[打印本頁]
作者:
Mr.Ddd
時間:
2020-5-28 02:35
標題:
基于AT89c51的16×16點陣設計原理圖+程序
使用四塊8×8的點陣拼成16×16的點陣,用了兩個譯碼器,只設置了三個字(改字可以用字模轉換器)按鍵控制左移、右移、暫停、啟動。
電路原理圖如下:
51hei.png
(49.31 KB, 下載次數: 41)
下載附件
2020-5-29 01:53 上傳
單片機源程序如下:
/************************************************
16x16點陣漢字滾動顯示
************************************************/
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LA=P1^0; //138譯碼器地址選擇引腳
sbit LB=P1^1;
sbit LC=P1^2;
sbit LD=P1^3;
sbit k1=P3^6; //啟動或暫停按鍵
sbit k2=P3^7; //改變方向按鍵
bit fx=0; //滾動方向
uint index=0; //列掃描索引
uchar code hztab[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空格
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x08,0x04,0x10,0x04,0x20,0x24,0x40,0x24,0xfc,0x24,0xa2,0x24,0x22,0xfd,0x22,0x26, //老
0x42,0x24,0x42,0x2c,0x42,0x14,0x82,0x24,0x1e,0x44,0x00,0x04,0x00,0x04,0x00,0x00,
0x00,0x00,0xe1,0x3f,0x02,0x00,0x0c,0x00,0xf0,0xff,0x00,0x00,0x00,0x40,0xf8,0x47, //師
0x00,0x44,0x00,0x44,0xff,0x7f,0x10,0x44,0x08,0x44,0xf0,0x47,0x00,0x40,0x00,0x00,
0x02,0x08,0x44,0x08,0xa8,0x0f,0x10,0xf8,0x68,0x08,0x86,0x0f,0x00,0x00,0x00,0x01, //好
0x02,0x41,0x01,0x41,0xfe,0x47,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //空格
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
//===================函數聲明====================
void T0_Init(); //定時器0初始化
void delayus(uint us); //延時函數
void keyscan(); //按鍵掃描函數
//====================主程序=====================
void main()
{
uchar i,j;
T0_Init(); //定時器0初始化
while(1)
{
keyscan(); //按鍵掃描
for(i=0;i<16;i++) //點陣16列
{
LA=i&0x01; //用級聯138進行列選
LB=i&0x02;
LC=i&0x04;
LD=i&0x08;
j=index+i; //定位當前要顯示的列
P0=hztab[j*2+1]; //發送點陣數據
P2=hztab[j*2]; //共兩個字節
delayus(100); //延時
P0=P2=0x00; //消影
}
delayus(100); //延時
}
}
//=================定時器0初始化=================
void T0_Init()
{
TMOD=0x01; //定時器0,工作方式1
TH0=(65536-10000)/256; //定數器初值
TL0=(65536-10000)%256; //10ms定時
ET0=1; //打開定時器0中斷允許
EA=1; //打開總中斷允許
TR0=0; //暫不啟動定時器0
}
//===============定時中斷0服務程序===============
void timer0() interrupt 1
{
static uchar tick=0; //嘀嗒計時
TH0=(65536-10000)/256; //重裝裝初值
TL0=(65536-10000)%256; //10ms定時
tick++; //計數
if(tick==5) //5次
{
tick=0; //清0
if(fx==0)index=(index+1)%64; //若方向為左移,則掃描線加1
else index=(index-1+64)%64; //否則掃描線減1
}
}
//===================延時函數====================
void delayus(uint us)
{
while(us--);
}
//=================按鍵掃描函數==================
void keyscan()
{
if(k1==0) //檢測k1是否按下
{
delayus(100); //延時消抖
if(k1==0) //確認k1被按下
{
TR0=~TR0; //定時器啟停反轉
while(k1==0); //等待按鍵松開
}
}
if(k2==0) //檢測k2是否按下
{
delayus(100); //延時消抖
if(k2==0) //確認k2被按下
{
fx=~fx; //方向反轉
while(k2==0); //等待按鍵松開
}
}
}
復制代碼
所有資料51hei提供下載:
16×16點陣.zip
(22.41 KB, 下載次數: 59)
2020-5-28 02:30 上傳
點擊文件名下載附件
源碼+原理圖
下載積分: 黑幣 -5
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1