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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新手請教大神們關于一個小玩具的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:50336 發表于 2013-5-16 13:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是初學者,有什么基礎性的錯誤希望不要見笑。兒子的一個小玩具壞了,現在我想用STC12C2052AD的單片機來替代原有的小芯片修復,遇到了編程上的問題,希望高手可以幫忙指教,非常感謝!
1.玩具構造及修復設想:這個玩具有三個LED燈,三個微動按鈕(非鎖定式),以及一個小揚聲器。我擬定用STC12C2052AD的P1.7、P1.6、P1.5三個引腳來連接LED燈,用P1.4來連接揚聲器;然后再用P3.3,P3.4,P3.5三個引腳來作為控制按鈕(選擇這三個引腳作為控制按鈕的目的是希望可以在程序中調用掉電模式PCON后,可以直接外部中斷喚醒,玩具嘛,省電是必須考慮的);最終實現的是按動任一微動開關,單片機即播放樂曲,同時LED燈閃爍,當樂曲播放完畢的同時LED燈熄滅。另外,希望在播放樂曲的時候,如果按動任一微動開關,可以即時中斷并響應。
2.程序的設計。我本來以為不難,查了很多資料,也借鑒了網上的一些程序,但我發現以我目前的能力無法完成,到主函數那里,我不知所措了,希望大神們能幫下我,下面將我已完成的部分貼出來
#include <intrins.h>
#include <STC12C2052AD.H>//加入單片機頭文件
#include "MUSIC.H"//加入音樂庫文件
#define LED    P1^7, P1^6, P1^5;//定義LED燈控制引腳
sbit SPEAK      = P1 ^ 4; //定義揚聲器控制引腳
sbit botton1    = P3 ^ 3; //定義按鈕1
sbit botton2    = P3 ^ 4; //定義按鈕2
sbit botton3    = P3 ^ 5; //定義按鈕3
void delay (unsigned int a){  //延時函數
            unsigned int i;

while(--a !=0){


for(i=0;i<600;i++);


}


}

void deng (bit a){
//定義LED流水燈動態函數

                 unsigned int i;

unsigned int temp;


while(a !=1){


temp = 0x01;


for(i=5;i<8;i++){


LED = ~ temp;


delay(100);


temp<<=1;


}


temp =0x80;


for(i=5;i<8;i++){


LED=~temp;


delay(100);


temp>>=1;


}


temp=0xFE;


for(i=5;i<8;i++){


LED=temp;


delay(100);


temp<<=1;


}


temp=0x7F;


for(i=5;i<8;i++){


LED=temp;


delay(100);


temp>>=1;


}


}


}

void init()
//初始化函數

{

botton1 = 1;

    botton2 = 1;

botton3 = 1;


SPEAK=0;


EA=1;


ET0=1;


ET1=1;


TMOD=0x11;

}
void main(void){                            //到這里我就不知道該怎么辦了

3.編譯中的錯誤。我在編寫和COPY中還不停的嘗試編譯,看看是否有錯誤,因為基礎的原因,我知道
“#define LED    P1^7, P1^6, P1^5;//定義LED燈控制引腳”這里可能有問題,但是我不知道怎么改,我了解用“#define”命令可以命名I/O組,但我這里只用得到I/O組中的三個,所以我就嘗試了一下,看看是否可以把這三個定義為1組,結果發現在KEIL中可以編譯通過,不知道最終會不會有問題,另外在隨后的定義LED流水燈動態函數還是出現問題,但我不知道為什么:
WANJU.C(21): error C141: syntax error near '='
WANJU.C(27): error C141: syntax error near '='
WANJU.C(33): error C141: syntax error near '='
WANJU.C(39): error C141: syntax error near '='
WANJU.C(57): error C141: syntax error near ''


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

使用道具 舉報

沙發
ID:50336 發表于 2013-5-16 13:05 | 只看該作者
4.MUSIC.H的源程序
#ifndef _MUSIC_H
#define _MUSIC_H
unsigned int code tone[12]={1012,956,852,759,716,638,568,506,478,426,379,1136};
//  T1定時的時間
unsigned char code song1[]={3,6,6,3, 5,6,5,6, 6,3,6,6,5, 3, 11,2,2,11, 1,2,1,2, 2,11,1,2,1, 11,  3,6,7,6,5,5, 6,5,6,

8,7,6,5,3, 6,3,5, 6,8,7,6,5, 3,6,7, 8,7,6,5,3, 6,3,5,
6,8,9,8,7,6, 7, 7,3, 8,7,6,5,3, 6,5,4,3,1,2, 3,6,5,6,5,
6,3, 8,7,6,5,3, 6,5,4,3,1,2, 3,6,5,6,5, 6, 15};
            
//風中有朵雨做的云的簡譜
unsigned char code beat1[]={8,8,8,8, 8,4,4,16, 8,8,8,4,4, 32, 8,8,8,8,

8,4,4,16, 8,8,8,4,4, 32,  8,8,4,4,4,4, 24,4,4, 8,8,4,8,8,

24,4,4, 8,8,4,4,8, 24,4,4, 8,4,4,8,8, 24,4,4, 8,8,4,4,4,4, 32,

24,8, 8,4,4,8,8, 8,4,4,8,4,4, 8,8,8,4,4, 24,8,

8,4,4,8,8, 8,4,4,8,4,4, 8,8,8,4,4, 32};


//風中有朵雨做的云的節拍
unsigned char song2[]={11,3,3,1, 2,3,2,3, 3,12,11, 1, 3,5,5,3, 6,5,3,

3,3,2,1, 2, 3,0,11, 12,0,12,1, 0,3,3,0,

12,0,12, 0,3,3,0, 0,12,0,12, 2,12,1,0,12, 11, 15};
//軍港之夜的簡譜
unsigned char  code beat2[]={8,8,8,8, 4,4,16,8, 16,8,8, 32, 8,8,8,8, 8,16,8,

16,4,4,8, 32,16,8,8, 4,4,16,8, 8,8,8,8, 4,4,24,

8,8,8,8, 8,4,4,16, 8,4,4,8,8, 32};

//軍港之夜的節拍
unsigned char code song3[]={1,1,2,1, 4,3, 1,1,2,1, 5,4, 1,1,8,6, 4,3,2,

7,7,6,4, 5,4, 15};

//生日快樂歌的簡譜
unsigned char code beat3[]={4,4,8,8, 8,16,4,4,8,8, 8,16,

4,4,8,8, 8,8,8, 4,4,8,8, 8,16};


//生日快樂歌的節拍
unsigned char code song4[]={6,3,3,5,5,6,6, 5,6,7,6, 3,3,3,5,6,6,6,5,

5,3,3,5,3, 3,3,3,5,6,6,5, 3,5,3, 2,2,2,3,5,5,5,


2,3,2,1,7,7, 6,3,3,5,6,6,6,6, 5,6,7,6,

3,3,3,5,6,6,6,5, 3,3,3,5,3, 3,3,3,5,6,6,5,

3,5,3, 2,2,2,3,5,5,5, 2,3,2,1,0,0, 15};




unsigned char code beat4[]={8,8,8,8,8,8,16, 8,8,16,32, 8,8,8,8,8,8,8,8,

8,8,8,8,32, 8,8,8,8,16,8,8, 24,8,32, 8,8,8,8,8,8,16,

8,8,8,8,16,16, 8,8,8,8,8,8,8,8, 8,8,16,32, 8,8,8,8,8,8,8,8,

8,8,8,8,32, 8,8,8,8,16,8,8, 24,8,32,8,8,8,8,8,8,16,

8,8,8,8,16,16};
#endif

5. STC12C2052AD.H 頭文件
/* After is STC additional SFR or change */

/* sfr  AUXR  = 0x8e; */
/* sfr  IPH   = 0xb7; */
#ifndef __STC12C2052AD_H__
#define __STC12C2052AD_H__
/* Watchdog Timer Register */
sfr  WDT_CONTR = 0xe1;   

/* ISP_IAP_EEPROM Register */
sfr ISP_DATA  = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD   = 0xe5;
sfr ISP_TRIG  = 0xe6;
sfr ISP_CONTR = 0xe7;

/* IDLE, Clock Divider */
sfr IDLE_CLK  = 0xc7;

/* I_O Port Mode Set Register */
sfr P0M0  = 0x93;
sfr P0M1  = 0x94;
sfr P1M0  = 0x91;
sfr P1M1  = 0x92;
sfr P2M0  = 0x95;
sfr P2M1  = 0x96;
sfr P3M0  = 0xb1;
sfr P3M1  = 0xb2;

/* SPI Register */
sfr SPSTAT  = 0x84;
sfr SPCTL   = 0x85;
sfr SPDAT   = 0x86;

/* ADC Register */
sfr ADC_CONTR  = 0xc5;
sfr ADC_DATA   = 0xc6;
sfr ADC_LOW2   = 0xbe;

/* PCA SFR */
sfr CCON   = 0xD8;
sfr CMOD   = 0xD9;
sfr CCAPM0 = 0xDA;
sfr CCAPM1 = 0xDB;
sfr CCAPM2 = 0xDC;
sfr CCAPM3 = 0xDD;
sfr CCAPM4 = 0xDE;
sfr CCAPM5 = 0xDF;

sfr CL     = 0xE9;
sfr CCAP0L = 0xEA;
sfr CCAP1L = 0xEB;
sfr CCAP2L = 0xEC;
sfr CCAP3L = 0xED;
sfr CCAP4L = 0xEE;
sfr CCAP5L = 0xEF;

sfr CH     = 0xF9;
sfr CCAP0H = 0xFA;
sfr CCAP1H = 0xFB;
sfr CCAP2H = 0xFC;
sfr CCAP3H = 0xFD;
sfr CCAP4H = 0xFE;
sfr CCAP5H = 0xFF;

sfr PCA_PWM0 = 0xF2;
sfr PCA_PWM1 = 0xF3;
sfr PCA_PWM2 = 0xF4;
sfr PCA_PWM3 = 0xF5;
sfr PCA_PWM4 = 0xF6;
sfr PCA_PWM5 = 0xF7;

/*  CCON  */
sbit CF    = CCON^7;
sbit CR    = CCON^6;
sbit CCF5  = CCON^5;
sbit CCF4  = CCON^4;
sbit CCF3  = CCON^3;
sbit CCF2  = CCON^2;
sbit CCF1  = CCON^1;
sbit CCF0  = CCON^0;

/* Above is STC additional SFR or change */

/*--------------------------------------------------------------------------
REG51F.H

Header file for 8xC31/51, 80C51Fx, 80C51Rx+
Copyright (c) 1988-1999 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.

Modification according to DataSheet from April 1999
- SFR's AUXR and AUXR1 added for 80C51Rx+ derivatives
--------------------------------------------------------------------------*/

/*  BYTE Registers  */
sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;
sfr PSW  = 0xD0;
sfr ACC  = 0xE0;
sfr B    = 0xF0;
sfr SP   = 0x81;
sfr DPL  = 0x82;
sfr DPH  = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0  = 0x8A;
sfr TL1  = 0x8B;
sfr TH0  = 0x8C;
sfr TH1  = 0x8D;
sfr IE   = 0xA8;
sfr IP   = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;

/*  80C51Fx/Rx Extensions  */
sfr AUXR   = 0x8E;
/* sfr AUXR1  = 0xA2; */
sfr SADDR  = 0xA9;
sfr IPH    = 0xB7;
sfr SADEN  = 0xB9;
sfr T2CON  = 0xC8;
sfr T2MOD  = 0xC9;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;


/*  BIT Registers  */
/*  PSW   */
sbit CY   = PSW^7;
sbit AC   = PSW^6;
sbit F0   = PSW^5;
sbit RS1  = PSW^4;
sbit RS0  = PSW^3;
sbit OV   = PSW^2;
sbit P    = PSW^0;

/*  TCON  */
sbit TF1  = TCON^7;
sbit TR1  = TCON^6;
sbit TF0  = TCON^5;
sbit TR0  = TCON^4;
sbit IE1  = TCON^3;
sbit IT1  = TCON^2;
sbit IE0  = TCON^1;
sbit IT0  = TCON^0;

/*  P3  */
sbit RD   = P3^7;
sbit WR   = P3^6;
sbit T1   = P3^5;
sbit T0   = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD  = P3^1;
sbit RXD  = P3^0;

/*  SCON  */
sbit SM0  = SCON^7; // alternatively "FE"
sbit FE   = SCON^7;
sbit SM1  = SCON^6;
sbit SM2  = SCON^5;
sbit REN  = SCON^4;
sbit TB8  = SCON^3;
sbit RB8  = SCON^2;
sbit TI   = SCON^1;
sbit RI   = SCON^0;
            

sbit T2EX = P1^1;
sbit T2   = P1^0;

/*  T2CON  */
sbit TF2   = T2CON^7;
sbit EXF2  = T2CON^6;
sbit RCLK  = T2CON^5;
sbit TCLK  = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2   = T2CON^2;
sbit C_T2  = T2CON^1;
sbit CP_RL2= T2CON^0;

/* PCA Pin */

sbit CEX3 = P2^4;
sbit CEX2 = P2^0;
sbit CEX1 = P3^5;
sbit CEX0 = P3^7;
sbit ECI  = P3^4;

/*  IE   */
sbit EA   = IE^7;
sbit EPCA_LVD  = IE^6;
sbit EADC_SPI  = IE^5;
sbit ES   = IE^4;
sbit ET1  = IE^3;
sbit EX1  = IE^2;
sbit ET0  = IE^1;
sbit EX0  = IE^0;

/*  IP   */
sbit PPCA_LVD  = IP^6;
sbit PADC_SPI  = IP^5;
sbit PS   = IP^4;
sbit PT1  = IP^3;
sbit PX1  = IP^2;
sbit PT0  = IP^1;
sbit PX0  = IP^0;
#endif
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品欧美精品 | 不卡视频一区 | 亚洲免费三级 | 亚洲精品二三区 | 夜夜骑av| 瑞克和莫蒂第五季在线观看 | 午夜视频免费在线观看 | 91大神在线资源观看无广告 | 精品久久一 | 成人av电影天堂 | 欧美一区二区三区在线看 | 精品成人一区二区 | 91文字幕巨乱亚洲香蕉 | 久久91精品国产一区二区三区 | 免费国产黄网站在线观看视频 | 中文字幕在线观看日韩 | 国产成人免费视频网站高清观看视频 | 一级欧美一级日韩片免费观看 | 免费视频一区二区 | 国产做a爱免费视频 | 国产伦精品一区二区三区照片91 | 超碰男人天堂 | 国产乱码精品一区二区三区忘忧草 | 婷婷免费视频 | 国产一区二区三区高清 | 91精品久久久久久久久99蜜臂 | 国产欧美一区二区三区在线看蜜臀 | 国产美女久久 | www国产成人免费观看视频,深夜成人网 | jizz在线看片 | 国产精品视频一区二区三区四区国 | 欧美午夜激情在线 | 九九热在线视频观看这里只有精品 | 亚洲精品一区在线 | 精品99爱视频在线观看 | 在线观看免费黄色片 | 一区二区中文 | 中文字幕在线网 | 中文字幕精品视频 | 欧美性大战久久久久久久蜜臀 | 精一区二区 |