导航:首页 > 操作系统 > if函数控制单片机

if函数控制单片机

发布时间:2023-06-11 03:02:03

① 用c语言编写一个计数器(单片机为51型,数码管为共阴)要求有三个按键分别控制停止、加、减

一看到你说是计数器,又看到你要求有停止功能,意思是把Timer改为计数器,然后可以通过一个键停止计数对吧?
如果这样的话挺简单的,51单片机的计数器io口记得好像是P3^0和P3^1,但不管怎么,首先设置TMOD,将C/T位置1,这就改为计数器了,然后可以编写函数来对一个变量进行加减;同样利用51单片机的外部中断也可以实现计数功能,打开外部中断开关,在外部中断服务函数对计数变量进行加减;最简单的,直接利用io口高低电平变化来进行计数,编写if函数,只要某个io口电平变化了,就对计数变量进行加减。
如果你对这个有点陌生,那么回复我一起讨论或者我可以帮你写程序。
希望我的回答能帮助到你。

② 51单片机定时器进入中断问题

EA=1;允许中断
ET0=1;定时器中断使能
TR0=1;开定时器,开始计时,定时器开始工作;按机器周期向上加1,当定时器溢出(计数值大于65535),硬件产生中断,
进入中断和你写的函数没有关系,是定时器硬件控制进入中断,你的程序执行到哪中断,中断返回继续执行你的程序

③ 51单片机定时器T1中断使数码管计数0—F,每秒加1,想要将if()函数写到main()函数中,如何实现。

把初始化程序 Timer1Init(); 放在while(1) 的上面,你现在这样,每次循环都初始化了,就永远也不计数了 。另外,开机是显示8,是因为,开机P0口全为1,要过1秒后开始从0开始显示,可以在while(1)上面加一行 P0=0x3f; 这样,开机就显示0了。另外,这种定时1秒,定时器最好定时长点,如50ms ,你现在是定时1ms ,这中断频率太高了,如果有其它程序就会影响主程序的执行。
还有,if 语句下面的
if(i==1000)
{
//TR1=0;//要这行,就计数一遍就停了,要不停地计数就要删掉
i=0;
P0=smgan[n++];
if(n==16) n=0;

}

与if函数控制单片机相关的资料

热点内容
java计算内存 浏览:310
hdxpdf 浏览:301
安卓变苹果的麦克风怎么设置 浏览:734
androidsdk玩游戏 浏览:798
start文件夹删除后果 浏览:544
java类main方法 浏览:85
程序员那么可爱叶子的扮演者 浏览:498
冰柜压缩机做气泵 浏览:45
快捷命令汇总表 浏览:830
wdk编译驱动部署错误 浏览:438
美国服务器有什么优点 浏览:968
秘密演讲pdf 浏览:728
云服务器区域代理商 浏览:71
linux0d 浏览:543
android邮件app 浏览:310
股票的app要测什么东西 浏览:281
日语命令行禁止行 浏览:637
win10自带c语言编译器怎么打开 浏览:132
cnc数控编程指令 浏览:103
mc服务器无法连接至世界是怎么回事 浏览:40