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

標題: 基于單片機的溫控智能風扇的問題,小白提問希望解答 [打印本頁]

作者: lx843040583    時間: 2017-5-7 18:55
標題: 基于單片機的溫控智能風扇的問題,小白提問希望解答
#include <reg52.h>                 //調用單片機頭文件
#define uchar unsigned char        //無符號字符型 宏定義  變量范圍0~255
#define uint  unsigned int         //無符號整型 宏定義    變量范圍0~65535
#include <intrins.h>
#define RdCommand 0x01 //定義ISP的操作命令
#define PrgCommand 0x02
#define EraseCommand 0x03  
#define Error 1
#define Ok 0
#define WaitTime 0x01 //定義CPU的等待時間
sfr ISP_DATA=0xe2;    //Flash數據寄存器地址(E2h)
sfr ISP_ADDRH=0xe3;   //Flash高字節寄存器地址(E3h)
sfr ISP_ADDRL=0xe4;   //Flash低字節寄存器地址(E4h)
sfr ISP_CMD=0xe5;     //Flash命令模式寄存器地址(E5h)
sfr ISP_TRIG=0xe6;    //Flash命令觸發寄存器地址(E6h)
sfr ISP_CONTR=0xe7;   //ISP/IAP控制寄存器地址(E2h)
sbit dula=P2^6;//U1鎖存器的鎖存端  000001111111 顯示函數11111100000
sbit wela=P2^7;//申明U2鎖存器的鎖存
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};                                          
uchar num;//定時器要用到
void ISP_IAP_enable(void);        //打開ISP,IAP功能
void ISP_IAP_disable(void);       //關閉ISP,IAP功能
void ISPgoon(void);               //公用的觸發代碼
uchar byte_read(unsigned int byte_addr);//字節讀
void SectorErase(unsigned int sector_addr);//扇區擦除
void byte_write(unsigned int byte_addr, unsigned char original_data);//字節寫
void display(); //000033333 顯示函數3333300000

//數碼管段選定義            
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
                                           0x60,0x25,0x39,0x26,0x31,0x71,0xff};         //斷碼
//數碼管位選定義
uchar code smg_we[] = {0xef,0xdf,0xbf,0x7f};
uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};        
uchar smg_i = 3;    //顯示數碼管的個位數
sbit dq   = P2^4;   //18b20 IO口的定義
sbit pwm = P2^3;    //蜂鳴器IO口定義


其中,
//數碼管段選定義            
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
                                           0x60,0x25,0x39,0x26,0x31,0x71,0xff};         //斷碼

是什么意思? 0X28顯示的并不是0吧? 這段話是什么意思呢?斷碼是什么?




作者: xcoter    時間: 2017-5-7 19:27
斷碼,通過控制數碼管上對應燈管亮滅來達到顯示出需要的顯示內容
作者: 維超    時間: 2017-5-7 19:46
1:“斷碼”應是“段碼”的筆誤.
2:0X28就是這里的硬件條件下的“0”的編碼?磮D



作者: lx843040583    時間: 2017-5-7 21:02
維超 發表于 2017-5-7 19:46
1:“斷碼”應是“段碼”的筆誤.
2:0X28就是這里的硬件條件下的“0”的編碼。看圖

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

那這個代碼是什么意思啊
作者: ahshmj    時間: 2017-5-7 21:22
是“段碼”。即便是錯別字也應該知道。
作者: lx843040583    時間: 2017-5-7 21:27
ahshmj 發表于 2017-5-7 21:22
是“段碼”。即便是錯別字也應該知道。

uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
                                           0x60,0x25,0x39,0x26,0x31,0x71,0xff};  
0X28按照樓上那位的圖顯示,是如何顯示出0的呢? 求解答阿大神
作者: ahshmj    時間: 2017-5-8 08:47
有些led數碼管的管腳排列不一樣(不過很少),也有些是線路板設計時,各字段對應的IO沒按順序排(處于商業原因,故意打亂)。

你可以根據你自己的硬件,看看適應那種編碼。如果是常見的LED和按順序排列的段輸出,就可以用常見的段編碼,不過,共陽極和共陰極也是有區別的。
作者: 維超    時間: 2017-5-8 10:27
lx843040583 發表于 2017-5-7 21:27
uchar code smg_du[]={0x28,0xee,0x32,0xa2,0xe4,0xa1,0x21,0xea,0x20,0xa0,
                          ...

作為共陽正向數碼管,要顯示“0”,就是位碼高電平。段碼中的A,B,C,D,E, F要低電平。而原作者的段碼從高到低的排列是E,D,DP,C,G,A,F,B。相應端置低電平就是0。連起來是“00101000”.再轉換成16進制就是0X28了。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1