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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

error C141: syntax error near 'void'求助解決單片機C語言代碼錯誤

[復制鏈接]
跳轉到指定樓層
樓主
#include<reg52.h>
#include<intrins.h>
unsigned char code cdis1[]={"SPEED:"};
unsigned char code cdis2[]={"r/min"};
sbit LCD_RS=P2^6;//寄存器選擇位將RS位定義為P2.6引腳
sbit LCD_RW=P2^5;//讀寫選擇位將RW位定義為P2.5引腳
sbit LCD_EN=P2^7;//使能信號位將EN位定義為P2.7引腳
bit sec=0;
unsigned char msec=0,Hdata=0,Ldata=0,Count=0;
unsigned long temp=0;
unsigned char data display[]={0x00,0x00,0x00,0x00,0x00};
char code reserve[3] _at_ 0x3b;//保留0x3b開始的3個字節
/*********************************************************
us延時函數
*********************************************************/
void delayNOP()
{
_nop_();
        _nop_();
_nop_();
_nop_();
}
/*********************************************************
ms延時函數
*********************************************************/
void delayms(unsigned int ms)
{
unsigned char n;
while(ms--)
{
for(n=0;n<114;n++);}
}
/**********************************************************
檢查LCD忙狀態lcd_busy為1時忙等待。
lcd-busy為0時,閑可寫指令與數據。
**********************************************************/
bit lcd_busy()
{
bit result;
LCD_RS=0;//根據規定RS為低電平RW為高電平時可以讀狀態
LCD_RW=1;
LCD_EN=1;//EN=1才允許讀寫
delayNOP();//空操作給硬件反應時間
result=(bit)(P0&0x80);//將忙碌標志電平賦給P0.7
LCD_EN=0;//將E恢復低電平
return(result);
}
/**********************************************************寫指令數據到LCDRS=LRW=LE=高脈沖D0-D7=指令碼。
**********************************************************/
void lcd_wcmd(unsigned char cmd)
{
while(lcd_busy());//如果忙就等待
LCD_RS=0;//根據規定RS和R/W同時為低電平時可以寫入指令
LCD_RW=0;
LCD_EN=1;//E置低電平(寫指令時E為高脈沖就是讓E從0到1發生正跳變所以應先置"0")
P0=cmd;//將數據送入P0口即寫入指令或地址
delayNOP();//空操作給硬件反應時間
LCD_EN=0;//當由高電平跳變成低電平時液晶模塊開始執行命令
}
/**********************************************************
將數據(字符的標準ASCII碼)寫入液晶模塊
**********************************************************/
void lcd_wdat(unsigned char dat)
{
while(lcd_busy());
LCD_RS=1;//RS為高電平RW為低電平時可以寫入數據
LCD_RW=0;
LCD_EN=1;
P0=dat;//將數據送入P0口即將數據寫入液晶模塊
delayNOP();
LCD_EN=0;
//當E由高電平跳變成低電平時液晶模塊開始執行命令}
/**********************************************************
LCD初始化設定
**********************************************************/

void lcd_init(void)
{
        delayms(15);//延時15ms首次寫指令時應給LCD一段較長的反應時間
        lcd_wcmd(0x38);//顯示模式設置16*2顯示5*7點陣8位數據
        delayms(5);//延時5ms給硬件一點反應時間
        lcd_wcmd(0x38);
        delayms(5);//延時5ms給硬件一點反應時間
        lcd_wcmd(0x38);//連續三次確保初始化成功
        delayms(5);//延時5ms給硬件一點反應時間
        lcd_wcmd(0x0c);//顯示模式設置顯示開無光標光標不閃爍
        delayms(5);//延時5ms給硬件一點反應時間
        lcd_wcmd(0x06);//顯示模式設置光標右移字符不移
        delayms(5);//延時5ms給硬件一點反應時間
        lcd_wcmd(0x01);//清屏幕指令將以前的顯示內容清除
        delayms(5);//延時5ms給硬件一點反應時間
}
/**********************************************************
指定字符顯示的實際地址
**********************************************************/
void lcd_pos(unsigned char pos)
{
lcd_wcmd(pos|0x80);//數據指針=80+地址變量
}
/**********************************************************
顯示函數
**********************************************************/
void play()
{
unsigned char n;
        for(n=0;n<=3;n++)//數據轉換
        {
        display[n]=temp%10+0x30;
        temp=temp/10;
        }
display[4]=temp+0x30;
for(n=4;n>0;n--)//高位為"0"不顯示
{
        if(display[n]==0x30)
                display[n]=0x20;
        else
                break;
}
lcd_pos(0x46);//顯示實際頻率值
for(n=4;n!=0xff;n--)
lcd_wdat(display[n]);
}
/*********************************************************
主函數
*********************************************************/
void main()
{
unsigned char m;
unsigned long frq_num;
P0=0xff;
lcd_init();//LCD初始化
lcd_pos(0x00);//設置顯示位置為第一行
for(m=0;m<6;m++)
lcd_wdat(cdis1[m]);//顯示字符
lcd_pos(0x4b);//設置顯示位置為第二行
for(m=0;m<5;m++)
lcd_wdat(cdis2[m]);//顯示字符
TMOD=0x51;//定時器0工作在定時方式//定時器1工作在計數方式
TH0=0x4c;//50ms定時
TL0=0x00;
TH1=0x00;//計數初值
TL1=0x00;
ET0=1;//使能TIMER0中斷
ET1=1;//使能TIMER1中斷
EA=1;//允許中斷
PT1=1;//定義TIMER1中斷優先
TR0=1;
TR1=1;
while(1)
{
        if(sec)
        {
        Hdata=TH1;//取計數值
        Ldata=TL1;
        frq_num=((Count*65535+Hdata*256+Ldata)*60/80);//取數計算
        TH1=0;
        TL1=0;
        sec=0;
        Count=0;
        TR1=1;
        TR0=1;//決定了中斷方式為T1定時計數中斷
        }
temp=frq_num;
play();
}
}
/**********************************************************
Time0
中斷函數
**********************************************************/
void Time0() interrupt 1
{
TH0=0x4c;//50ms定時
TL0=0x00;
msec++;
if(msec==20)//50*20=1S
{TR0=0;//關閉TIMER0
TR1=0;//關閉TIMER1
msec=0;
sec=1;//置秒標記位
}
}
/**********************************************************
Time1
中斷函數
**********************************************************/
void Time1() interrupt 3
{
Count++;
}


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

使用道具 舉報

沙發
ID:121859 發表于 2022-12-18 17:54 | 只看該作者
前一個函數void lcd_wdat(unsigned char dat)
少了一個}。加上就好了
回復

使用道具 舉報

板凳
ID:68189 發表于 2022-12-18 19:49 | 只看該作者
/**********************************************************
將數據(字符的標準ASCII碼)寫入液晶模塊
**********************************************************/
void lcd_wdat(unsigned char dat)
{
while(lcd_busy());
LCD_RS=1;//RS為高電平RW為低電平時可以寫入數據
LCD_RW=0;
LCD_EN=1;
P0=dat;//將數據送入P0口即將數據寫入液晶模塊
delayNOP();
LCD_EN=0;
//當E由高電平跳變成低電平時液晶模塊開始執行命令}

看最后一個字符  }  被注釋了,,,,,,,,,這個函數沒有配對的 }  

回復

使用道具 舉報

地板
ID:814525 發表于 2022-12-18 20:55 | 只看該作者
void delayms(unsigned int ms)
void lcd_wdat(unsigned char dat)
兩個函數都少了一個}
回復

使用道具 舉報

5#
ID:161164 發表于 2022-12-18 23:28 | 只看該作者



回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区三区久久久 | 91av视频 | 伊人青青久久 | 毛片入口 | 在线看成人av | 国产一区二区三区四区五区加勒比 | 国产精品国产精品国产专区不卡 | www.夜夜骑.com| 精品国产欧美一区二区三区成人 | 日日噜噜噜夜夜爽爽狠狠视频97 | 欧美影院 | 91精品国产91久久久久久 | 国内精品免费久久久久软件老师 | 久久99国产精品 | 欧美视频区 | 久久精品视频免费观看 | 日韩欧美久久 | 欧美精品一区二区三区视频 | 欧美 日韩 国产 在线 | 亚洲欧洲激情 | 日本久久久久久久久 | 欧美电影免费观看高清 | 成人天堂噜噜噜 | 国产美女视频黄a视频免费 国产精品福利视频 | 91色视频在线观看 | 91干b| 亚洲一区精品在线 | 久久久精品一区 | 91视频一区 | 精品国产一级 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 国产一区欧美 | 中文字幕亚洲专区 | 中文字幕在线免费 | 欧美日韩一区二区在线播放 | 中文字幕在线视频免费视频 | 国产区在线观看 | 国产999精品久久久 午夜天堂精品久久久久 | 亚洲国产伊人 | 精品在线一区 | 国产成人午夜精品影院游乐网 |