*** error 65: access violation at C:0x001B : no 'execute/read' permission
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了*** error 65: access violation at C:0x001B : no 'execute/read' permission,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1755字,纯文字阅读大概需要3分钟。
内容图文
转自:http://blog.csdn.net/chenqiai0/article/details/7827071
很多人在进行串口调试的时候会遇到这个问题,请大家略看我的代码,解决方法在其中
//实验目的:串口调试助手上输入数据0-9,然后再数码管显示
org 00H
ljmp start
org 23H //中断入口地址
ljmp uart_interrupt
org 30H
start:
mov P0,#0xff//设置初始值
mov dptr,#numb
lcall en
lcall UART_init
here: sjmp here //好比是一个while(1)循环
;首先3/8译码器使能 并且选中第一个数码管用于显示
en:
clr P1.4
setb P1.3
clr P1.0
clr P1.1
clr P1.2
ret
//uart初始化
UART_init:
mov TMOD,#0x20 //0010 0000 说明在定时器1的工作方式2下工作
mov TH1,#0xFD
mov TL1,#0xFD
setb TR1 //定时器1运行控制位=1,说明开始计时
mov SCON,#0x50 //0101 0000 前两位说明在串口工作方式1 第三位SM2在方式1设置为0 第四位REN=1允许串口接收
setb EA
setb ES
//setb ET1 //错误:*** error 65: access violation at C:0x001B : no ‘execute/read‘ permission
//解决办法:timer1是做为串行通信的波特率发生器,设置为方式2(自动填充)为ET1被置位,而timer1没有跳转函数(因为是自动填充)
//所以timer1 会执行中断,跳转到中断入口0x1B,使程序跑飞了。不置位ET1就可以了
ret
//中断服务程序
uart_interrupt:
send:
mov A,#0x02
anl A,SCON
cjne A,#2, receive
clr TI
setb REN
receive:
mov A,#0x01
anl A,SCON
cjne A,#1,quit
clr RI
mov R4,SBUF
mov R3,SBUF
mov A,R4
subb A,#0x30
movc A,@A+dptr
mov P0,A
addc A,#0x30
mov SBUF,R3
clr REN
quit:
reti
//0-9
numb:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
end
大家注意看ET1=1这一段,注释就是解决方法
*** error 65: access violation at C:0x001B : no 'execute/read' permission
标签:
本文系统来源:http://www.cnblogs.com/shirishiqi/p/5407838.html
内容总结
以上是互联网集市为您收集整理的*** error 65: access violation at C:0x001B : no 'execute/read' permission全部内容,希望文章能够帮你解决*** error 65: access violation at C:0x001B : no 'execute/read' permission所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。