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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4600|回復(fù): 16
打印 上一主題 下一主題
收起左側(cè)

如果數(shù)碼管段選單片機(jī)IO口是不規(guī)則的,怎么輸出呢?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:410399 發(fā)表于 2018-11-9 11:01 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
最近接觸IAP15w4K61S4的芯片,做一個數(shù)碼管相關(guān)的實(shí)驗(yàn)。芯片的IO口有點(diǎn)散亂,我連好數(shù)碼管寫著程序的時候,發(fā)現(xiàn)8位段選IO口是不規(guī)則的

P2.5,P2.6,P2.7,P7.4                                                //數(shù)碼管位控制IO
P0.4,P0.3,P0.2,P0.1,P0.0,P4.6,P4.5,P7.7                //數(shù)碼管段控制IO


我連的是這樣,求教一下這樣怎么輸出數(shù)碼管,找了挺久,都是P0直接查表的,求教大神!!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:422945 發(fā)表于 2018-11-9 12:15 | 只看該作者
按位操作唄。如果分著寫亂,就做成子函數(shù)或者結(jié)構(gòu)體
回復(fù)

使用道具 舉報

板凳
ID:423533 發(fā)表于 2018-11-9 13:07 | 只看該作者
按位選擇輸出
回復(fù)

使用道具 舉報

地板
ID:410399 發(fā)表于 2018-11-9 13:41 | 只看該作者
jennyli010 發(fā)表于 2018-11-9 12:15
按位操作唄。如果分著寫亂,就做成子函數(shù)或者結(jié)構(gòu)體

嗯嗯,就是有點(diǎn)亂閑麻煩
回復(fù)

使用道具 舉報

5#
ID:245053 發(fā)表于 2018-11-9 13:58 | 只看該作者
這個好辦,段和位各做一個表,每個表的每一個值對應(yīng)你想要輸出的數(shù)據(jù)(這個數(shù)據(jù)要根據(jù)你自己的IO情況編制),查表輸出就可以了 。
回復(fù)

使用道具 舉報

6#
ID:245053 發(fā)表于 2018-11-9 14:01 | 只看該作者
仔細(xì)看了一下,你這個IO配置確實(shí)有點(diǎn)亂,
回復(fù)

使用道具 舉報

7#
ID:63705 發(fā)表于 2018-11-9 14:01 | 只看該作者
同意樓上
回復(fù)

使用道具 舉報

8#
ID:7485 發(fā)表于 2018-11-9 14:15 | 只看該作者
這個簡單,你按照你的段輸出重新重新定位即可。根據(jù)你給出的段輸出IO,P0.4是小數(shù)點(diǎn),P0.3是“8”字的中間一橫,你以此類推。你所謂的P7.7,大概是P4.7吧?

例如顯示“1” ,是P4.7和P4.5(不知道你是高電平還是低電平有效)是10100000,16進(jìn)制就是0A0H(0Xa0)。
回復(fù)

使用道具 舉報

9#
ID:421028 發(fā)表于 2018-11-9 14:29 | 只看該作者
在頭文件宏定義吧,比如#define  DUAN_1 P0.4   #define DUAN_2  P0.3,這樣就有規(guī)律了  
回復(fù)

使用道具 舉報

10#
ID:418333 發(fā)表于 2018-11-9 14:33 | 只看該作者
剛接觸單片機(jī),我也有這個疑問,網(wǎng)上搜索的碼表和自己的情況不同,因?yàn)榇蠹襂O角映射是不一樣的,把別人的拿來用不一定適合自己,實(shí)際上只要搞懂了原理,針腳是可以亂插的,我自己寫了html工具,就可以亂插針腳(自己配置段碼和IO針腳映射),然后自動計算碼表。但是我還沒實(shí)際實(shí)驗(yàn),有空的時候?qū)嶒?yàn)下。



  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <style type="text/css">
  5.         table.gridtable {
  6.                 font-family: verdana,arial,sans-serif;
  7.                 font-size:11px;
  8.                 color:#333333;
  9.                 border-width: 1px;
  10.                 border-color: #666666;
  11.                 border-collapse: collapse;
  12.         }
  13.         table.gridtable th {
  14.                 border-width: 1px;
  15.                 padding: 8px;
  16.                 border-style: solid;
  17.                 border-color: #666666;
  18.                 background-color: #dedede;
  19.         }
  20.         table.gridtable td {
  21.                 border-width: 1px;
  22.                 padding: 8px;
  23.                 border-style: solid;
  24.                 border-color: #666666;
  25.                 background-color: #ffffff;
  26.         }
  27.         table.gridtable caption {
  28.                 border-width: 1px 1px 0px 1px;
  29.                 padding: 8px;
  30.                 border-style: solid;
  31.                 border-color: #666666;
  32.                 font-weight: bold;
  33.                 background-color: #dedede;
  34.         }
  35. pre {
  36.   background:#f5f5f5;
  37.   color:#333;
  38.   padding:10px;
  39.   border: 1px solid #ccc;
  40.   font-size: 13px;
  41.   line-height: 1.4;
  42.   font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
  43.   border-radius: 4px;
  44.   overflow: auto;
  45. }
  46. </style>
  47. <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script>
  48. </head>
  49. <body>
  50. <table class="gridtable" name="pin">
  51.         <caption>數(shù)碼管配置</caption>
  52.         <tr>
  53.                 <th>段碼</th><th>段腳</th><th>IO腳</th>
  54.         </tr>
  55.         <tr>
  56.                 <td>a</td> <td>1</td>
  57.                 <td><select value="0" name="a"></select></td>
  58.         </tr>                                          
  59.         <tr>                                          
  60.                 <td>b</td> <td>2</td> <td><select value="1" name="b"></select></td>
  61.         </tr>                                          
  62.         <tr>                                          
  63.                 <td>c</td> <td>4</td> <td><select value="2" name="c"></select></td>
  64.         </tr>                                          
  65.         <tr>                                          
  66.                 <td>d</td> <td>5</td> <td><select value="3" name="d"></select></td>
  67.         </tr>                                          
  68.         <tr>                                          
  69.                 <td>e</td> <td>6</td> <td><select value="4" name="e"></select></td>
  70.         </tr>                                          
  71.         <tr>                                          
  72.                 <td>f</td> <td>7</td> <td><select value="5" name="f"></select></td>
  73.         </tr>                                          
  74.         <tr>                                          
  75.                 <td>g</td> <td>9</td> <td><select value="6" name="g"></select></td>
  76.         </tr>                                          
  77.         <tr>                                          
  78.                 <td>p</td><td>10</td><td><select value="7" name="p"></select></td>
  79.         </tr>
  80. </table>
  81. <br/>
  82. 字符與段碼映射表:<input type="button" value="計算" id="calc"></input><br/><br/>
  83. <textarea style="height:100px;" id="code_map">
  84. 0:abcdef
  85. 1:bc
  86. 2:abged
  87. 3:abgcd
  88. 4:fgcb
  89. 5:afgcd
  90. 6:afeddcg
  91. 7:abc
  92. 8:abcdefg
  93. 9:gfabcd
  94. A:efabcg
  95. b:fedcg
  96. C:afed
  97. D:gcde
  98. E:afedg
  99. F:afeg
  100. </textarea>
  101. <pre id="code">

  102. </pre>
  103. <script>
  104. var template = "{7}{6}{5}{4}{3}{2}{1}{0}";

  105. var option = "";
  106. for(var i=0;i<8;i++){
  107.         option += '<option value="'+i+'">'+i+'</option>';
  108. }
  109. $("table[name=pin] select").each(function(idx, ele){
  110.         $(ele).html(option);
  111.         $(ele).val(idx);
  112. });

  113. function parse(){
  114.         var code_map_list = $("#code_map").val().split("\n");
  115.         var pin_map = {};
  116.         $("table[name=pin] select[name]").each(function(){
  117.                 var _this = $(this);
  118.                 pin_map[_this.attr('name')] = _this.val();
  119.         });
  120.         var table_positive = [];
  121.         var table_negative = [];
  122.         var char_positive = [];
  123.         var char_negative = [];
  124.         $.each(code_map_list,function(idx,code_map){
  125.                 code_map = $.trim(code_map);
  126.                 var split_idx = code_map.indexOf(":");
  127.                 if(code_map == "" || split_idx == -1){return;}
  128.                 var _c = code_map.split(":");
  129.                 var _char = _c[0];
  130.                 var _map_list = _c[1].split("");
  131.                 var bin_positive = template;//共陽極,低電平有效
  132.                 var bin_negative = template;//共陰極,高電平有效
  133.                 $.each(_map_list,function(_idx, _map){
  134.                         var pin = pin_map[_map];
  135.                         if(pin == undefined){alert("錯誤的段碼:"+_map);throw "錯誤的段碼:"+_map;}
  136.                         bin_positive = bin_positive.replace("{"+pin+"}",0);
  137.                         bin_negative = bin_negative.replace("{"+pin+"}",1);
  138.                 });
  139.                 bin_positive = bin_positive.replace(/\{\d\}/g,1);
  140.                 bin_negative = bin_negative.replace(/\{\d\}/g,0);
  141.                 var _p = parseInt(bin_positive,2).toString(16);
  142.                 var _n = parseInt(bin_negative,2).toString(16);
  143.                 table_positive.push(_p);
  144.                 table_negative.push(_n);
  145.                 char_positive.push({c:_char,hex:_p});
  146.                 char_negative.push({c:_char,hex:_n});
  147.         });
  148.        
  149.         var text = "//共陽碼表\nchar code table_positive[] = {";
  150.         $.each(table_positive,function(idx,hex){
  151.                 text += idx == 0 ? "0x" + hex : ", 0x" + hex;
  152.         });
  153.         text += "};\n";
  154.        
  155.         text += "//共陰碼表\nchar code table_negative[] = {";
  156.         $.each(table_negative,function(idx,hex){
  157.                 text += idx == 0 ? "0x" + hex : ", 0x" + hex;
  158.         });
  159.         text += "};\n\n";
  160.        
  161.         $.each(char_positive,function(idx,char_map){
  162.                 text += "char code positive_"+char_map['c'] + " = 0x" + char_map['hex'] + ";\n";
  163.         });
  164.         text += "\n";
  165.        
  166.         $.each(char_negative,function(idx,char_map){
  167.                 text += "char code negative_"+char_map['c'] + " = 0x" + char_map['hex'] + ";\n";
  168.         });
  169.        
  170.         console.info(text);
  171.         $("pre#code").text(text);
  172. }

  173. parse();

  174. $("#calc").click(parse);
  175. </script>
  176. </body>
  177. </html>
復(fù)制代碼

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

11#
ID:410399 發(fā)表于 2018-11-9 14:39 | 只看該作者
pcf2000 發(fā)表于 2018-11-9 14:01
仔細(xì)看了一下,你這個IO配置確實(shí)有點(diǎn)亂,

嘿嘿嘿,配置的難受現(xiàn)在,不過先做著

  1.         j = LedOut[3];               
  2.         for(i = 0; i < 8; i++)               
  3.         {
  4.                 k[i] = j & 0x01;               
  5.                 j = j >> 1;                               
  6.         }
  7.         duanxuan(k[8]);                               
  8.        
  9.         j = LedOut[2];               
  10.         for(i = 0; i < 8; i++)
  11.         {
  12.                 k[i] = j & 0x01;
  13.                 j = j >> 1;
  14.         }
  15.         duanxuan(k[8]);

  16.        
  17. }
  18. void duanxuan(uchar code k[8])               
  19. {
  20.         sd1 = k[0];
  21.         sd2 = k[1];
  22.         sd3 = k[2];
  23.         sd4 = k[3];
  24.         sd5 = k[4];
  25.         sd6 = k[5];
  26.         sd7 = k[6];
  27.         sd8 = k[7];       
  28. }
復(fù)制代碼


現(xiàn)在寫成這樣,sd對應(yīng)段選IO,這樣做可以不,再做2個表會不會麻煩一點(diǎn)的
回復(fù)

使用道具 舉報

12#
ID:409939 發(fā)表于 2018-11-9 15:21 | 只看該作者
建個位域結(jié)構(gòu),把端口號填進(jìn)去。應(yīng)該能直接可以干死的。簡單。
回復(fù)

使用道具 舉報

13#
ID:378199 發(fā)表于 2018-11-9 15:22 | 只看該作者
按位操作輸出
回復(fù)

使用道具 舉報

14#
ID:213173 發(fā)表于 2018-11-9 15:57 | 只看該作者
//定義數(shù)碼管段控制IO口和數(shù)碼管段碼數(shù)組
sbit code0=P0^4;                                       
sbit code1=P0^3;
sbit code2=P0^2;
sbit code3=P0^1;
sbit code4=P0^0;
sbit code5=P4^6;
sbit code6=P4^5;
sbit code7=P7^7;       
uchar  code table[]={//0~F
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71};
//寫一個8位數(shù)據(jù)函數(shù)
void PX(uchar i)
{   
    code0=i&0x01;i>>=1;       
    code1=i&0x01;i>>=1;
    code2=i&0x01;i>>=1;
    code3=i&0x01;i>>=1;
    code4=i&0x01;i>>=1;
    code5=i&0x01;i>>=1;
    code6=i&0x01;i>>=1;
    code7=i&0x01;
}
//調(diào)用時PX(table[X]);就是對控制IO口賦值

評分

參與人數(shù) 1黑幣 +30 收起 理由
uaas + 30 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

15#
ID:275671 發(fā)表于 2018-11-9 16:02 | 只看該作者

P77=ACC7
P45=ACC6
P46=ACC5
P00=ACC4
P01=ACC3
P02=ACC2
P03=ACC1
P04=ACC0
回復(fù)

使用道具 舉報

16#
ID:410399 發(fā)表于 2018-11-9 16:31 | 只看該作者
我上一條回復(fù)是被吃了嗎,2個小時了
回復(fù)

使用道具 舉報

17#
ID:123289 發(fā)表于 2018-11-10 17:08 | 只看該作者
本來就不需要規(guī)則!
否則PCB排版難度加大。通常是任意排放!
而你自己必須明白,再輸入顯示時,要做一個就換程序,將規(guī)則的字庫等變換成符合LED排列陣列,而后再送顯。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品九九九 | 亚洲免费一区二区 | 欧美精品v | 99爱在线视频 | 91社区在线观看高清 | 久久69精品久久久久久久电影好 | 亚洲一区二区精品视频 | 国产精品久久亚洲7777 | 精品国产一区二区三区成人影院 | 国产精品永久免费 | 91精品国产91综合久久蜜臀 | 国产精品亚洲综合 | 久久综合九色综合欧美狠狠 | 岛国av免费观看 | 在线观看 亚洲 | 国产欧美一区二区精品久导航 | 四虎成人免费视频 | 99九色| 精久久 | 亚洲人va欧美va人人爽 | 午夜精品 | 久久久久91| 99久久精品国产一区二区三区 | 少妇淫片aaaaa毛片叫床爽 | 国产探花 | 干出白浆视频 | 日韩一三区| 91新视频 | 国产精品亚洲精品日韩已方 | 精品久久久久久18免费网站 | 中文在线a在线 | 精品国产一区二区三区久久久蜜月 | 欧美一区二区在线播放 | 免费激情av | 日韩av一区二区在线观看 | 久久一区二区三区四区 | 曰批视频在线观看 | 中文字幕一区二区三区在线乱码 | 蜜臀久久99精品久久久久久宅男 | 国产一区成人 | 欧美黑人国产人伦爽爽爽 |