久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機數碼管和點陣分時顯示源程序
[打印本頁]
作者:
吳江濤
時間:
2019-7-26 20:17
標題:
51單片機數碼管和點陣分時顯示源程序
這幾天做了個學長交代的任務,讓數碼管顯示20190520,點陣顯示“電”字,
并且要用按鍵控制點陣的移動,想了幾天,終于想出來了,和大家分享一下,
希望對大家有幫助,話不多說,上圖,
WIN_20190726_20_03_15_Pro.jpg
(198.68 KB, 下載次數: 47)
下載附件
2019-7-26 20:10 上傳
新建文件夾 (3).rar
(1.24 MB, 下載次數: 25)
2019-7-26 20:14 上傳
點擊文件名下載附件
內含我用的板子的原理圖pdf
下載積分: 黑幣 -5
代碼如下
我用的板子的原理圖在附件中
單片機源程序如下:
#include <reg52.h>
#include <intrins.h>
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
sbit duan=P1^7;
sbit wei=P1^6;
sbit SER=P1^0; //數據輸入端
sbit SH=P1^2; //收到上升沿鎖存數據
sbit ST=P1^1; //收到上升沿,輸出數據
int z1[]={0xef,0x83,0xab,0x83,0xab,0x83,0x6f,0x0f};//點陣橫向接收的數據
int x[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //點陣縱向接收的數據</div><div> int j=0;
void delayms(int i) //延時函數
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<40;k++);
}</div><div> void shu(void) //數碼管顯示20190520
{
int i=0;
char d[]={0x3f,0x5b,0x6d,0x3f,0x6f,0x06,0x3f,0x5b};
char w[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
while(1)
{
for(i=0;i<8;i++)
{
duan=1; // *****
P0=0x00; // 消
// delayms(1);// ****
duan=0; // 影
P0=0xff; //消影
wei=1;
P0=w[i];
wei=0;
P0=0x00; //消影
// delayms(1);
duan=1;
P0=d[i];
duan=0;
delayms(1);
P0=0x00;
//消影
}
wei=1; //***********
P0=0xff; //*****
wei=0; //解決點陣數碼管同時顯示有一個數更亮
duan=1; //
P0=0x00; //
duan=0; //
break;
}
}
void qidongdianzhen(int i)
{
int Bit;
SH=1;
for(Bit=0;Bit<8;Bit++)
{
if(i&0x80)
SER=1;
else
SER=0;
i=i<<1;
SH=0;
_nop_();_nop_();
SH=1;
}
ST=0;
_nop_();
_nop_();
ST=1;</div><div> }
void shangyi()
{
int temp,i;
temp=z1[0];
for(i=0;i<7;i++)
{
z1[i]=z1[i+1] ; //調換數組內元素的順序來改變點陣顯示
}
z1[7]=temp;
}
void xiayi()
{
int temp,i;
temp=z1[7];
for(i=0;i<7;i++)
{
z1[7-i]=z1[6-i]; //調換數組內元素的順序來改變點陣顯示
}
z1[0]=temp;</div><div>
}
void zuoyi()
{
int i;
for(i=0;i<8;i++)
{
z1[i]=_cror_(z1[i],1); //將數組內每一個數的值按位右移
} }
void youyi()
{
int i;
for(i=0;i<8;i++)
{
z1[i]=_crol_(z1[i],1); //將數組內每一個數的值按位左移
}
}
void dian()
{
int i;
for(i=0;i<8;i++)
{
P0=z1[i];
qidongdianzhen(x[i]);
delayms(1); //改變亮和滅的比列來提高亮度
qidongdianzhen(0x00); //點陣消影
}
}
void main()
{
int i; //先關閉數碼管
duan=1;
P0=0x00;
duan=0;
wei=1;
P0=0xff;
wei=0;
while(1)
{
shu();
if (k3==0)
{
j=0;
shangyi();
while(j<10) //主要起延時作用
{
for(i=0;i<8;i++)
{
P0=z1[i];
qidongdianzhen(x[i]);
delayms(1); //改變亮和滅的比列來提高亮度
qidongdianzhen(0x00);
}
shu();
j++;
}
}
if (k4==0)
{
j=0;
xiayi();
while(j<10) //主要起延時作用
{
for(i=0;i<8;i++)
{
P0=z1[i];
qidongdianzhen(x[i]);
delayms(1); //改變亮和滅的比列來提高亮度
qidongdianzhen(0x00);
}
shu();
j++;
}
}
if (k1==0)
{
j=0;
zuoyi();
while(j<10) //主要起延時作用
{
for(i=0;i<8;i++)
{
P0=z1[i];
qidongdianzhen(x[i]);
delayms(1); //改變亮和滅的比列來提高亮度
qidongdianzhen(0x00);
}
shu();
j++;
}
}
if (k2==0)
{
j=0;
youyi();
while(j<10) //主要起延時作用
{
for(i=0;i<8;i++)
{
P0=z1[i];
qidongdianzhen(x[i]);
delayms(1); //改變亮和滅的比列來提高亮度
qidongdianzhen(0x00);
}
shu();
j++;
}
} dian(); }
}
復制代碼
作者:
吳江濤
時間:
2019-7-26 20:21
可能我的注釋格式有點不對,導致顯示不對,所以可以把注釋刪了用
作者:
吳江濤
時間:
2019-7-27 16:09
改了幾次終于沒有亂碼了,開心
作者:
51hei團團
時間:
2019-7-28 00:49
很不錯的思路
作者:
菲菲不吃肉
時間:
2020-7-19 15:39
為什么我的代碼寫出來沒有效果
作者:
Jeff_BlindCat
時間:
2020-7-19 20:43
硬件互聯(lián)是基礎,
思路創(chuàng)新無界屬,
范例引得共鳴意,
你追我趕新征途。
作者:
3486635230
時間:
2021-3-27 07:58
一路下來全是delay,沒有工程實用價值
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产亚洲精品成人av久久ww
|
亚洲综合色自拍一区
|
亚洲视频免费观看
|
欧美大片一区
|
国产精品久久精品
|
久久9热
|
久久久久久99
|
成人免费视频网站在线看
|
日韩电影免费在线观看中文字幕
|
性高湖久久久久久久久3小时
|
欧美一区二区三区
|
国产精品高潮呻吟久久av野狼
|
国产精品美女久久久久久免费
|
国产综合久久
|
久久久久久艹
|
亚洲成人免费网址
|
亚洲小说图片
|
在线视频日韩精品
|
99日韩
|
中文字字幕一区二区三区四区五区
|
久久天堂
|
精品日韩一区二区
|
成人欧美一区二区三区在线播放
|
成人亚洲精品
|
中文字字幕一区二区三区四区五区
|
日韩精品一区在线
|
久久国产电影
|
99一区二区
|
欧美亚洲国语精品一区二区
|
av电影一区二区
|
美女操网站
|
caoporn免费在线视频
|
久久精品国产99国产精品
|
日韩欧美在线不卡
|
h小视频
|
av激情在线
|
91在线观看网址
|
人人射人人
|
久久精品色视频
|
四虎在线观看
|
亚洲人成网亚洲欧洲无码
|