导航:首页 > 操作系统 > 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函数控制单片机相关的资料

热点内容
代理服务器地址列表吧 浏览:927
java列出所有文件 浏览:865
压缩包看图软件 浏览:186
sqlite在android中的应用 浏览:656
一本通pdf 浏览:910
2021免费的编程软件 浏览:123
项目编译后浏览器不对应刷新 浏览:564
三星升级android60 浏览:292
粘土的压缩模量 浏览:115
美国程序员生活 浏览:219
51单片机摘要 浏览:405
英语经典pdf下载 浏览:319
大学文件夹怎么删除 浏览:670
linux科研软件 浏览:555
ue4打包编译着色器 浏览:777
云服务器可以在手机上登录吗 浏览:677
网游脚本为什么要连接服务器 浏览:10
程序员发展路线图 浏览:320
手机语音加密会议 浏览:592
冰与火pdf 浏览:421