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

標題: 51單片機引腳使用問題 [打印本頁]

作者: 1192833874    時間: 2022-4-6 19:44
標題: 51單片機引腳使用問題
我這里有一堆對單個引腳的操作代碼
但是現在我要對多個引腳重復操作這些代碼

有沒有方法能循環遍歷引腳?
或者只能重復寫大量代碼,對每個代碼塊里的引腳單獨定義?

作者: lkc8210    時間: 2022-4-6 22:46
你可以把他們組合起來

void IO_out(uchar dat)
{
  P34=dat&0x80;
  P30=dat&0x40;
  P12=dat&0x20;
  P10=dat&0x10;
  P32=dat&0x08;
  P33=dat&0x04;
  P13=dat&0x02;
  P11=dat&0x01;
}
IO_out(0xFF)就是全1
char可同時控制8支腳
int 16支
long32支
作者: cnos    時間: 2022-4-6 22:52
他的意思是可以像函數調用那樣靈活的選中某個引腳。

51內核的基本指令不支持這樣的操作。不管是MOV 指令還是SETB指令,都只能以直接地址的方式訪問相應的IO口整個口或者是單個的bit。不能使用@Ri,或者@A,或者@DPTR的方式去訪問SFR和bit。所以底層上沒法直接支持。

但是你可以自己寫個函數里面寫上一堆  if  或者 switch 來實現。
作者: man1234567    時間: 2022-4-7 08:15
直接放上代碼,直接提出問題,大家中有猜的興趣的未必是你想要的
作者: yzwzfyz    時間: 2022-4-8 16:06
有!
但是,你的現有代碼大概率是不能用的。原因,參見板凳的解釋。
不過,通過一些編程技巧,能實現你的目標,當然程序就比板凳提出的方案復雜多了。
作者: 188610329    時間: 2022-4-8 16:19
原則上, 在51核的前提下, "復寫大量代碼,對每個代碼塊里的引腳單獨定義" 無論是代碼量, 還是執行效率反而會比你 強行弄出一個 "函數" 更高效,更精簡。





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一级毛片免费 | 欧美日韩综合视频 | 超黄视频网站 | 日韩伦理一区二区 | 国产精品久久久乱弄 | 美女国内精品自产拍在线播放 | av网站观看| 中文字幕日韩欧美一区二区三区 | 99亚洲精品 | 日p视频免费看 | 日韩在线中文 | 手机av网 | 国产91丝袜在线播放 | 久久精品电影 | 国产一级片免费看 | 欧美久久一区二区三区 | 国产毛片久久久久久久久春天 | 国产一区二区影院 | 日韩一区二区三区在线视频 | 一区二区三区国产 | 日本午夜视频 | 亚洲 自拍 另类 欧美 丝袜 | 综合久久亚洲 | 欧美特级黄色 | 青青草亚洲 | 日韩av在线一区二区三区 | 日韩在线免费播放 | 久久久精品一区二区 | www.jizzjizz| 日韩精品一区二区三区中文在线 | 黄免费观看视频 | 国产成人网 | www.一区二区三区 | 亚洲美女在线一区 | 亚洲精品久久久久久国产精华液 | 国产一区二区三区免费 | 成人精品鲁一区一区二区 | 日韩国产一区二区 | 97超碰在线免费 | 99精品视频在线观看免费播放 | 免费观看成人鲁鲁鲁鲁鲁视频 |