在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → 51单片机Java模拟器

51单片机Java模拟器

一般编程问题

下载此实例

实例介绍

【实例简介】必须安装Java插件才能运行模拟软件edsim51di.jar,
将源码复制粘贴到模拟器代码框中运行run,也可以单步执行,仅支持汇编语言,

对于初学51单片机帮助很大,对理解单片机底层原理非常有用。


【实例截图】

from clipboard

【文件目录】

51单片机Java模拟器

├── 51单片机模拟器 电路图.jpg
├── 51单片机原理教程(经典版).pdf
├── 51单片机模拟器主界面.jpg
├── edsim51di.jar
├── edsim51diHardwareSettings.ser
├── edsim51diSettings.ser
├── edsim51examples 案例源码
│   ├── adcIndicator (2).asm
│   ├── adcIndicator.asm
│   ├── adcToDac.asm
│   ├── dac.asm
│   ├── echoSwitches.asm
│   ├── lcd.asm
│   ├── lcd.c
│   ├── lcd.hex
│   ├── lcdEuroSymbol.asm
│   ├── ledPatterns.asm
│   ├── motor.asm
│   ├── scanKeypad.asm
│   ├── serialReceive.asm
│   ├── serialTransmit.asm
│   └── sevenSegDisplays.asm
├── lib
│   └── edsim51sh.jar
└── readme.txt

2 directories, 23 files


【核心代码】

; This program sends the text abc down the

; 8051 serial port to the external UART at 4800 Baud.

; To generate this baud rate, timer 1 must overflow
; every 13 us with SMOD equal to 1 (this is as close as
; we can get to 4800 baud at a system clock frequency 
; of 12 Mz).
; See the notes on the serial port for more information.

; The data is sent with even parity,
; therefore for it to be received correctly
; the external UART must be set to Even Parity

CLR SM0 ; |
SETB SM1 ; | put serial port in 8-bit UART mode

MOV A, PCON ; |
SETB ACC.7 ; |
MOV PCON, A ; | set SMOD in PCON to double baud rate

MOV TMOD, #20H ; put timer 1 in 8-bit auto-reload interval timing mode
MOV TH1, #243 ; put -13 in timer 1 high byte (timer will overflow every 13 us)
MOV TL1, #243 ; put same value in low byte so when timer is first started it will overflow after 1 us
SETB TR1 ; start timer 1

MOV 30H, #'a' ; |
MOV 31H, #'b' ; |
MOV 32H, #'c' ; | put data to be sent in RAM, start address 30H

MOV 33H, #0 ; null-terminate the data (when the accumulator contains 0, no more data to be sent)
MOV R0, #30H ; put data start address in R0
again:
MOV A, @R0 ; move from location pointed to by R0 to the accumulator
JZ finish ; if the accumulator contains 0, no more data to be sent, jump to finish
MOV C, P ; otherwise, move parity bit to the carry
MOV ACC.7, C ; and move the carry to the accumulator MSB
MOV SBUF, A ; move data to be sent to the serial port
INC R0 ; increment R0 to point at next byte of data to be sent
JNB TI, $ ; wait for TI to be set, indicating serial port has finished sending byte
CLR TI ; clear TI
JMP again ; send next byte
finish:
JMP $ ; do nothing

//其中一个实例

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警