找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4491|回復: 5
打印 上一主題 下一主題
收起左側

51單片機擴展IO口PC口定義位變量怎么做

[復制鏈接]
跳轉到指定樓層
樓主
ID:402376 發(fā)表于 2018-9-29 19:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本人想將PC口的低三位輸出作為LCD1602的RS RW E  3個量,但是sbit RS = PC^0;        //液晶引腳定義sbit RW = PC^1;
sbit EN = PC^2;
這樣Keil報錯了,不是很清楚為什么,我個人覺得應該是地址的問題,希望大神求解。
(控制字在主程序里寫了COM=0x80;)


1111111.png (47.75 KB, 下載次數(shù): 28)

1111111.png

2222.png (244.91 KB, 下載次數(shù): 26)

2222.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:404160 發(fā)表于 2018-9-29 23:42 | 只看該作者
頭文件用的不是對應芯片的。也就是頭文件不對
回復

使用道具 舉報

板凳
ID:387733 發(fā)表于 2018-9-30 07:25 | 只看該作者
sbit是定義特殊功能寄存器的位變量。bit和sbit都是C51擴展的變量類型。也就是說,只有51單片機的特殊功能寄存器可以這樣定義,而8255的端口是不能這樣定義的。要注意的是,51單片機也不是所有特殊功能寄存器都能位定義的,只有地址能被8整除的特殊功能寄存器才可以。
回復

使用道具 舉報

地板
ID:387733 發(fā)表于 2018-9-30 07:36 | 只看該作者
可以先定義:

#define RS  0x01
#define RW 0x02
#define EN 0x04

PC=RS|RW;    // RS=1; RW=1;EN=0;

也很方便的
回復

使用道具 舉報

5#
ID:308437 發(fā)表于 2018-9-30 09:11 | 只看該作者
同意一樓的。你的問題是頭文件錯誤:不是定義變量問題
回復

使用道具 舉報

6#
ID:402376 發(fā)表于 2018-9-30 12:33 | 只看該作者
飛云居士 發(fā)表于 2018-9-29 23:42
頭文件用的不是對應芯片的。也就是頭文件不對

能告訴我是哪一個頭文件不對嗎,新手不是很懂
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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