proteus仿真流水灯

一. keil和proteus的使用

  • 生成hex file
  • proteus中找不到有些元件

二. 源程序

/* 名称:8 只 LED 左右来回点亮
说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
    uchar i;
    while(x--)
    {
        for(i=0;i<120;i++);
    }
}
//主程序
void main()
{
    uchar i;
    P2=0x01;
    while(1)
    { 
        for(i=0;i<7;i++)
        {
            P2=_crol_(P2,1); //P2 的值向左循环移动
            DelayMS(150);
        }
        for(i=0;i<7;i++)
        {
            P2=_cror_(P2,1); //P2 的值向右循环移动
            DelayMS(150);
        }
    }
}
  • unsigned int
    16位系统中一个int能存储的数据的范围为-3276832767,而unsigned能存储的数据范围则是065535
  • _crol_()和 _cror_()函数
    将char型变量循环向左(右)移动指定位数后返回,例如如果二进制数为01010101 那么crol(1) 左移1位后将高位补低位。 结果10101010。
  • P2=0x01;
P2=0x01;.jpg

三. 电路图

仿真图
  1. C1:cap
  2. X1:晶振 crystal
  3. C3:点解电容 cap-elec
  4. 总线 bus

四. 问题

  • 接上电阻LED就不亮。。。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容