欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
1602自編.C(51): error C129: missing ';' before 'main'求大神拯救
[打印本頁]
作者:
三賢人
時間:
2020-2-16 00:09
標題:
1602自編.C(51): error C129: missing ';' before 'main'求大神拯救
程序源碼如下 報錯位置在主函數main附近 看啦2小時不知錯在哪里 跪求大神指點迷境
#include<reg52.h>
sbit LCD1602_RS=P2^4;
sbit LCD1602_RW=P2^5;
sbit LCD1602_EN=P2^6;
sbit LCD1602_DB=P0;
unsigned int i;
unsigned char code shuzu1[]="1234567890123456";
unsigned char code shuzu2[]="9876543210987654";
void Read_Busy() //忙檢測函數,判斷bit7是0,允許執行;1禁止
{
unsigned char sta; //
LCD1602_DB = 0xff;
LCD1602_RS = 0;
LCD1602_RW = 1;
do
{
LCD1602_EN = 1;
sta = LCD1602_DB;
LCD1602_EN = 0; //使能,用完就拉低,釋放總線
}while(sta & 0x80);
}
void Lcd1602_Write_Cmd(unsigned char cmd) //寫命令
{
Read_Busy();//忙檢測函數,判斷bit7是0,允許執行;1禁止
LCD1602_RS = 0;//RS數據命令選擇RS=1數據 RS=0命令
LCD1602_RW = 0;//讀寫選擇 RW=1讀取 RW=0寫
LCD1602_DB = cmd;//命令放到P0(假設)上
LCD1602_EN = 1;//*****************使能信號 =1開始工作
LCD1602_EN = 0; //*****************使能信號 =1開始工作
}
void Lcd1602_Write_Data(unsigned char dat) //寫數據
{
Read_Busy();//忙檢測函數,判斷bit7是0,允許執行;1禁止
LCD1602_RS = 1;//RS數據命令選擇RS=1數據 RS=0命令
LCD1602_RW = 0;//讀寫選擇 RW=1讀取 RW=0寫
LCD1602_DB = dat;//數據放到P0(假設)上
LCD1602_EN = 1;//使能開
LCD1602_EN = 0;//使能關
}
void InitLcd1602() //1602初始化 共5組初始化寄存器
{
Lcd1602_Write_Cmd(0x38); //打開,5*8,8位數據 00111000
Lcd1602_Write_Cmd(0x0c); //00001100后三位表示 開顯示 不顯光標 光標不閃爍
Lcd1602_Write_Cmd(0x06); //00000110 //寫一個字符后地址指針加一
Lcd1602_Write_Cmd(0x01); //清屏
}
viod main()
{
InitLcd1602();
for(i = 0; i < 16; i++);
{
Lcd1602_Write_Data(shuzu1[i]);
}
void Lcd1602_Write_Cmd(0x80+0x40);
for(i = 0; i < 16; i++);
{
Lcd1602_Write_Data(shuzu2[i]);
}
while(1);
}
作者:
三賢人
時間:
2020-2-16 01:27
不好意思 大半夜獻丑了 字母拼錯了
作者:
csmyldl
時間:
2020-2-16 01:55
main前面的單詞改為void 倒數第7行的void去掉
作者:
gd2051
時間:
2020-2-16 02:15
程序到這個地方有問題!!!
viod main() 改成=》 void main()
主函數里面
void Lcd1602_Write_Cmd(0x80+0x40); 去掉 void =》Lcd1602_Write_Cmd(0x80+0x40);
祝你成功!!!!!
作者:
鐘志偉
時間:
2020-2-16 02:46
我覺得主函數那里發數據有誤,樓主可以參考一下我用過的驅動程序!
#include <reg52.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_data P0
sbit LCD1602_RS=P2^6;
sbit LCD1602_RW=P2^5;
sbit LCD1602_EN= P2^7;
void LCD1602_Init();
void LCD1602_Write_cmd(uchar cmd);
void LCD1602_Write_data(uchar dat);
void LCD1602_display();
uchar code table0[]="STC";
uchar code table1[]="ARM";
void delay(uint a)
{
uint i,j;
for (i=a;i>0;i--)
for (j=110;j>0;j--);
}
void LCD1602_Write_cmd(uchar cmd)//寫指令函數
{
LCD1602_RS=0;//寫指令
LCD1602_RW=0;//寫操作
LCD1602_data=cmd;
delay(5);
LCD1602_EN=1;
LCD1602_EN=0;
}
void LCD1602_Write_data(uchar dat)//寫數據函數
{
LCD1602_RS=1;//寫數據
LCD1602_RW=0;//寫操作
LCD1602_data=dat;
delay(5);
LCD1602_EN=1;
LCD1602_EN=0;
}
void LCD1602_Init()
{
LCD1602_Write_cmd(0x38);//8位數據,雙列,5X7字形
LCD1602_Write_cmd(0x0c);//開啟顯示屏,關光標,光標不閃爍
LCD1602_Write_cmd(0x06);//顯示地址遞增,即寫一個數據后,顯示位置右移一位
LCD1602_Write_cmd(0x01);//清屏
}
void LCD1602_display(void)//顯示函數
{
uchar a,b;
LCD1602_Init();
LCD1602_Write_cmd(0x80);
for(a=0;a<3;a++)
{
LCD1602_Write_data(table0[a]);
delay(200);
}
LCD1602_Write_cmd(0x80+0x40);
for(b=0;b<3;b++)
{
LCD1602_Write_data(table1[b]);
delay(200);
}
}
void main()
{
LCD1602_Init();
LCD1602_display();
while(1);
}
復制代碼
作者:
wulin
時間:
2020-2-16 05:44
樓主錯得不是一兩處,抄的不認真,你對比一下就明白。
無標題.jpg
(91.36 KB, 下載次數: 32)
下載附件
2020-2-16 05:37 上傳
#include<reg52.h>
sbit LCD1602_RS=P2^4;
sbit LCD1602_RW=P2^5;
sbit LCD1602_EN=P2^6;
//sbit LCD1602_DB=P0;
<font color="#ff0000">#define LCD1602_DB P0</font>
unsigned int i;
unsigned char code shuzu1[]="1234567890123456";
unsigned char code shuzu2[]="9876543210987654";
void Read_Busy() //忙檢測函數,判斷bit7是0,允許執行;1禁止
{
unsigned char sta; //
LCD1602_DB = 0xff;
LCD1602_RS = 0;
LCD1602_RW = 1;
do
{
LCD1602_EN = 1;
sta = LCD1602_DB;
LCD1602_EN = 0; //使能,用完就拉低,釋放總線
}while(sta & 0x80);
}
void Lcd1602_Write_Cmd(unsigned char cmd) //寫命令
{
Read_Busy();//忙檢測函數,判斷bit7是0,允許執行;1禁止
LCD1602_RS = 0;//RS數據命令選擇RS=1數據 RS=0命令
LCD1602_RW = 0;//讀寫選擇 RW=1讀取 RW=0寫
LCD1602_DB = cmd;//命令放到P0(假設)上
LCD1602_EN = 1;//*****************使能信號 =1開始工作
LCD1602_EN = 0; //*****************使能信號 =1開始工作
}
void Lcd1602_Write_Data(unsigned char dat) //寫數據
{
Read_Busy();//忙檢測函數,判斷bit7是0,允許執行;1禁止
LCD1602_RS = 1;//RS數據命令選擇RS=1數據 RS=0命令
LCD1602_RW = 0;//讀寫選擇 RW=1讀取 RW=0寫
LCD1602_DB = dat;//數據放到P0(假設)上
LCD1602_EN = 1;//使能開
LCD1602_EN = 0;//使能關
}
void InitLcd1602() //1602初始化 共5組初始化寄存器
{
Lcd1602_Write_Cmd(0x38); //打開,5*8,8位數據 00111000
Lcd1602_Write_Cmd(0x0c); //00001100后三位表示 開顯示 不顯光標 光標不閃爍
Lcd1602_Write_Cmd(0x06); //00000110 //寫一個字符后地址指針加一
Lcd1602_Write_Cmd(0x01); //清屏
}
//viod main()
<font color="#ff0000">void main()</font>
{
InitLcd1602();
<font color="#ff0000"> Lcd1602_Write_Cmd(0x80);</font>
// for(i = 0; i < 16; i++);
<font color="#ff0000"> for(i = 0; i < 16; i++)</font>
{
Lcd1602_Write_Data(shuzu1[i]);
}
// void Lcd1602_Write_Cmd(0x80+0x40);
<font color="#ff0000"> Lcd1602_Write_Cmd(0x80+0x40);</font>
// for(i = 0; i < 16; i++);
<font color="#ff0000"> for(i = 0; i < 16; i++)</font>
{
Lcd1602_Write_Data(shuzu2[i]);
}
while(1);
}
復制代碼
作者:
angmall
時間:
2020-2-16 07:39
這里錯了
viod main()
改成這樣 void main()
作者:
ankangyu
時間:
2020-2-16 07:40
把for循環 小括號 后面的 ; 去掉試試,兩個都要去掉
作者:
xusheng656
時間:
2020-2-16 08:29
viod main()
{
InitLcd1602();
for(i = 0; i < 16; void寫反了
作者:
banalsheep
時間:
2020-2-16 09:57
不像自編的。。。
作者:
紫紅君的盛夏
時間:
2020-2-16 13:37
void main
作者:
lyl44
時間:
2020-2-16 18:11
void拼錯了
作者:
。。jj
時間:
2020-2-16 18:42
本帖最后由 。。jj 于 2020-2-16 19:14 編輯
樓主的程序除了主函數的void main錯誤之外,應該把倒數第7行的void刪掉,在程序中使用函數是只需要寫函數名就可以了,不需要加void,在寫1602的寫命令和寫數據的程序時建議加一個延時程序,不要直接寫,樓主這樣寫可能會出錯,建議加個延時。
void dealy(unsigned int c)
{
unsigned int a,b;
for(;c>0;c--)
{
for(b=199;b>0;b--);
for(a=1;a>0;a--);
}
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1