查看: 1546|回复: 9
|
16F88 assembly serial
[复制链接]
|
|
最近忙 fyp 真的是忙到超累得~
尤其是要 modify 别人的 assembly code...
我比较在行的是 C..但是为了 project 只好 downgrade 去学 assembly..
有哪位大大对 assembly 在行的吗? 我是很想学习啦..
尤其是 USART transmission....
P/S: 我希望是面对面的方法...
也希望能在这个星期内完成.. 谢谢。
[ 本帖最后由 evios 于 9-4-2009 02:30 PM 编辑 ] |
|
|
|
|
|
|
|
楼主 |
发表于 6-4-2009 09:04 PM
|
显示全部楼层
想请问一下。。
这个是 software UART routine 吗?
- list p=16F88, r=DEC
- errorlevel -302
- #include
- __config _CONFIG1, _BODEN_OFF & _WDT_OFF & _LVP_OFF & _MCLR_OFF & _PWRTE_ON & _INTRC_IO
- ;----------------------
- ; DECLARE VARIABLES
- ;----------------------
- cblock 0x20
- tmp1
- endc
- ;----------------------
- ; START
- ;----------------------
- org 0
- main
- banksel CMCON
- movlw 7
- movwf CMCON ; CMCON = 7 set comperators off
- banksel ANSEL
- clrf ANSEL
- banksel TRISA
- clrf TRISA
- clrf TRISB
- banksel SPBRG
- movlw 0x19 ; 0x19=9600 bps (0x0C=19200 bps)
- movwf SPBRG
- movlw b'00100100' ; brgh = high (2)
- movwf TXSTA ; enable Async Transmission, set brgh
- banksel RCSTA
- movlw b'10010000' ; enable Async Reception
- movwf RCSTA
- ; Provide a settling time for startup
- banksel tmp1
- clrf tmp1
- settle
- decfsz tmp1, f
- goto settle
- ; Send a character through the UART
- loop
- movlw 'A'
- call send
- movlw 'B'
- call send
- goto $
- ;----------------------
- ; SEND function
- ;----------------------
- send
- banksel TXREG
- movwf TXREG ; Send data which has been stored in W
- trans_wt
- banksel TXSTA
- btfss TXSTA, TRMT ; Loop until data is sent
- goto trans_wt
- return
- end
复制代码 |
|
|
|
|
|
|
|
发表于 6-4-2009 10:24 PM
|
显示全部楼层
原帖由 evios 于 6-4-2009 09:04 PM 发表
想请问一下。。
这个是 software UART routine 吗?
list p=16F88, r=DEC
errorlevel -302
#include
__config _CONFIG1, _BODEN_OFF & _WDT_OFF & _LVP_OFF & _MCLR_ ...
你知道uart有多少?
如果这个code给你看,你会觉得是hardware uart还是software uart呢?
回复你之前, 想听听你的意见与看法。 |
|
|
|
|
|
|
|
楼主 |
发表于 6-4-2009 11:23 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 6-4-2009 11:47 PM
|
显示全部楼层
原帖由 evios 于 6-4-2009 11:23 PM 发表
我只知道 16F88 有 built in 的 hardware UART..
可是所有的 port 都用满了..只好用 oSC2 pin..
以我推测应该是 software UART 对吧?
谢谢你的回复
从这个code你如何知道port都用满了呢? |
|
|
|
|
|
|
|
楼主 |
发表于 7-4-2009 12:14 AM
|
显示全部楼层
原帖由 fritlizt 于 6-4-2009 11:47 PM 发表
从这个code你如何知道port都用满了呢?
oh..不是。。这个其实只是 serial communication 的 code 而已
我的 project 已经用完 port A and B 了..port B 去 LCD..
我 check 过 16F88 的 datasheet... OSC2 pin 也是 bidirectional pin..
可以用来做 IO pin..所以打算用它 send serially...
只是要 append 这个 code 去原本已经弄好的 code 有点难..
想问问看大大...你是这方面的专才吗? |
|
|
|
|
|
|
|
发表于 7-4-2009 10:28 AM
|
显示全部楼层
原帖由 evios 于 6-4-2009 01:55 PM 发表
最近忙 fyp 真的是忙到超累得~
尤其是要 modify 别人的 assembly code...
我比较在行的是 C..但是为了 project 只好 downgrade 去学 assembly..
有哪位大大对 assembly 在行的吗? 我是很想学习啦..
尤其是 USART ...
呵呵!你酱写,其实间接降低了这个帖的素质,可以直接讲重点好了。不需要那些过门。
你看了版规没有?请先仔细阅读 :【指南】问帖的技巧, 发帖必读 。。
你是要做 USART 还是 UART?
原帖由 evios 于 7-4-2009 12:14 AM 发表
oh..不是。。这个其实只是 serial communication 的 code 而已
我的 project 已经用完 port A and B 了..port B 去 LCD..
我 check 过 16F88 的 datasheet... OSC2 pin 也是 bidirectional pin..
可以用来做 IO pin..所以打算用它 send serially...
只是要 append 这个 code 去原本已经弄好的 code 有点难..
这些资料你该一开始就先讲明,不需要通过打情骂俏的问答。
想问问看大大...你是这方面的专才吗?
你这句说话真的是在贬低版主及论坛朋友,也很无理。不是吗??难道现在的年轻仔,有钱仔都是酱的素质,悲哀。老实说,我看了真不适味。你认为这里没有专才?
;----------------------
; SEND function
;----------------------
send
banksel TXREG
movwf TXREG ; Send data which has been stored in W
trans_wt
banksel TXSTA
btfss TXSTA, TRMT ; Loop until data is sent
goto trans_wt
return
言归正传,你的代码是硬件发送。 |
评分
-
查看全部评分
|
|
|
|
|
|
|
楼主 |
发表于 7-4-2009 01:39 PM
|
显示全部楼层
原帖由 rothmans 于 7-4-2009 10:28 AM 发表
呵呵!你酱写,其实间接降低了这个帖的素质,可以直接讲重点好了。不需要那些过门。
你看了版规没有?请先仔细阅读 :【指南】问帖的技巧, 发帖必读 。。
你是要做 USART 还是 UART?
这些资料你该一 ...
若有冒犯,本人在此深表歉意
我其实对 assembly不是很了解才贸贸然再次开贴
那么我想请问..若要使用 OCS2 pin 的话
是不是应该使用软体发送? |
|
|
|
|
|
|
|
发表于 7-4-2009 02:31 PM
|
显示全部楼层
原帖由 evios 于 7-4-2009 01:39 PM 发表
若有冒犯,本人在此深表歉意
我其实对 assembly不是很了解才贸贸然再次开贴
那么我想请问..若要使用 OCS2 pin 的话
是不是应该使用软体发送?
你有问题开帖没错,但,需先看版规,重要的是讲重点。可以先介绍你的项目,让论坛朋友先了解后容易着手回答。为何不先展示你的原理图,后说出你的问题为何不用 PIC 内部提供的 UART 资源,而要另外用软件编写 UART。先解释你要用 OSC2 的脚充当什么用途,要跟什么沟通?讲清楚来,不要等到问了才答,酱太浪费时间与资源。
难道没有其他方法解决你这问题了?又或者要去槟城你只知道乘坐汽车而已??? |
|
|
|
|
|
|
|
发表于 7-4-2009 08:15 PM
|
显示全部楼层
原帖由 evios 于 6-4-2009 01:55 PM 发表
最近忙 fyp 真的是忙到超累得~
尤其是要 modify 别人的 assembly code...
你的开场白真的是有够‘揣’。。够258.。。
我比较在行的是 C..但是为了 project 只好 downgrade 去学 assembly..
为了抄别人的code 而学ASM, 应该不是你的本意, 你只是要做FYP, 不是有心学。。。
有哪位大大对 assembly 在行的吗? 我是很想学习啦..
我想对ASM 在行的人已经很少很少了。。。。。大家都转去C了。。。
干嘛你抄别人的ASM? 想必也是很旧很旧的code了。。
16F88 也是很旧很旧我们淘汰不用了。。它当时是用来替代16F84。。。
我是想要抄也抄新一点的。。。
ok, 我把帖封了, 你从新开帖, 按版规,清楚的开帖好吗? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|