欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2380|回復: 3
收起左側

新人有一些數碼管問題不懂

[復制鏈接]
ID:240591 發表于 2017-10-20 12:54 | 顯示全部樓層 |閱讀模式
#include<reg52.h>            //52系列單片機頭文件
#define uchar unsigned char
#define uint unsigned int
uint x,y;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};            //共陰極數碼管編碼
void display(uchar,uchar,uchar,uchar);  //聲明子函數
void delay(int);                      //聲明子函數
void main()
{
while(1)
{
display(1,2,3,4);          //主程序始終調用數碼管顯示子程序
}
}
void display(uchar a,uchar b,uchar c,uchar d)
{
P2=0xef;                               
P0=table[a];                       //給第一個數碼管送"a"
delay(1);                          //延時1ms                       
P2=0xdf;
P0=table;                      //給第二個數碼管送"b"
delay(1);                         //延時1ms
P2=0xbf;
P0=table[c];                      //給第三個數碼管送"c"
delay(1);                         //延時1ms
P2=0x7f;                          
P0=table[d];                      //給第三個數碼管送"d"
delay(1);                         //延時1ms
}
void delay(uint z)                   //延時子函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
我不懂每個‘’P2=‘’的意思
還有那個定義的   abcd是不是對應的就是
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};   
這里面的前4個
數碼管.jpg
回復

使用道具 舉報

ID:229106 發表于 2017-10-20 19:17 | 顯示全部樓層
p2的不同賦值對應打開不同的數碼管位選,abcd對應在主函數中是數組的2到5位,而且你的顯示函數里面有一個明顯的錯誤,是table[b]才對
回復

使用道具 舉報

ID:201949 發表于 2017-10-20 19:28 | 顯示全部樓層
比如 P2=0xbf ,就是讓單片機P2口  P2.7-P2.0的8個引腳輸出的電平依次為1011 1111,即讓P2.6這個端口輸出低電平,此時第3位數碼管亮。abcd應該對應的是數組里的第二到第五個,因為數組從0開始的。
回復

使用道具 舉報

ID:137239 發表于 2017-10-20 19:51 | 顯示全部樓層
這是數碼管動態顯示,P0口輸出段選信號,就是讓數碼管顯示數字,P2口控制位選,就是讓那個數碼管顯示。樓主說的“abcd”是十六進制,分別對應10、11、12、13。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表