我来教大家“嘉会麻将开挂方法”(确实是有挂)-哔哩哔哩

网上有关“高分悬赏 单片机课程设计一份”话题很是火热,小编也是针对高分悬赏 单片机课程设计一份寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

您好:手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,咨询加微信【】很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到其他人的牌一样。所以很多小伙伴就怀疑这款游戏是不是有挂,实际上这款游戏确实是有挂的
http://www.boyicom.net/sheng/1.jpg
1.手机麻将有挂是真的吗这款游戏可以开挂,确实是有挂的,通过添加客服微信 2.咨询软件加微信【】在"设置DD功能DD微信手麻工具"里.点击"开启". 3.打开工具.在"设置DD新消息提醒"里.前两个选项"设置"和"连接软件"均勾选"开启"(好多人就是这一步忘记做了) 4.打开某一个微信组.点击右上角.往下拉."消息免打扰"选项.勾选"关闭"(也就是要把"群消息的提示保持在开启"的状态.这样才能触系统发底层接口)

单片机课程设计实例

摘要

数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

单片计算机即单片微型计算机,是 集CPU ,RAM ,ROM , 定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51 单片机是各单片机中最为典型和最有代表性的一种。这次设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

关键词:数字钟、液晶显示、温度检测、串口通信

一、简介

系统由AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定时时间的设定,输出等功能。系统的功能选择由SB0、SB1、SB2、SB3、SB4 完成。其中SB0 为时间校对,定时器调整功能键,按SB 0 进入调整状态。SB1 为功能切换键。第一轮按动SB1 依次进入一路、二路、三路定时时间设置提示程序,按SB3 进入各路定时调整状态。定时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按SB1 键,依次进入时间. 年. 位校对、. 月. 位校对、 . 日. 位校对、. 时. 位校对、. 分. 位校对、. 秒. 位校对状态。不管是进入那种状态,按动SB2 皆可以使被调整位进行不进位增量加1 变化。各预置量设置完成后,系统将所有的设置存入RAM 中,按SB1 退出调整状态。上电后,系统自动进入计时状态,起始于. 00. 时. 00. 分。SB4 为年月日显示转换键,可使原来显示时分秒转换显示年月日。

二、电路原理分析

1. 显示原理

电原理图见附图1。由6 个共阴极的数码管组成时、分、秒的显示。P0 口的8 条数据线P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的 P2.0 至P2.2 分别通过电阻R10 至R13 与VT1 至VT3 的基极相连接。这样通过P0 口送出一个存储单元的高位、低位BCD 显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在数码管中显示出来。从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。这是扫描显示原理。

2. 数码管结构及代码显示

共阴LED 数码管由8 只发光二极管VD1 至VD8 共阴连接并按. 8. 字形结构排列而成。这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时相应的二极管就会导通而发光,从而使数码管呈现不同的字符。而只有P2 相应呈现高电位, VT 个管导通,LED1 的GND 与地相接,LED 位被选中才具备发光的使能条件;可见,在利用P2 口送出位选码,使各位轮流得到发光使能条件的同时,通过P0 口分别送出不同的段选码, 就会在LED1 至LED4 中显示出不同的数字来。

3 键盘及读数原理

键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms.

4 连击功能的实现

按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。利用连击功能,能实现快速调时操作。

5

6

7

三、程序设计

系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。

1.数据与代码转换。

由前述可知,从P2 口输出位选码,从P0 口输出段选码,LED 就会显示出数字来。但P0 口的输出的数据是要BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0 口去驱动LED 数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD 码行转换后,将各个单元数据的段选代码送入P0 口,给CD4511 译码后去驱动数码管显示。

具体转换过程如下:

我们先将要显示的数据装入累加器A 中,再将A 中的数据转换成高低两位的BCD 码, 再放回A 中,然后将A 中的值输出。如:有一个单元存储了45 这样一位数,则需转换成四位的BCD 码:(0100)(0101)然后放入A 中。 A 中BCD 码,高位四位代表.4.低四位代表.5.同时送给两个译码器中,译码后. 45. 字就在两个LED 中显示出来。

2.计时功能的实现与中断服务程序

时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器T0 打开后, 进入计时,满100 毫秒后,重装定时。中断一次,满一秒后秒进位,满60 秒后即为1 分钟, 分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率, 得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED 中显示出来, 实现时钟计时功能。累加是用指令INC 来实现的。 进入中断服务程序以后,执行PUSH PSW 和PUSH A 将程序状态寄存器PSW 的内容和累加器A 中的数据保存起来,这便是所谓的. 保护现场. . 以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内RAM 中的任一区间设定,而堆栈的数据存取与一般的RAM 存取又有区别,对它的操作,要遵循. 后进先出. 的原则。

3 时钟误差分析

开启定时器/计数器0,使之开始计时,中断后进入中断程序。自停止计数到、计数又

开始,中间执行了7 条指令,也就是延迟了13 个单周期共用时间26us,这样,每个中断的总时间应为为100.026sm,而原来定时是100ms,,所以,也就是说每次中断定时多了26um.

这样,可改变计数重装值,使每次中断定时时间为99.974sm,加上原来的7 条指令所用的

时间,正好100sm.计数10 次得1s.这样就可得到较精确的计时秒数,然后根据进率,得到

时、分的值。

4 时间控制功能与比较指令

系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先

将执行设备开启的时间和关闭时间置入RAM 某一单元,在计时主程序当中执行几条比较指

令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条 CLR 指令,将对应的

那路P3 置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB 对应的P3 置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNE A,#direct, rel,其转移条件是累加器A 中的值与立即数不等则转移。

参考文献

1、《单片机典型系统设计实例精讲》电子工业出版社

2、李刚 、林凌 、姜苇《51系列单片机系统设计与应用技巧》北京航空航天大学出版社

3、《单片机C程序设计及应用实例》人民邮电出版社

程序

#include<reg52.h>

#include<absacc.h>

#define unit unsigned int

#define uchar unsigned char

#define DIGPORT XBYTE [0x8000]

#define WORDPORT XBYTE[0x4000]

sbit K0=P1^0;

sbit K1=P1^1;

sbit K2=P1^2;

sbit BEEP="P1"^3;

sbit L0=P1^4;

sbit L1=P1^5;

sbit L2=P1^6;

sbit L3=P1^7;

uchar data BUFFER[2]={0,0}; /*显示缓冲区(依次为低位,高位)*/

uchar data CLOCK[4]={0,0,0,0}/*存放时钟时间(依次为百分秒、秒、分和时位)*/

uchar data SECOND[2]={0,0}; /*存放秒表时间(依次为百分秒,秒)*/

uchar data REVERSE[4]={0,0,0,0};//存放倒计时时间(依次为百分秒、秒、分和时位)

uchar data STATE="0"; /*定义运行状态*/

bit bdata SND="0"; /*秒表START*/

bit bdata RST="0"; /*秒表RESET*/

bit bdata STP="0"; /*倒计时STOP*/

uchar code TABLE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x40};/*数码管显示编码“0”-“9”,“A”,"-"*/

void display(void);

void main(void)

{

uchar stabak; /*上一次程序运行的状态*/

P1=0x0f;

EA=1;IT1=1;ET0=1;

TMOD=0x61; /*T1方式2计数,T0方式1计时*/

TH0=-5000/256;TL0=-5000%256;

TH1=0xff;TL1=0xff;

T2CON=0;TH2=-5000/256;TL2=-5000%256;

K0=1;K1=1;K2=1;

STATE=P1&0x07;

stabak=STATE;

for(;;)

{

switch(STATE)

{

case 0: /*START=0,秒表*/

{

EX1=0;ET1=1;ET2=1;TR1=1;SND=1;

L1=1;L0=0;L2=0;

SECOND[0]=0;

SECOND[1]=0;

}break;

case 1: /*START=1,倒计时分调整*/

{

EX1=0;ET1=1;ET2=1;TR1=1;TR2=0;

L2=1;L0=0;L1=0;

REVERSE[0]=0;

REVERSE[1]=0;

}break;

case 2: /*START=2,倒计时小时调整*/

{

EX1=0;ET1=1;ET2=1;TR1=1;TR2=0;

L2=1;L0=0;L1=0;

REVERSE[0]=0;

REVERSE[1]=0;

}break;

case 3: /*START=3,倒计时运行*/

{

EX1=0;ET1=1;ET2=1;TR1=1;

if((REVERSE[2]==0)&&(REVERSE[3]==0))L2=1;

else TR2=1;

L0=0;L1=0;

}break;

case 5: /*START=5,时钟分调整*/

{

IE1=0;EX1=1;ET1=0;ET2=1;TR0=0;

L0=1;L1=0;L2=0;

}break;

case 6: /*START=6,时钟时调整*/

{

IE1=0;EX1=1;ET1=0;ET2=1;TR0=0;

L0=1;L1=0;L2=0;

}break;

default: /*START=4or7,时钟运行*/

{

EX1=0;ET1=0;ET2=1;TR0=1;

L1=0;L2=0;

}

}

while(STATE==stabak)

{

switch(STATE)

{

case 0: /*START=0,秒表*/

{

BUFFER[0]=SECOND[0];

BUFFER[1]=SECOND[1];

}break;

case 1: /*START=1,倒计时分调整*/

{

BUFFER[0]=REVERSE[2];

BUFFER[1]=101;

}break;

case 2: /*START=2,倒计时小时调整*/

{

BUFFER[0]=110;

BUFFER[1]=REVERSE[3];

}break;

case 3: /*START=3,倒计时运行*/

{

BUFFER[0]=REVERSE[2];

BUFFER[1]=REVERSE[3];

}break;

case 5: /*START=5,时钟分调整*/

{

BUFFER[0]=CLOCK[2];

BUFFER[1]=101;

}break;

case 6: /*START=6,时钟时调整*/

{

BUFFER[0]=110;

BUFFER[1]=CLOCK[3];

}break;

default: /*START=4or7,时钟运行*/

{

BUFFER[0]=CLOCK[2];

BUFFER[1]=CLOCK[3];

}

}

display();/*显示函数*/

K0=1;K1=1;K2=1;

STATE=P1&0x07;

}

stabak=STATE;

}

}

void timer0(void) interrupt 1 using 1

{

TH0=-5000/256; /*重置定时初值*/

TL0=-5000%256;

CLOCK[0]=CLOCK[0]+1; /*时钟处理*/

if((CLOCK[0]==50)&&(STATE>=4))

{

L0=!L0;

}

if(CLOCK[0]==100)

{

if(STATE>=4) L0=!L0;

CLOCK[0]=0;

CLOCK[1]=CLOCK[1]+1;

if(CLOCK[1]==60)

{

CLOCK[1]=0;

CLOCK[2]=CLOCK[2]+1;

if(CLOCK[2]==60)

{

CLOCK[2]=0;

CLOCK[3]=CLOCK[3]+1;

if(CLOCK[3]==24)

{

CLOCK[3]=0;

}

}

}

}

}

void timer2(void) interrupt 5 using 3

{

TF2=0;

TH2=-5000/256;

TL2=-5000%256;

if(STATE==0) /*秒表处理*/

{

SECOND[0]=SECOND[0]+1;

if(SECOND[0]==50)

{

L1=!L1;

}

if(SECOND[0]==100)

{

L1=!L1;

SECOND[0]=0;

SECOND[1]=SECOND[1]+1;

if(SECOND[1]==100)

{

SECOND[1]=0;

}

}

}

if(STATE==3) /*倒计时处理*/

{

REVERSE[0]=REVERSE[0]+1;

if(REVERSE[0]==50)

{

L2=!L2;

}

if(REVERSE[0]==100)

{

L2=!L2;

REVERSE[0]=0;

REVERSE[1]=REVERSE[1]+1;

if(REVERSE[1]==60)

{

REVERSE[1]=00;

REVERSE[2]=REVERSE[2]-1;

if((REVERSE[2]==0)&&(REVERSE[3]==0))

{

TR2=0;

STP="1";

BEEP="0";

}

else if(REVERSE[2]==0xff)

{

REVERSE[2]=59;

REVERSE[3]=REVERSE[3]-1;

}

}

}

}

}

void intsvr1(void) interrupt 2 using 2

{

if(STATE==5)

{

CLOCK[2]=CLOCK[2]+1;

if(CLOCK[2]==60) CLOCK[2]=0;

}

if(STATE==6)

{

CLOCK[3]=CLOCK[3]+1;

if(CLOCK[3]==24) CLOCK[3]=0;

}

}

void timer1(void) interrupt 3 using 3

{

if(STATE==0)

{

if(RST)

{

SECOND[0]=0;

SECOND[1]=0;

L1=1;

RST="0";

}

else

{

if(SND) TR2=1;

else

{

L1=1;

TR2=0;

RST="1";

}

SND=!SND;

}

}

else if(STATE==1)

{

REVERSE[2]=REVERSE[2]+1;

if(REVERSE[2]==60) REVERSE[2]=0;

}

else if(STATE==2)

{

REVERSE[3]=REVERSE[3]+1;

if(REVERSE[3]==24) REVERSE[3]=0;

}

else

{

if(STP)

{

BEEP="1";

L2=1;

STP="0";

}

else TR2=0;

}

}

void display(void)

{

uchar i; /*显示缓冲区首址*/

uchar delay; /*显示延时*/

uchar disp; /*显示内容*/

uchar digit; /*定义数码管显示位*/

digit=0x08;

for(i=0;i<2;i++) /*秒表,显示百分秒和秒*/

{

if(BUFFER>100) disp="BUFFER"%10+10;

else disp="BUFFER"%10;

DIGPORT="digit";

WORDPORT="TABLE"[disp];

for(delay=0;delay<=200;delay++);

digit="digit">>1;

disp="BUFFER/10";

DIGPORT="digit";

WORDPORT="TABLE"[disp];

for(delay=0;delay<=200;delay++);

digit="digit">>1;

}

}

单片机时钟制作的可行性研究,短点的,一二百字足矣

要程序,原理图回话!~

题目:单片机电子时钟的设计与实现

课程设计的目的和意义

课程设计的目的与意义在于让我们将理论与实践相结合。培养我们综合运用电子课程中的理论知识解决实际性问题的能力。让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。

课程设计的基本任务

利用89S51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入、蜂鸣报警等知识,设计一款单片机和简单外设控制的电子时钟。

主要功能要求

最基本要求

1)使用6位数码管,前两位显示小时(24小时制),中间两位显示分钟,后两位显示秒。时钟每走1秒,秒数码管加1显示,60秒后分钟数码管加1显示,60分钟后小时数码管加1显示。

2)设计89S51单片机最小系统

3)掌握使用Protel99 绘制原理图和布板的过程、方法和技巧。

4)掌握单片机开发软件(Keil C51或 Wave)的使用和调试。

5)编写并调试单片机定时及其中断程序,以实现电子时钟的功能。

6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。

7)掌握硬件和软件联合调试的方法。

8)完成系统硬件电路的设计和制作。

9)完成系统程序的设计。

10)完成整个系统的设计、调试和制作。

11)完成课程设计报告。

多功能电子时钟

概述:加入世贸组织以后,中国会面临激烈的竞争。这种竞争将是一场科技实力、

管理水平和人才素质的较量,风险和机遇共存。于是老师在单片机理论课程学习的基

础上,为我们安排了一个涉及MCS—51 单片机多种资源应用及具有综合功能的电子

时钟设计。

关键字: 显示时间 定时 温度采集 系统仿真

1 引 言

《单片原理及应用》是一门技术性、应用性很强的学科,实践教学是它的一个极

为重要的环节。不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验

教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学

习,势必出现理论与实践脱节的局面。任随书本上把单片机技术介绍得多么重要、多

么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到

对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大

打折扣。

仿真设计的目的就是在理论学习的基础上,通过完成一个涉及MCS

—51 单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生

不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子

元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊

接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立

进行某些单片机应用系统的开发设计工作打下一定的基础。

该电子时钟不但具有定时作用还有温度采集作用。定时部分可以显示时、分、秒,

而且用按键还可以实现时间的调整和闹铃的设定。温度采集部分实现环境温度数据的

采集。

2 系统结构

整个电子时钟系统电路可分为五大部分:中央处理单元(CPU)、电源电路部分、

显示部分、键盘输入部分、温度采集部分。

2. 1 中央处理单元

CPU选用AT89C—2051 对整个系统进行控制:

1)它将定时数据输出到LED,实现时间的显示;

2)根据键盘输入调用相应键处理子程序,实现时间的调整和闹铃的设定;

3)接收温度传感器输入的温度数据,进行一定的转换,然后输出到2 位的LED

更多资料请访问 福星电子网-收集整理

3

显示器显示出来。

2.2 电源电路部分

在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能

量来源,它的设计思路是根据我们以前学过的模电电子技术,要想得到我们所要的

+6V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电

路四个部分。

2.3 显示部分

显示部分是整个电子时钟最为重要的部分,它分为时间的显示和温度的显示两部

分,共需要8 位LED 显示器。采用动态显示方式,所谓动态显示方式是时间(或温

度)数字在LED 上一个一个逐个显示,它是通过位选端控制在哪个LED 上显示数字,

由于这些LED 数字显示之间的时间非常的短,使的人眼看来它们是一起显示时间数

字的,并且动态显示方式所用的接口少,节省了CPU 的管脚。由于端口的问题以及

动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器LED 有段

选和位选两个端口,首先说段选端,它由LED 八个端口构成,通过对这八个端口输

入的不同的二进制数据使得它的时间(或温度)显示也不同,从而可以得到我们所要

的时间显示和温度。但对于二十个管脚的AT89C2051来说,LED 八个段选管脚太多,

于是我选用74LS164 芯片来扩展主芯片的管脚,74LS164 是数据移位寄存器,还选用

了74LS244 作为数据缓存器。

2.4 键盘部分

它是整个系统中最简单的部分,根据功能要求,本系统共需四个按键:

功能移位键、功能加键、功能减键、定闹键。并采用独立式按键。温度采

集部分

此部分选用DS18B20 传感器,主要由四部分组成:64 位ROM、温度传感器、非挥

发的温度报警触发器TH 和TL、配置寄存器。有三个管脚:DQ 为数字信号输入/输出

端;GND 为电源地;VDD 为外接供电电源输入端。电源有两种接法:1)远端因入;2)

寄生电源方式。它是支持“一线总线”接口的温度传感器,测量温度范围为

-55°C~+125°C,在-10~+85°C 范围内,可编程为9 位—12 位A/D 转换精度,工作电

压在3V—5V之间。现场温度直接以“一线总线”的数字方式传输,大大提高了系统

的抗干扰性。

何为“一线总线”:独特的电源和信号复合在一起;仅使用一条口线;每个芯片

唯一编码,支持联网寻址;简单的网络化的温度感知;零功耗等待。

2.电路制作

根据元器件种类和体积以及技术要求将其布局在电路板上的适当位置。可以先从

体积较大的器件开始,如单片机底座、电源稳压器、变压线圈、锁存器、温度传感器

等。待体积较大的元器件布局好之后,小型的电子元器件就可以根据间隙面积灵活布

置。二极管、电感器、阻容元件的装配方式一般有直立式、俯卧式和混合式三种。

①直立式。电阻、电容、二极管等都是竖直安装在印刷板上的。这种方式的特点

是:在一定的单位面积内可以容纳较多的电子元件,同时元件的排列也比较紧凑。缺

点是:元件的引线过长,在一个平面上,欠美观,元器件引脚弯曲,且密度较大,元

器件之间容易引脚碰触,可靠性欠佳,且不太适合频率较高的电路采用。

②俯卧式。电阻、电容、二极管等都是俯卧式安装在印刷板上的。这样可以明显

地降低元件的排列高度,可实现薄形化,同时元器件的引脚也最短,适合于较高工作

频率的电路采用,也是目前采用最广泛的一种安装方式。

③混合式。为了适应各种不同条件的要求或某些位置受面积所限,在一块印刷电

路板上,有的元器件则采用俯卧式。这受到电路结构各式以及机壳内尺寸的限制,同

时灵活处理。

元器件配置布局应考虑的因素:

①电路板是矩形,元件排列的长度方向一般应与电路板的长边平行,这样不但可

以提高元件的装配好的印刷电路板更美观。

②应尽可能地缩短元件及元件之间的引线。尽量避免电路板上的导线的交叉,设

法减小它们的分布电容和互相之间的电磁干扰,以提高系统工作的可靠性。

③应以功能电路的核心器件为中心,外围元件围绕它进行布局。

更多资料请访问 福星电子网-收集整理

5

④要注意各种门电路多余的处理,或接电源端或接地端,并按照正确的 方法实

现不同逻辑门的组合转换。

⑤元器件的配置和布局应有利于设备的装配、检查、高度和维修。

元器件焊接注意事项:

焊接前务必认准元件数值,会认元件上的标识和会用数字多用表测试。焊接时速

度要快,电烙铁不可长时间停留在电路板和元件的焊脚上。特别是晶振、发光二极管、

电解电容、9041 三极管等元件,时间过长容易导致元器件损坏。

3.软件仿真

3.1仿真器介绍

仿真器采用伟福仿真器系统,该仿真器介绍如下:

系统的特点介绍

本仿真器系统由仿真主机+仿真头、MULTIA用户板、实验板、开关电源等组成。

本系统的特点是:

1.主机+仿真头的组合,通过更换不同型号的仿真头即可对各种不同类型的单片

机进行仿真,是一种灵活的多CPU 仿真系统。采用主机+POD 组合方式,更换POD,可

以对各种CPU 进行仿真。本仿真器主机型号为E2000/S,仿真头型号为POD8X5X(可

仿真系列8X5X单片机)。

2.双平台,具有DOS版本和WINDOWS 版本,后者功能强大,中/英文界面任选,

用户源程序的大小不再有任何限制,支持ASM,C,PLM 语言混合编程,具有项目管理

功能,为用户的资源共享、课题重组提供强有力的手段。支持点屏显示,用鼠标左键

点一下源程序中的某一变量,即可显示该变量的数值。有丰富的窗口显示方式,多方

位,动态地显示仿真的各种过程,使用极为便利。本操作系统一经推出,立即被广大

用户所喜爱。

3.双工作模式

1)软件模拟仿真(不要仿真器也能模拟仿真)。

2)硬件仿真。

4.双CPU 结构,100%不占用户资源。

全空间硬件断点,不受任何条件限制,支持地址、数据、外部信号、事件断点、

支持实时断点计数、软件运行时间统计。

5.双集成环境

编辑、编译、下载、调试全部集中在一个环境下

多种仿真器,多类CPU 仿真全部集成在一个环境下。可仿真51 系列,196 系列,

PIC 系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438 等51 增强型CPU。为

了跟上形势,现在很多工程师需要面对和掌握不同的项目管理器、编辑器、编译器。

他们由不同的厂家开发,相互不兼容,使用不同的界面,学习使用都很吃力。伟福

WINDOWS 调试软件提供了一个全集成环境,统一的界面,包含一个项目管理器,一个

功能强大的编辑器,汇编Make,Build 和调试工具并提供千个与第三方编译器的接口。

更多资料请访问 6

由于风格统一,大大节省了精力和时间。

6.强大的逻辑分析仪综合调试功能。

逻辑分析仪由交互式软件菜单窗口对系统硬件的逻辑或时序进行同步实时采样,

并实时在线调试分析,采集深度32K(E2000/L),最高时基采样频率达20MHz,40

路波形,可精确实时反映用户程序运行时的历史时间。系统在使用逻辑分析仪时,除

普通的单步运行、键盘断点运行、全速硬件断点运行外,还可实现各种条件组合断点

如:数据、地址、外部控制信号、CPU 内部控制信号、程序区间断点等。由于逻辑仪

可以直接对程序的执行结果进行分析,因此极大地便利于程序的调试。

7.强大的追踪器功能

追踪功能以总线周期为单位,实时记录仿真过程中CPU 发生的总线事件,其触

发条件方式同逻辑分析仪。追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信

息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。屏幕窗口显示波形图

最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来

完成追踪功能。总线跟踪可以跟踪程序的运行轨迹。可以统计软件运行时间。

伟福系统仿真

3.2 仿真器编程

双击桌面上的WAVE 图标或从开始/程序/WAVE FOR WINDOWS/WAVE 进入本开发环

境。在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及CPU类型,并注

7

意是否“使用伟福软件模拟器”,若使用硬件仿真,请注意去掉“使用伟福软件模拟

器”前的选择。在文件窗口下可进行包括新建、打开、保存等文件操作。在编译文件

窗口下可将源文件编译成目标文件。在窗口窗口下可以观察各种窗口信息,其中最常

用到的是CPU 窗口和数据窗口。在CPU 窗口下可以通过CPU 窗口看到编译正确的机器

码及反汇编程序,可以更清楚地了解程序执行过程。CPU 窗口中还有SFR窗口和位窗

口,了解程序执行过程中寄存器内容的变化。在数据窗口下有DATA 内部数据窗口;

CODE 程序数据窗口;XDATA 外部数据窗口;PDTA外部数据窗口。

结束语

通过这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的

很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后

的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,

那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。

在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的

生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活

中磨练自己,使自己适应于以后的竞争。

参考文献

[1] 李建忠主编,单片机原理及应用,西安电子科技大学出版社,2004

关于“高分悬赏 单片机课程设计一份”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

(0)
上一篇 2024年05月15日
下一篇 2024年05月15日

相关推荐