一个玩具兵进行曲 教案!不知道怎么玩!大神进!

登录后你可以:
首次使用?
WORK HARD, DREAM BIG.
视频地址复制
Flash地址复制
Html地址复制
离线看更方便
用或其他应用扫描二维码
/watch?v=9lXAF9Jfxac 看国外大神如何使用纸张制作一个带有绊线一触即发可以弹射BB弹的恶作剧玩具,膜拜了!
手工折纸DIY小玩具,制作所需材料:1)A4纸张若干;2)透明胶带;3)剪刀;4)皮筋;5)BB弹;6)马克笔;7)细线。
感谢视频作者crazyPT的聪明才智和视频教程的奉献,让我们回想起童年美好的记忆。crazyPT系列视频UP将定期更新!感谢订阅!
广播电视节目制作经营许可证:(沪)字第1248号
| 网络文化经营许可证:沪网文[6号 | 信息网络传播视听节目许可证:0910417 | 互联网ICP备案:沪ICP备号-3 沪ICP证:沪B2- | 违法不良信息举报邮箱: | 违法不良信息举报电话:转3查看: 1059|回复: 1
新手请教大神们关于一个小玩具的问题
我是初学者,有什么基础性的错误希望不要见笑。儿子的一个小玩具坏了,现在我想用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){&&//延时函数
& && && && &
while(--a !=0){
for(i=0;i&600;i++);
void deng (bit a){
//定义LED流水灯动态函数
& && && && && &&&
while(a !=1){
temp = 0x01;
for(i=5;i&8;i++){
delay(100);
temp =0x80;
for(i=5;i&8;i++){
delay(100);
temp=0xFE;
for(i=5;i&8;i++){
delay(100);
temp=0x7F;
for(i=5;i&8;i++){
delay(100);
void init()
//初始化函数
botton1 = 1;
& & botton2 = 1;
botton3 = 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 ''
4.MUSIC.H的源程序
#ifndef _MUSIC_H
#define _MUSIC_H
unsigned int code tone[12]={,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};
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& &= 0
/* 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 */
/*--------------------------------------------------------------------------
Header file for 8xC31/51, 80C51Fx, 80C51Rx+
Copyright (c)
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;
Powered by鍙?渶涓}

我要回帖

更多关于 玩具兵进行曲 教案 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信