单片机中断程序程序段看不懂,求大神详细解释

我找单片机数据手册看到这些东西不懂请大神指点这是什么意思?_百度知道
我找单片机数据手册看到这些东西不懂请大神指点这是什么意思?
我有更好的答案
你这个图片,一点都看不清楚,所以也不知道你想问的是什么,你可以弄个清楚点的,我们也好知道是什么问题啊
采纳率:88%
这是在传小纸条吗?貌似挺神秘的。
在传情报吧。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机 3*4矩阵键盘 扫描程序的反馈值一直为初始值0X00 求指教 万谢!!
答案长度必须超过10个字,请勿发布无效或违法言论。
(共有1个回答)
我是这么想的,不知对错,你可以想想:首先你在读取列植之前,你强制的赋值了456端口的值为0,在后来呢,你读取行之前你又强行的赋值0123端口的值0,综合起来你就相当于将0123456端口的值均赋值为0了,所以你的结果0x00,还有就是你干嘛&0x0F??按键被按下后应该是低电平吧?你&0x0f后按下的位是0,但是别的三位还是1,这样的结果好处理吗??
同时我建议:你干嘛在读取列植或者行值的时候强行将端口的值改变成0干嘛?对你有影响吗??你已经把P2给了临时变量keyin_i keyin_j了,你直接拿临时变量&0x0f不还是相当于屏蔽了456端口了吗?你干嘛非要把端口赋值成0啊??记住,一般情况不要直接对端口进行操作,而是给临时变量,同时即使你使用端口进行操作,也别改变端口的值,根本没有必要啊,你不就是不想要456端口的值吗,直接&0x0f就很好!!
解决方法很多!你放到中断里可能会出现这样的情况,程序运行到键盘检查段时候,你没有设置跳出中断,这样说吧!程序在扫描键盘时候需要有键盘返回的值,当你键盘没有任何反
做而论道 单片机89S51,4×4矩阵键盘,控制16个发光二极管
百度一下,就可以找到用汇编写的扫描4×4矩阵键盘的程序。
简单改动,就可以
这也收费,太缺德了。哥给你!
uchar keyval()
uchar a,b,i;
for(i=0;i&lt
看来是看郭天祥的视频了
请问楼主具体什么问题?
while(temp!=0xf0);
P1口的低四位,你应该是四行;高四位,应该是四列。
你先给第一行写0,再去读四列有没有键按下。你这里的“n&=0xf0”应该是在读四列时把四行给屏蔽掉。
P1^6=1 这个是赋值啦
对表达式赋值当然有错误了
另外,我记得P1^6 好险只能 sbit P1_6=P1^6 这用用,是编译器支持的,在其它情况下
用示波器大约看看有没有起振嘛,注意晶振的引脚不可过长!
这个问题我知道!ucharcodeKeyCodeTable[]=
0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x4
从程序来看,数码管应该是共阴的;同时,P2口,应该接上拉电阻。
但是,从插图中,看不出是上拉,也不知道用的是共阴共阳。
下列程序,已经仿真通过,楼主试试看:
大家都关注
(C)2017 列表网&琼ICP备号-12&增值电信业务经营许可证B2-&51单片机模拟串口的波特率计算公式看不懂,贴在下面了。请大神解释-电子产品世界论坛
51单片机模拟串口的波特率计算公式看不懂,贴在下面了。请大神解释
后续1:看了各位高手的回复: 看书上,1200用T1: 0Xe8.实际验证:错误
         用软件,0xe7.实际验证,错误。
 看到有的例程上,2400 用的是0xe8.验证:正确。 为什么呢?
代码如下:
TMOD=0x22; /*定时器1为工作模式2(8位自动重装),0为模式2(8位
自动重装) */
TR0=0; //在发送或接收才开始使用
/**问题在这里**//
TH0=256-96; //9600bps 就是 0=104.167微秒 执行的imer是
// & & & 104.167*11. & & ;
//经验证,这样得出的TH0确实是9600. 如果改成1200.那么0*11.0592/12=768.
TH0=256-768=-512.不对啊。且不说负值。TH0也就是8位大小。这根本不行啊。直接将TH0=0XE8,也不行。
请问,如果要是1200,程序怎么改???
看来得翻书啊
网上有专门计算编程小软件计算的,,,
51单片机波特率计算小软件
在这个论坛常用工具中有51单片机波特率计算的软件,你下载下来就可以计算好了,小伙子,勤动手会增长智慧的。
的区别,1200需要更长的延时,8位自动重装不够用。延时不了那么多。选用16位自动重装模式。
&&&&SCON = 0x50;&& &&& &//8位数据,可变波特率
&& &AUXR |= 0x40;&& &&& &//定时器1时钟为Fosc,即1T
&& &AUXR &= 0xFE;&& &&& &//串口1选择定时器1为波特率发生器
&& &TMOD &= 0x0F;&& &&& &//设定定时器1为16位自动重装方式
&& &TL1 = 0x00;&& &&& &//设定定时初值
&& &TH1 = 0xF7;&& &&& &//设定定时初值
&& &ET1 = 0;&& &&& &//禁止定时器1中断
&& &TR1 = 1;&& &&& &//启动定时器1
这个是stc单片机工具生成的。移到自己的单片机,可能要改一下。
咱论坛好像米有这个小东西,,,
对了,我用的是模拟串口。 上面所述的波特率软件计算。书上的计算都不好使。继续请高手指点
继续求解,模拟串口的如何运算呢?
你自己的晶振是多大?
进行过频率的处理吗?
谢谢版主,我收藏了此贴。
匿名不能发帖!请先 [
Copyright (C) 《电子产品世界》杂志社 版权所有求大神告诉这段程序的意思,还有这一小段每一步的意思,谢谢_百度知道
求大神告诉这段程序的意思,还有这一小段每一步的意思,谢谢
求大神告诉这段程序的意思,还有这一小段每一步的意思,谢谢While(1)i=0Time=1While(time)
我有更好的答案
如楼主所问被选中区域如下:1、while(1)
—&第一层循环,进入while,1在程序中可以理解为True,即:如果第一个while代码块中执行代码如果不发生break(跳出循环) or return(返回值) or raise(出现异常),则进入死循环。2、i赋值为03、Time赋值为14、While(time)==while(1) ,和1条类是,进入死循环。
采纳率:58%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。一段除法的程序,实在看不懂,恳求大家指导一下!!!!!!!!(单片机C51的 汇编程序)
[问题点数:20分,结帖人jayelva2003]
本版专家分:0
结帖率 96.81%
CSDN今日推荐
本版专家分:550
本版专家分:2
本版专家分:11360
2003年9月 其他开发语言大版内专家分月排行榜第一
2003年8月 其他开发语言大版内专家分月排行榜第二
本版专家分:0
结帖率 96.81%
本版专家分:39
本版专家分:275
本版专家分:11360
2003年9月 其他开发语言大版内专家分月排行榜第一
2003年8月 其他开发语言大版内专家分月排行榜第二
匿名用户不能发表回复!|
CSDN今日推荐}

我要回帖

更多关于 单片机红外遥控器程序 的文章

更多推荐

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

点击添加站长微信