The assembler I use for my Z-80 programming projects is zmac.
I've built my own version for Windows with some extensions:
http://members.shaw.ca/gp2000/zmac.html
A Google search for "z80 zmac" can help you locate the original source code.
It's not a single pass assembler, but I think it will suffice.