当前位置:首页 » 编程软件 » 51单片机模块化编程

51单片机模块化编程

发布时间: 2022-03-15 12:41:02

Ⅰ 51单片机模块化编程怎么位定义

模块不太了解,对于位的话.
就是bit和sbit,就搞定位定义了.

Ⅱ 模块化编程时51单片机怎样定义端口

单片机输出低电平时,一个标准TTL门的低电平输入电流是-1mA(负号表示从TTL门向外流),电流是灌入单片机的;单片机输出高电平时,TTL门高电平输入电流40μA。

Ⅲ 关于51单片机模块化编程的函数申明问题 (//write_com(); //这里的这个函数要不要先申明呢)

把被调用的子程序放在调用函数的上方,把所有子程序放在主程序的前面,这样就不用在前面声明了。

Ⅳ 在51单片机中,定时器0中断用模块化方法编程

#include<reg51.h>
#defineu16unsignedint
#defineu8unsignedchar


codeu16sj_tab[]={800,400,200,100};//每个档位对应的时间
u8setsj=0;//档位
u16jsflag;

#defineLEDP2
codeu8led_tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};//LED亮的方式
u8ledflag=0;

/****************************************/
voidinit() //初始化函数
{TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;

}

/*********按键扫描******/
sbitk=P3^2;
u8key(){
staticu8ms;
if(k==0){//检测到0
if(ms<10)ms++;
if(ms==5)return0;//连续5次扫描都为0,
}
elsems=0;
return1;
}

/***********************************/
u8count=0; //计数
voidmain()//主函数
{
init();//系统初始化
jsflag=sj_tab[setsj];//初始加载时间
TR0=1;//定时器开始计时
while(1){
if(key()==0){//按键按下
if(++setsj>=4)setsj=0;//档位+1,加到最大后归0
}
LED=led_tab[ledflag];
}

}


/****************************/
voidtimer0()interrupt1//1ms定时器
{
TH0=(65536-1000)/256;//重载初值
TL0=(65536-1000)%256;
if(jsflag>0)jsflag--;//1ms减1
if(jsflag==0){//减到0
jsflag=sj_tab[setsj];//重载时间
if(++ledflag>=8)ledflag=0;
}

}

Ⅳ 求大神关于51单片机模块化编程问题

你好:
你只要在iic的.c文件中包含iic的.h文件就可以了。
另,如果iic的.c文件涉及操作到51中的寄存器,还要包含reg51.h。
且,.c和.h文件都要放到编译器所在文件的include下。
先试试吧。
希望我的回答能帮助到你。

Ⅵ 大神们,请问怎么把定时器进行模块化编程,我试了好多次都编译不成功,定时程序可以模块化编程的吗请给

你的主控芯片和编译环境都没给啊,基于51单片机还是stm32啥的,说清楚啊

Ⅶ 51单片机定时计数器模块化编程及标志位求教,求以简单程序,谢了

/*right 2007,ShangHai HaoTun Electronic Technology co.,Ltd
*
*This sample is used for Timer0 16bit timer mode.
*
*write by Shifang 2007-4-26
*
*V1.1
*/
#include<reg52.h>

sbit LED=P1^2;

void Init_Timer0(void)
{
TMOD |= 0x01;
TH0=0x00; /* Init value */
TL0=0x00;
EA=1; /* interupt enable */
ET0=1; /* enable timer0 interrupt */
TR0=1;
}

main()
{
Init_Timer0();
while(1);
}

void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x00; /* Init value */
TL0=0x00;

LED=~LED;//指示灯反相

}以上是定时器0的编程用的是at89s52芯片fosc用的12mhz的

/*right 2007,ShangHai HaoTun Electronic Technology co.,Ltd
*
*This sample is used for Timer1 16bit timer mode.
*
*write by Shifang 2007-4-23
*
*V1.1
*/
#include<reg52.h>

sbit LED=P1^2;

void Init_Timer1(void)
{
TMOD |= 0x10;
TH1=0x00; /* Init value */
TL1=0x00;
EA=1; /* interupt enable */
ET1=1; /* enable timer1 interrupt */
TR1=1;
}

main()
{
Init_Timer1();
while(1);
}

void Timer1_isr(void) interrupt 3 using 1
{
TH1=0x00; /* Init value */
TL1=0x00;

LED=~LED;

}定时器1的
/*right 2007,ShangHai HaoTun Electronic Technology co.,Ltd
*
*This sample is used for Timer0 16bit timer mode.
*
*write by Shifang 2007-4-26
*
*V1.1
*/
#include<reg52.h>

sbit LED=P1^2;

void TIM2Inital(void)
{
RCAP2H = (65536-60000)/256;//@12M 10ms 16bit 自动重载
RCAP2L = (65536-60000)%256;
ET2=1;
EA=1;
TR2=1;
}

main()
{
TIM2Inital();
while(1);
}

void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x00; /* Init value */
TL0=0x00;

LED=~LED;//指示灯反相

}
void TIM2(void) interrupt 5 using 1//定时器2中断
{

TF2=0;
LED=~LED;//指示灯反相

/*right 2007,ShangHai HaoTun Electronic Technology co.,Ltd
*
*This sample is used for Timer0 16bit timer mode.
*
*write by Shifang 2007-4-26
*
*V1.1
*/
#include<reg52.h>

sbit LED=P1^2;

void TIM2Inital(void)
{
RCAP2H = (65536-60000)/256;//@12M 10ms 16bit 自动重载
RCAP2L = (65536-60000)%256;
ET2=1;
EA=1;
TR2=1;
}

main()
{
TIM2Inital();
while(1);
}

void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x00; /* Init value */
TL0=0x00;

LED=~LED;//指示灯反相

}
void TIM2(void) interrupt 5 using 1//定时器2中断
{

TF2=0;
LED=~LED;//指示灯反相

}定时器2
开发板配套程序占得你看看

Ⅷ 51单片机汇编如何进行模块化编程希望高人提供系统资料

汇编精确度很高,但是移植性不好,
写完一个程序,
不能很好地马上移到另一个工程中使用,,我使用的C语言,
对于你的问题,暂时帮不了

Ⅸ 51单片机用汇编可以进行模块化编程吗

可以的。只是在模块调用时注意输入输出数据的衔接,哪些寄存器存什么数,执行完后用哪个寄存器带出来数据,都要考虑好。
可以参考和学习一下,汇编子程序库。

热点内容
access的web数据库 发布:2025-04-23 00:08:29 浏览:42
安卓上面的谷歌搜索框怎么去除 发布:2025-04-23 00:07:27 浏览:171
c判断文件夹是否存在 发布:2025-04-22 23:56:36 浏览:940
精确测算法 发布:2025-04-22 23:54:09 浏览:287
安卓如何更换开机画面 发布:2025-04-22 23:49:10 浏览:889
知道ID密码怎么定位 发布:2025-04-22 23:34:16 浏览:253
c语言采样 发布:2025-04-22 23:30:03 浏览:916
数据库服务器修改了ip地址 发布:2025-04-22 23:25:36 浏览:7
c语言基础案例 发布:2025-04-22 23:23:28 浏览:693
网络显示没有效的ip配置怎么办 发布:2025-04-22 23:23:23 浏览:805