
这段是AVR单片机程序哪位高手指点下
3个回答
展开全部
point_on 是一个变量名,名称是可以改的,改成a,b,point都行。
“bit point_on=0;”定义变量为bit型,赋初值0,bit型变量只有0和1两种取值。
PORTA=led_7[i];是把一个八位二进制数赋给PA口,你的PA应该连的是数码管,也就是控制数码管显示一个数字。
“if(point_on) PORTA|=0x80;”即“if(point_on==1)PORTA=PORTA||0x80 ;”,当point_on值为1就执行PORTA=PORTA||0x80 这条语句的意思。
0x80是十六进制数,化成二进制是10000000,与PORTA作或运算,结果是把PORTA里的数最高位置1,后7位不变。(PORTA是一个8位的寄存器,存的是8位二进制数,AVR程序里位运算通常就是这么写的),具体实现什么功能要看你硬件电路上PA7连的是什么了。
point_on=~point_on;表示对point_on取反
flash char led_7[16] 是一个char型数组,存储位置在flash,里面的十六个元素是数码管显示的段码表
其他的应该很好懂了
“bit point_on=0;”定义变量为bit型,赋初值0,bit型变量只有0和1两种取值。
PORTA=led_7[i];是把一个八位二进制数赋给PA口,你的PA应该连的是数码管,也就是控制数码管显示一个数字。
“if(point_on) PORTA|=0x80;”即“if(point_on==1)PORTA=PORTA||0x80 ;”,当point_on值为1就执行PORTA=PORTA||0x80 这条语句的意思。
0x80是十六进制数,化成二进制是10000000,与PORTA作或运算,结果是把PORTA里的数最高位置1,后7位不变。(PORTA是一个8位的寄存器,存的是8位二进制数,AVR程序里位运算通常就是这么写的),具体实现什么功能要看你硬件电路上PA7连的是什么了。
point_on=~point_on;表示对point_on取反
flash char led_7[16] 是一个char型数组,存储位置在flash,里面的十六个元素是数码管显示的段码表
其他的应该很好懂了

2021-01-14 广告
可以写对它写程序,让它听从你的安排,你让它实现什么功能它就能实现,比如电子钟、电子琴、打印机、手机、电梯控制,智能家具如:空调、冰箱、洗衣机等,如果这些家电没有它,什么都不能工作。单片机内部很复杂,你研究的越深你就会越爱上它,它可以帮你实现...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
point_on没有什么特别的意义,就是一个普通的变量,只不过在这里面没循环一次是0或1罢了,if中的循环就是将你LED数组中的指令控制你想要的LED亮或者暗,而给PORTA|0x80,只是你LED灯变化一次,你的最边上的灯闪一次。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回家就
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询