单片机实验编程 - 爱问答

(爱问答)

单片机实验编程

要利用89C51单片机,8个数码管显示,设计一个简易的计算器,只需实现加减功能即可,但要可以算出负数,小数点结果,要用汇编语言,烦请哪位高人指点。程序可直接发我邮箱932259887@qq.com。给分放心!

  1. LED灯方面的元器件不是很复杂,之前说了很多,也差不多,只是灯不一样。

    51单片机

    电容

    瓷片电容

    晶振

    绿色二极管

    红色二极管

    黄色二极管

    电阻

  2. 2

    电路图:

    1为总体图,2,3为大图

    PS:图要是不会画也可以评论提问。。

    END

程序清单

 

  1. 说明分析(不想看请直接跳往下一步):通过思考我们发现灯的循环大致分为

    1、横向绿灯亮,竖向红灯亮

    2、横向黄灯闪三下,竖向红灯依旧亮

    3、横向红灯亮,竖向绿灯亮

    4、横向红灯依旧亮,竖向黄灯闪三下

    由分析我们把程序也分为四个循环

  2. 【程序】图片版

    按照程序顺序截图,前面是子程序,最后为主程序

  3. 【文字版】

    /* 名称:LED 模拟交通灯

    说明:东西向绿灯亮若干秒,黄灯闪3次后红灯亮, 红灯亮后,

    南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁3次后变红灯,

    东西向变绿灯,如此重复。*/

    #include<reg51.h>

    #define uchar unsigned char

    #define uint unsigned int

    //规划好各个脚连接的灯,方便使用

    sbit RED_1=P0^0; //东西向灯

    sbit YELLOW_1=P0^1;

    sbit GREEN_1=P0^2;

    sbit RED_2=P0^3; //南北向灯

    sbit YELLOW_2=P0^4;

    sbit GREEN_2=P0^5;

    uchar number=0,type=1; //闪烁次数,操作类型变量

    //延时子程序

    void Delay(uint x)

    {

    uchar i;

    while(x--) for(i=0;i<120;i++);

    }

    //交通灯切换程序

    //总共分为四种况,如此循环

    //注:1为关灯,0为开灯

    traffic()

    {

    switch(type)

    {

    case 1: //东西向绿灯与南北向红灯亮

    RED_1=1;YELLOW_1=1;GREEN_1=0;

    RED_2=0;YELLOW_2=1;GREEN_2=1;

    Delay(2000);

    type=2;

    break;

    case 2: //东西向黄灯闪烁,绿灯关闭

    Delay(300);

    YELLOW_1=~YELLOW_1;GREEN_1=1;

    if(++number!=6) return; //闪烁3次

    number=0;

    type=3;

    break;

    case 3: //东西向红灯,南北向绿灯亮

    RED_1=0;YELLOW_1=1;GREEN_1=1;

    RED_2=1;YELLOW_2=1;GREEN_2=0;

    Delay(2000);

    type=4;

    break;

    case 4: //南北向黄灯闪烁3次

    Delay(300);

    YELLOW_2=~YELLOW_2;GREEN_2=1;

    if(++number!=6) return;

    number=0;

    type=1;

    }

    }

    //主程序,由于用了switch,为了便于循环选择,用一个traffic子函数写在外面

    void main()

    {

    while(1) traffic();

    }


一是这个问题太专业,现在玩单片机和汇编机的都是高手,软硬件两手都要通晓。二是你这个题目较大,相当于一个大作业,工作量不小。个人建议你还是自己完成吧,虽然没有什么实际意义,但这种作业就是培养学生能力的,本事练出来是自己的。越难越复杂的问题解决后,对自己能力和信心的提升越大,对日后的人生越有助力。

相关标签:实验

下一篇:利用MATLAB的LMI工具箱里的lmiterm确定LMI的每一项的内容时,某一项存在两个变量怎么办

上一篇:85210321是哪个机构的代码

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?