单片机实验设计报告

更新时间:2023-08-23 23:14:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机实验设计报告

LED 16*16 点阵显示实验

设计题目 LED 16x16 点阵显示实验 班 级: 计算机091班_ 姓 名:_ 路曜逢 王瑶 崔洁 学 号:200909934 200909935_200909733 指导老师: 蓝 天 日 期: 2011年12月12日

一、题目分析,功能要求

1.1 实验目的

掌握单片机、8255和LED点阵显示器之间的电路连接设计及编程控制。利

用LED点阵显示器显示汉字及图形。 1.2 功能

利用单片机控制8255、273和开关,拨动开关点阵显示屏显示不同的内容。这种显示屏不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点!

二、总体方案设计

2.1 设计目的

以ATMEL89C51单片机最小系统为核心,设计小型LED显示屏系统。掌握外

围LED点阵电路、驱动电路的设计方法,熟练掌握单片机编程控制扩展芯片方法、编程控制小型点阵的控制方法和protel99 SE软件的使用,实现LED点阵显示多种不同的内容。最终完成单片机的应用与外围电路的设计任务。 2.2 设计任务

首先以ATMEL89C51单片机原理图为蓝本,利用protel画好完整的电路图;其次根据画好的电路图画出流程图;最后用DVCC软件编写程序,通过串口下载到试验箱中实现外围小型LED显示屏系统的整体控制。 2.3 设计需求

利用ATMEL89C51单片机作为系统核心控制部分,控制外围8255、273和16×16LED点阵模块。编写字库,并编程移动显示和闪烁显示。 2.4 硬件设计

硬件连接正确是重中之重,此次设计的具体电路图设计见附录一。硬件控制图如下:

此显示电路采用扫描方式进行,从第一行开始,按顺序依次对各行进行扫描。

2.5 软件设计

程序设计是单片机开发的最重要工作,而写程序需要按流程去写,具体程序见附录二。此次软件编程流程设计图如下:

三、实验准备

3.1 实验内容

建立字库,编写程序,在LED点阵显示器上显示图形、文字。 3.2 实验步骤

1、 8255CS 接 Y0,273CS 接 Y2,WR 接 XWR,RD 接 XRD, A0 接 XA0, A1接 XA1,RESET接 RST, D0...D7接XD0...XD7

2、运行程序16x16LED.C(内程序,外数据)先显示“兰州交通大学电信院”接着模拟显示动态拉幕,最后显示动态小球碰撞。 3.3 实验主要材料

四、实验调试及分析

单片机应用系统的硬件调试和软件调试是分不开的,硬件调试分为以下步骤:(1)目测检查(2)电源调试(3)通电检查(4)检查相应的芯片和导线的连接。软件调试步骤:(1)程序纠错(2)子程序功能调试(3)整体程序综合测试。

经过调试和分析,本文设计的16×16 LED电子显示屏能实现对汉字或动画的多种显示,有多种显示方式,显示字体清晰、美观,且能通过拨动开关随时更新显示的内容,具有分布灵活,扩展方便等优点。

五、总结

通过查资料、选方案、撰写实验报告,是我们得到一次较全面的实践训练。理论联系实际,提高和培养了我们的创新能力和动手能力,为以后的课程学习,为我们的毕业设计打下了扎实的基础。

经过此次实验设计,让我们知道真正的动手实验是靠多动手去提高的,光靠理论是不行的。此次实验设计不仅仅巩固了单片机方面的理论知识,同时也提高了自己的动手能力、分析问题和解决问题的能力。在此次的电路设计过程中,我们更进一步的熟悉了芯片的结构,也掌握了个芯片的工作原理和具体的使用方法。积极地参与了单片机实验设计,不仅让我们充分地体会到自己动手实践的乐趣,获得哪怕是前进一小步的那种成功的喜悦,还能学到我们在理论课中学不到的知识。希望这次的经历能让我们在以后的学习中激励我们继续进步!

U?C

C

附录一

单片机实验设计报告

VC

附录二

#include <reg51.h>

#include <absacc.h> //绝对地址访问 #include "intrins.h" //_cror(m,1)_ #define XPA XBYTE[0x8000] #define XPB XBYTE[0X8001] #define XPC XBYTE[0X8002] #define XK XBYTE[0X8003] #define X273 XBYTE[0XA000] void closedisp(); void disp(); void disp1(); void disp2(); void dp(); void dp1(); void dp2();

unsigned char code tab[]={

0x10,0x10,0x08,0x20,0x24,0x40,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00, /*兰*/ 0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xFF,0xFE,0x00,0x00,

0x20,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x25,0x2A,0x29,0x4A,0x29,0x4A,0x21,0x09, /*州*/ 0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x04,0x21,0x04,0x20,0x02,0x20,0x00,

0x00,0x40,0x00,0x80,0x20,0x80,0x7F,0xFF,0x04,0x10,0x08,0x10,0x38,0x08,0x24,0x14, /*交*/ 0x02,0x22,0x01,0x40,0x00,0x80,0x01,0x40,0x02,0x20,0x0C,0x10,0x70,0x0C,0x20,0x03,

0x1F,0xC0,0x08,0x02,0x05,0x0C,0x12,0x08,0x3F,0xC0,0x12,0x40,0x12,0x4F,0x1F,0xC8, /*通*/ 0x12,0x48,0x12,0x48,0x1F,0xC8,0x12,0x48,0x16,0x48,0x18,0x54,0x00,0x22,0x7F,0xC0,

0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x20,0x80,0x7F,0xFF,0x00,0x80,0x01,0x40, /*大*/ 0x01,0x40,0x02,0x40,0x02,0x20,0x04,0x20,0x08,0x10,0x70,0x08,0x20,0x06,0x00,0x00,

0x10,0x44,0x10,0x88,0x08,0x88,0x04,0x00,0x7F,0xFE,0x40,0x02,0x20,0x01,0x07,0xF8, /*学*/ 0x02,0x00,0x21,0x80,0x7F,0xFF,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,

0x00,0x80,0x00,0x80,0x08,0x80,0x1F,0xFE,0x08,0x82,0x08,0x82,0x0F,0xFE,0x08,0x82, /*电*/ 0x08,0x82,0x0F,0xFE,0x08,0x82,0x00,0x80,0x20,0x80,0x20,0x80,0x3F,0x00,0x00,0x00,

0x01,0x10,0x22,0x10,0x7F,0xF0,0x00,0x08,0x10,0x08,0x3F,0xEC,0x00,0x0A,0x10,0x09, /*信*/ 0x3F,0xE8,0x00,0x08,0x1F,0xC8,0x10,0x48,0x10,0x48,0x10,0x48,0x1F,0xC8,0x10,0x48,

0x10,0x44,0x10,0x88,0x08,0x88,0x04,0x00,0x7F,0xFE,0x40,0x02,0x20,0x01,0x07,0xF8, /*学*/ 0x02,0x00,0x21,0x80,0x7F,0xFF,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,

0x01,0x00,0x02,0x1E,0x7F,0xF2,0x40,0x2A,0x28,0x1A,0x1F,0xC6,0x00,0x0A,0x10,0x12, /*院0x3F,0xF2,0x05,0x12,0x05,0x16,0x05,0x0A,0x44,0x82,0x44,0x82,0x78,0x42,0x00,0x32,

0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, /*空*/ 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00 }; unsigned char code tab1[]={ //模拟开幕数组

0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFC,0x3F,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xF8,0x1F,0xFC,0x3F,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, 0xF0,0x0F,0xF8,0x1F,0xFC,0x3F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F, 0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F, 0xE0,0x07,0xF0,0x0F,0xF8,0x1F,0xFC,0x3F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F, 0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F, 0xC0,0x03,0xE0,0x07,0xF0,0x0F,0xF8,0x1F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F, 0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F, 0x80,0x01,0xC0,0x03,0xE0,0x07,0xF0,0x0F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F, 0xF8,0x1F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F,0xF8,0x1F, 0x80,0x01,0xC0,0x03,0xE0,0x07,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F, 0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F,0xF0,0x0F 0x80,0x01,0xC0,0x03,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07, 0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07, 0x80,0x01,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03, 0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03, 0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01, 0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01, // 0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x8C,0x01,0x92,0x01, 0x92,0x01,0x8C,0x01,0x9E,0x01,0xBF,0x01,0x9E,0x01,0x9E,0x01,0x92,0x01,0x92,0x01, 0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x31,0x80,0x49, 0x80,0x49,0x80,0x31,0x80,0x79,0x80,0xFD,0x80,0x79,0x80,0x79,0x80,0x49,0x80,0x49, 0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x81,0x81,0x82,0x41, 0x82,0x41,0x81,0x81,0x83,0xC1,0x87,0xE1,0x83,0xC1,0x83,0xC1,0x82,0x41,0x82,0x41,

0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, /*空*/ 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00}; unsigned char code tab2[]={ //模拟小球碰撞数组

0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00 0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x30,0x00,0x48,0x00,0x48,0x00, 0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x0C,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00, 0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x03,0x00,0x04,0x80,0x04,0x80,0x03,0x00,0x00,0x00,0x0C,0x00,0x12,0x00, 0x12,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x01,0x80,0x02,0x40,0x02,0x40,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x40, 0x02,0x40,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xC0,0x01,0x20,0x01,0x20,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0, 0x01,0x20,0x01,0x20,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00, 0x00,0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00, 0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18, 0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x12, 0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x09, 0x00,0x09,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x09,0x00,0x09,0x00,0x06, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C, 0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90, 0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x40, 0x02,0x40,0x01,0x80,0x00,0x00,0x00,0xC0,0x01,0x20,0x01,0x20,0x00,0xC0,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x40, 0x02,0x40,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x40,0x02,0x40,0x01,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x80,0x04,0x80, 0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x04,0x80,0x04,0x80,0x03,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x09,0x00,0x09,0x00,0x06,0x00, 0x00,0x00,0x00,0x00,0x06,0x00,0x09,0x00,0x09,0x00,0x06,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00,0x00, 0x00,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00, 0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x30,0x00, 0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x60,0x00,0x90,0x00,0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x90,0x00,

0x90,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, /*空*/ 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00 }; unsigned int i,i1,i2,i3,i_2,i_3,j; unsigned char m,n,cnt,k,flag;

main()

{ SP=0x50; //堆栈指针

TMOD=0X01; //选择定时器0的工作方式1 TH0=(65535-50000)/256; //给定时器赋初值 TL0=(65535-50000)%256;

EA=1; //中断总允许 ET0=1; //T0中断允许 EX0=1; //外中断0中断允许 TR0=1; //启动定时器

PT0=1; //定时器T0中断优先级控制 cnt=0; //初始化变量 i1=0;

i2=0;

i=0; i_2=0;

XK=0X80; //写IO口的工作方式 //A , B , C 口均输出 closedisp(); //调用关屏子函数 while(1) {

if(flag==1)

dp(); //显示“兰州交通大学电信学院” if(flag==2)

dp1(); // if(flag==3)

dp2(); // } }

void dp()

{

disp(); // if(cnt==10) // { i=i+32; // cnt=0;

if(i>21*16) // i=0; } }

void dp1() {

disp1(); // if(cnt==4) // { i_2=i_2+32; // cnt=0;

if(i_2>29*16) // i_2=0; } }

void dp2() {

disp2(); // if(cnt==2) // { i_3=i_3+32; // cnt=0;

if(i_3>41*16) // i_3=0; }

模拟显示开幕过程 模拟显示两个小球物理碰撞过程 调用显示一整屏子函数 显示间隔为1s 显示下一屏 判断数组tab[]是否显示完毕 调用显示一整屏子函数 显示间隔为0.4s 显示下一屏

判断数组tab1[]是否显示完毕 调用显示一整屏子函数 显示间隔为0.2s 显示下一屏 判断数组tab2[]是否显示完毕

}

void closedisp() //关显示屏函数 { XPB=0XFF; X273=0XFF; }

void disp()

{ i1=i;

n=0x7f; //0111 1111 for(m=0;m<8;m++)

{XPC=tab[i1++]; //给点阵列(即二极管的正极)L8---L15送数据 XPA=tab[i1++]; //给点阵列(即二极管的正极)L0---L7送数据

XPB=n; //给行赋值(即二极管负极) ,让前8行某一行为低电平,其余行为高电平 for(j=0;j<20;j++); //刷新点阵延时 n=_cror_(n,1); //n循环右移

closedisp(); //调用关屏子函数 }

n=0x7f; //0111 1111 for(m=0;m<8;m++)

{XPC=tab[i1++]; //给点阵列(即二极管的正极)L8---L15送数据 XPA=tab[i1++]; //给点阵列(即二极管的正极)L0---L7送数据

X273=n; //给行赋值(即二极管负极) ,让后8行某一行为低电平,其余行为高电平 for(j=0;j<20;j++); //刷新点阵延时 n=_cror_(n,1); //n循环右移

closedisp(); //调用关屏子函数 } }

void disp1()

{ i2=i_2; //0111 1111 for(m=0;m<8;m++)

{XPC=tab1[i2++]; //给点阵列(即二极管的正极)L8---L15送数据 XPA=tab1[i2++]; //给点阵列(即二极管的正极)L0---L7送数据

XPB=n; //给行赋值(即二极管负极) ,让前8行某一行为低电平,其余行为高电平 for(j=0;j<20;j++); //刷新点阵延时 n=_cror_(n,1); //n循环右移

closedisp(); //调用关屏子函数 }

n=0x7f; //0111 1111 for(m=0;m<8;m++)

{XPC=tab1[i2++]; //给点阵列(即二极管的正极)L8---L15送数据 XPA=tab1[i2++]; //给点阵列(即二极管的正极)L0---L7送数据

X273=n; //给行赋值(即二极管负极) ,让后8行某一行为低电平,其余行为高电平 for(j=0;j<20;j++); //刷新点阵延时 n=_cror_(n,1); //n循环右移

closedisp(); //调用关屏子函数 } }

void disp2()

{ i3=i_3; //0111 1111

for(m=0;m<8;m++)

{XPC=tab2[i3++]; //给点阵列(即二极管的正极)L8---L15送数据

XPA=tab2[i3++]; //给点阵列(即二极管的正极)L0---L7送数据

XPB=n; //给行赋值(即二极管负极) ,让前8行某一行为低电平,其余行为高电平 for(j=0;j<20;j++); //刷新点阵延时 n=_cror_(n,1); //n循环右移 closedisp(); //调用关屏子函数 }

n=0x7f; //0111 1111

for(m=0;m<8;m++)

{XPC=tab2[i3++]; //给点阵列(即二极管的正极)L8---L15送数据

XPA=tab2[i3++]; //给点阵列(即二极管的正极)L0---L7送数据

X273=n; //给行赋值(即二极管负极) ,让后8行某一行为低电平,其余行为高电平 for(j=0;j<20;j++); //刷新点阵延时 n=_cror_(n,1); //n循环右移

closedisp(); //调用关屏子函数

} }

void int_0(void) interrupt 0 //中断服务程序 {

flag++; //有中断申请时 flag加1

if(flag>3) //判断flag是否大于3,如果大于等赋值为0

flag=0; cnt=0;

while(cnt<=20); //延时两秒,在这两秒之内把开关拨至高电平状态 ,否则没有图像显示

cnt=0;

}

void int_t0(void) interrupt 1 //定时器服务程序 {

TH0=(65535-50000)/256; TL0=(65535-50000)%256; cnt++; }

本文来源:https://www.bwwdw.com/article/i4ki.html

Top