原标题:结合单片机学习板学习c语言之流水灯制作 intrins.h头文件

目的:实现流水灯。

本文引用地址:http://www.eepw.com.cn/article/201608/294948.htm源程序:

/*本程序结合STC89C51使用,晶振12M,中间用到串口中断子程序是利用STC单片机的自定义ISP下载功能,自定义下载命令是FEH,关于自定义下载请参考《用51单片机就用STC51,手把手教你STC51的ISP》*/

#include"at89x51.h"

//#include"reg51.h"

#include "intrins.h"

#include

sfr ISP_CONTR =0xE7;

delay_05s()

{

int i;

i=647395;

for(;i!=0;i--);

}

void serial() interrupt 4 //编号0-4,外中断0,定时器0,外中断1,定时器1,串行中断

{

int a;

RI=0;

a=SBUF;

if (a==0xFE)

{delay_05s();

delay_05s();

ISP_CONTR=0x60;}

else

SBUF='A';//若不是自定义下载命令则返回'A'

while(!TI);

TI=0;

}

void main(void)

{

unsigned int a,c;

unsigned char b;

TMOD=0x20;

TH1=0xf4;//波特率4800

TL1=0XF4;

TR1=1;

SCON=0XF8;

PCON=0X80;

EA=1;

ES=1;

RI=0;

b=0xfe;

while(1)

{

P1=b;

b=_crol_(b,1);//字符中的位左移1位(伪本征函数)

for(c=0;c<30000;c++);/*延时,实践表明当小于值大于等于32768(刚好是unsigned int最大值65535的一半)时,此句指令执行时间大于1秒*/

}

}

程序附加说明:

1.关于自定义下载,略微解释下原理,电脑中STC-ISP软件向单片机发送自定义下载命令后,引起单片机的串口中断,并进入中断子程序:判断是否为设定“自定义下载命令”-延时1秒-执行重启命令“ISP_CONTR=0x60;”(即MOV ISP_CONTR(0XE7),0X60),单片机重启并先运行ISP监视程序,电脑STC-ISP软件便把.hex文件数据下到STC单片机中去。

2.流水灯循环左移右移,用C语言,要高效的话,只有用伪本征函数文件“intrins.h”中的_crol_(),_cror_()...等等函数,具体解释如蓝色文字,例如,要用P1口驱动8个共阳连接的二极管左循环一个一个地亮,语句是 P1=_crol_(a,1);//a储存被移位的字符。

c51中的intrins.h库函数

_crol_ 字符循环左移

_cror_ 字符循环右移

_irol_ 整数循环左移

_iror_ 整数循环右移

_lrol_ 长整数循环左移

_lror_ 长整数循环右移

_nop_ 空操作8051 NOP 指令

_testbit_ 测试并清零位8051 JBC 指令

详解:

函数名: _crol_,_irol_,_lrol_

原 型: unsigned char _crol_(unsigned char val,unsigned char n);

unsigned int _irol_(unsigned int val,unsigned char n);

unsigned int _lrol_(unsigned int val,unsigned char n);

功 能:_crol_,_irol_,_lrol_以位形式将val 左移n 位,该函数与8051“RLA”指令

相关,上面几个函数不同于参数类型。

例:

#include

main()

{

unsigned int y;

C-5 1 程序设计 37

y=0x00ff;

y=_irol_(y,4); /*y=0x0ff0*/

}

函数名: _cror_,_iror_,_lror_

原 型: unsigned char _cror_(unsigned char val,unsigned char n);

unsigned int _iror_(unsigned int val,unsigned char n);

unsigned int _lror_(unsigned int val,unsigned char n);

功 能:_cror_,_iror_,_lror_以位形式将val 右移n 位,该函数与8051“RRA”指令

相关,上面几个函数不同于参数类型。

例:

#include

main()

{

unsigned int y;

y=0x0ff00;

y=_iror_(y,4); /*y=0x0ff0*/

}

函数名: _nop_

原 型: void _nop_(void);

功 能:_nop_产生一个NOP 指令,该函数可用作C 程序的时间比较。C51 编译器在_nop_

函数工作期间不产生函数调用,即在程序中直接执行了NOP 指令。

例:

P()=1;

_nop_();

P()=0;

函数名: _testbit_

原 型:bit _testbit_(bit x);

功 能:_testbit_产生一个JBC 指令,该函数测试一个位,当置位时返回1,否则返回0。

如果该位置为1,则将该位复位为0。8051 的JBC 指令即用作此目的。

_testbit_只能用于可直接寻址的位;在表达式中使用是不允许的。

3.至于>>=,>>,<

责任编辑:

c语言intrins头文件,结合单片机学习板学习c语言之流水灯制作 intrins.h头文件相关推荐

  1. 在c语言中本征函数说明,结合单片机学习板学习c语言之流水灯制作--intrins.h头文件...

    目的:实现流水灯.本文引用地址:http://www.eepw.com.cn/article/201608/294948.htm 源程序: /*本程序结合STC89C51使用,晶振12M,中间用到串口 ...

  2. 立创EDA入门3 通过51单片机最小板学习PCB设计

    立创EDA入门3 通过51单片机最小板学习PCB设计 一.本文目的 二.原理图设计 1. 新建工程,命名为51系统 2. 各模块原理图 3. 一些常用操作 (1)放置普通元器件 (2)封装.标签设置 ...

  3. p1口流水灯c语言,单片机实验二--P1口输出实验(流水灯)

    <单片机实验二--P1口输出实验(流水灯)>由会员分享,可在线阅读,更多相关<单片机实验二--P1口输出实验(流水灯)(3页珍藏版)>请在人人文库网上搜索. 1.实验2p1端口 ...

  4. 51单片机流水灯制作

    文章目录 51单片机流水灯制作 初试与复试 初试 复试 制作 分工 制作之硬件 制作之软件 总结 51单片机流水灯制作 我不得不承认自己的毅力实在是太差了,原先准备一星期写一篇博客的目标一致没有实现, ...

  5. ## C51单片机2种方法让8个流水灯依次亮灭

    C51单片机2种方法让8个流水灯依次亮灭 第一种 数组 就是把每次亮灯情况写在数组里面.8个二极管共同接地.比如说0xfe是二进制是11111110,第一个灯灭.然后下一个数是0xfd,对应二进制是1 ...

  6. 单片机学c语言还是python好_单片机开发用哪种语言最好?

    在过去的几十年中,单片机的规格变化不大,但是语言和支持软件的扩展为应用程序开发开辟了许多途径.多年来,对单片机进行编程涉及到两种语言的选择:C语言和汇编语言.但是随着现在可用于微处理器的新语言,用户在 ...

  7. c语言程序 5ms 延时,计算机单片机延时方法电脑c语言.docx

    计算机单片机延时方法电脑C 语言 您需要登录后才可以回帖登录| 注册发布 单片机是一种集成电路芯片,是采用超大规模集成电路技术把 具有数据处理能力的中央处理器CPU.随机存储器RAM.只读存储器 RO ...

  8. 单片机c语言99秒倒计时,51单片机99秒倒计时C语言源程序

    51单片机99秒倒计时C语言源程序 51单片机实现数码管99秒倒计时,其实很简单,就是使用定时器中断来实现.目的就是学习怎样用单片机实现倒计时,从而实现一些延时控制类的东西,99秒只是一个例子,你完全 ...

  9. 单片机c语言出租车计时程序,基于单片机的出租车计费(c语言).doc

    基于单片机的出租车计费(c语言) 基于单片机的出租车计费(c语言) 基于proteus仿真 一.设计要求: 1.用实现出租车计费器的设计. 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统 ...

最新文章

  1. 开发者应具备的产品设计意识
  2. 如何理解 Web API
  3. spring框架的概述以及spring中基于XML的IOC配置——概念
  4. iPhone使用CoreTelephony获得SIM卡网络运营商资讯和通话资料
  5. 探索PCIe 3.0峰值性能,长江存储推新消费级固态硬盘致态TiPlus5000
  6. JavaScript中的innerHTML,innerHTML,value属性
  7. 为什么大家都会往大城市跑
  8. 2021孝感高中高考成绩查询,孝感高中成绩排名2021,孝感中考分数线排行榜
  9. [readable]轻松学,浅析依赖倒置(DIP)、控制反转(IOC)和依赖注入(DI)
  10. Amoeba Architecture
  11. JSON格式错误报JSON parse error:
  12. python爬虫解决频繁访问_python爬虫程序如何预防被限制
  13. Javaweb面试题(一)———更新中
  14. 关于 AI 的数百个问题,清华男神刘云浩教授的 3 万字回复给整得明明白白|附抽奖送书...
  15. 南邮计算机就业,这两所大学实力强劲,从专业到就业率分析,来看看谁更强吧...
  16. java毕业设计——基于Java+AI的五子棋游戏设计与实现(毕业论文+程序源码)——五子棋游戏
  17. 墨尘 - UE4 入门教程笔记 —— 二
  18. php 图片大小更改,word图片怎么统一调整大小
  19. Oracle数据库常用SQL语句查询
  20. 苹果三代耳机_airpods三代上市时间 苹果第三代蓝牙耳机什么时候上市

热门文章

  1. Keras下载数据失败,本地导入
  2. Deepin安装使用微信
  3. 在 web of science上到导出txt文件
  4. 计算机黑屏跳横杠,电脑开机时黑屏左上角显示一个横杠是怎么回事
  5. posix_memalign函数详解以及使用时的注意事项
  6. 喝脱脂牛奶容易长青春痘
  7. Python编程-使用爬虫程序爬取肺炎疫情数据-1 爬取给定国家的历史疫情信息
  8. 百度站长工具 加广告 代码分析
  9. 刷爆朋友圈的虚幻引擎5,会给我们带来哪些影响?
  10. 51NOD L4-第三章 树 刷题记录-zyz