If you would like to quickly change an entry to an arbitrary TODO state instead of cycling through the states, you can set up keys for single-letter access to the states. This is done by adding the selection character after each keyword, in parentheses1. For example:
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") (sequence "REPORT(r)" "BUG(b)" "KNOWNCAUSE(k)" "|" "FIXED(f)") (sequence "|" "CANCELED(c)")))
If you then press C-c C-t followed by the selection key, the entry will be switched to this state. SPC can be used to remove any TODO keyword from an entry.2
 All characters are allowed except
@^!, which have a special meaning here.
 Check also the variable
org-fast-tag-selection-include-todo, it allows you to change the TODO
state through the tags interface (see Setting tags), in case you like to
mingle the two concepts. Note that this means you need to come up with
unique keys across both sets of keywords.