proteus仿真pic单片机汇编程序——rb中断和按键显示
朋友们送上的使用proteus仿真学习pic汇编程序的最后一例,但遗憾的是,本例目前仍未完成,没有实现预期效果。
本例的构思如下:在pic单片机的rb端口上接一个4×4的矩阵键盘,在rc端口上接一个数码管;在键盘上没有按键按下时,rc口上的数码管循环显示从0到9的数字;一旦有按键按下,则利用rb口的电平变化中断功能,进入中断子程序,在中断子程序中实现使用数码管显示按下的按键的键号的功能。本例和前面的例子proteus仿真pic汇编程序——键盘扫描和数码管显示类似,只是增加了rb口中断功能而已。
首先,和前面所有例子相同,在pic文件夹下建立一个名为rbinterrupt的子文件夹;然后在mplab中新建一个工程项目,并将其以rbinterrupt之名保存在如上的子文件夹中。接着在mplab中新建一个源程序文件,将如下的源程序代码复制到文件中:
#include
keycode equ 70h ;键码变量
io equ 71h ;输出变量
w_temp equ 72h ;w暂存寄存器
status_temp equ 73h ;status暂存寄存器
portc_temp equ 74h ;portc暂存寄存器
value equ 76h ;键值寄存器
org 00h
goto main ;主程序
org 04h
goto int ;中断子程序
main ;主程序
table ;在ram30h-3fh中建立键值表
movlw 0eeh ;0的键值
movwf 30h
movlw 0deh ;1的键值
movwf 31h
movlw 0beh ;2的键值
movwf 32h
movlw 07eh ;3的键值
movwf 33h
movlw 0edh ;4的键值
movwf 34h
movlw 0ddh ;5的键值
movwf 35h
movlw 0bdh ;6的键值
movwf 36h
movlw 07dh ;7的键值
movwf 37h
movlw 0ebh ;8的键值
movwf 38h
movlw 0dbh ;9的键值
movwf 39h
movlw 0bbh ;a的键值
movwf 3ah
movlw 07bh ;b的键值
movwf 3bh
movlw 0e7h ;c的键值
movwf 3ch
movlw 0d7h ;d的键值
movwf 3dh
movlw 0b7h ;e的键值
movwf 3eh
movlw 077h ;f的键值
movwf 3fh
banksel trisb ;选择相应的体
movlw 00h ;设置rb端口全部输出
movwf trisb
movlw 00h ;设置rc端口全部输出
movwf trisc
movlw 07h ;设置tmr0分频比
movwf option_reg ;启用rb口上拉
banksel portc
movlw 0ffh
movwf portc ;rc端口输出全1
clrf portb ;rb端口输出全0
movlw 0f0h
movwf portb ;rb口低四位输出0
banksel trisb
movlw 0f0h ;设置rb口高四位入,低四位出
movwf trisb
banksel portb
德国纽伦堡国际有机食品博览会
各大互联网巨头开始纷纷布局VR VR硬件市场产值达20.5亿元
5G流量套餐到底有多贵 每月最低支付316元?
IRIG码介绍
基于无线技术的电缆接头温度监测系统终端设计
Proteus仿真PIC单片机汇编程序——RB中断和按键显示
浅谈变送器与传感器区别及联系
固态硬盘与机械硬盘的奥秘是什么
苹果搭载ARM处理器Macbook,预计与2021年初上市
5G+AI+场景化设备带来的工业化变革,将在各个领域落地
中兴通讯携手合作伙伴在5G网络建设等领域开展长期合作
电机控制电路图画法和程序编写过程讲解
长沙1024程序员节求索论道 1024点亮软件定义时代
空载能耗小于16mW的超低待机能耗解决方案
全CMOS基准电压源的分析与仿真
华硕B460M重炮手PRO的使用感好性能评测,表现如何
opensbi下的riscv64裸机编程:中断与异常
魅族Flyme6.0这些改变可能让你欲罢不能!
为什么要讨论用来升压的电荷泵电路呢?
智能语音的发展过程是怎样的