教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高中教育 >

C语言程序完整示例

来源:网络收集 时间:2026-09-11
导读: 介绍单片机c语言方面的文章 自定义解码程序 //***************************************************************************** //说明:此解码程序为解自定义9位码,格式和1527仿.程序不完善.不要直接使用. //作者:*贝克* //时间:2006-4-28 //**************

介绍单片机c语言方面的文章

自定义解码程序

//***************************************************************************** //说明:此解码程序为解自定义9位码,格式和1527仿.程序不完善.不要直接使用. //作者:*贝克*

//时间:2006-4-28

//***************************************************************************** #include <ht48R06A-1.h>

#include "main.h"

#include "init.h"

#include "func.h"

#include "sp_tim.h"

#include "sp_ext.h"

//***************************************************************************** //*********************硬件说明************************************************ //***************************************************************************** //******PC0为无线输入口******************************************************* //***PA4~PA7为四位命令输出口************************************************** //***************************************************************************** //*************主函数********************************************************** //***************************************************************************** void main (void)

{

byte i;

byte combak1,combak2;

init();

while(1)

{

_clrwdt();

//*******读取命令************************************************************ Comm=0;

if(AddsBak!=Adds)AddsRed();

if(RedFM())

{

if(Comm==combak1)

{

combak2=combak1;

}

else if(Comm==combak2)

{

combak2=combak1;

combak1=Comm;

}

介绍单片机c语言方面的文章

else

{

combak2=combak1;

combak1=Comm;

Comm=0;

}

}

else

{

combak2=combak1;

combak1=Comm;

}

if(Comm)

{

i=Comm&0x30;

if(i==0) //小于16

{

SendComDat=Comm;

Tim_Comm=25; //保持时间:8*25=200MS

}

}

if(Tim_Comm==0)SendComDat=0;

SendComm(SendComDat);

}//while(1)

return;

}

//***************************************************************************** //*************** Main.h******************************************************** //***************************************************************************** #ifndef MAIN_H

#define MAIN_H

//----------宏定义/常量定义--------------------------------------------------------------------------------- #define byte unsigned char

#define word unsigned long

//************端口定义******************************************************** #define _ton 0e_4

#define KREM _pc0

#define KREM_C _17_0

//************变量定义********************************************************* //------------位变量定义------------------------------------------------------------------------------------------ bit Key1,Key2,Key3,Key4,Key5,Key6,Key7,Key8,Key9;

bit SLock1,SLock2,SLock3,SLock4,SLock5,SLock6,SLock7,SLock8,SLock9;

//------------时间相关变量----------------------------------------------------------------------------------- byte Tim_Comm @0x60; //命令输出保持时间

介绍单片机c语言方面的文章

byte ADDs;

byte Mod_C; //强度变量

word FMData;

//------------公用-------------------------------------------------------------------------------------------- byte SendComDat; //向PCU2发送的命令数据

byte Comm; //本机命令数据

byte Adds,AddsBak;

//******常量定义************************************************************* #define PORTIN 1

#define PORTOUT 0

#endif

//***************************************************************************** //*************** init.h********************************************************* //***************************************************************************** #define IECON 0x04 //EMI1/EEI2/ETI3/EADI4/EIF5/TF6/ADF7中断允许(1-3)与标志位(4-6)

#define TMOD 0x86 //0B10000111 128分频32U加1

#define TIMC 0x06 //timer初值 4MHz定时8MS

//-----端口初始化--------------------------------------------------------------------------------------------- void port_init(void)

{

_pa=0x00;

_pac=0x00;

_pa=0x00;

_pbc=0x0F;

_pcc=0x01; //KREM输入口

_pc=0x00;

return;

}

//------定时器初始化------------------------------------------------------------------------------------------- void timer_init(void)

{

_tmrc=TMOD; //Timer模式设定

_tmr=TIMC; //Timer赋初值4MHz定时8MS

_ton=1; //启动定时器

return;

}

//-----中断初始化----------------------------------------------------------------------------------------------- void intc_init(void)

{

_intc=IECON;

_emi=1;

return;

}

介绍单片机c语言方面的文章

//------变量初始化----------------------------------------------------------------------------------------------- void variable_init(void)

{

SendComDat=0;

Tim_Comm=0;

return;

}

//-----本机地址读取----------------------------------------------------------------------------------------- void AddsRed(void)

{

_pbc=0x0F;

ADDs=_pb;

while(1)

{

Adds=_pb;

Adds&=0x03;

for(AddsBak=0;AddsBak<100;AddsBak++);

AddsBak=_pb;

AddsBak&=0x03;

if(AddsBak==Adds)break;

}

Adds<<=6;

Adds&=0xC0;

AddsBak=Adds;

return;

}

//-----初始化--------------------------------------------------------------------------------------------------- void init(void)

{

byte i;

word lssum;

port_init();

if(_to==0)

{

variable_init();

}

_clrwdt();

timer_init();

intc_init();

AddsRed();

return;

}

//**************************************************** …… 此处隐藏:5806字,全部文档内容请下载后查看。喜欢就下载吧 ……

C语言程序完整示例.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1729503.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)